egister ` (  _constraint_ , _factory=None_ )  [ [source]
](_modules/torch/distributions/constraint_registry.html#ConstraintRegistry.register)
¶

    

Registers a  ` Constraint  ` subclass in this registry. Usage:

    
    
    @my_registry.register(MyConstraintClass)
    def construct_transform(constraint):
        assert isinstance(constraint, MyConstraint)
        return MyTransform(constraint.arg_constraints)
    

Parameters

    

  * **constraint** (subclass of  ` Constraint  ` ) – A subclass of  ` Constraint  ` , or a singleton object of the desired class. 

  * **factory** ( _callable_ ) – A callable that inputs a constraint object and returns a  ` Transform  ` object. 

[ Next ![](_static/images/chevron-right-orange.svg) ](futures.html
"torch.futures") [ ![](_static/images/chevron-right-orange.svg) Previous
](distributed.html "Distributed communication package - torch.distributed")

* * *

© Copyright 2019, Torch Contributors.

Built with [ Sphinx ](http://sphinx-doc.org/) using a [ theme
](https://github.com/rtfd/sphinx_rtd_theme) provided by [ Read the Docs
](https://readthedocs.org) .

  * Probability distributions - torch.distributions 
    * Score function 
    * Pathwise derivative 
    * Distribution 
    * ExponentialFamily 
    * Bernoulli 
    * Beta 
    * Binomial 
    * Categorical 
    * Cauchy 
    * Chi2 
    * ContinuousBernoulli 
    * Dirichlet 
    * Exponential 
    * FisherSnedecor 
    * Gamma 
    * Geometric 
    * Gumbel 
    * HalfCauchy 
    * HalfNormal 
    * Independent 
    * Laplace 
    * LogNormal 
    * LowRankMultivariateNormal 
    * MixtureSameFamily 
    * Multinomial 
    * MultivariateNormal 
    * NegativeBinomial 
    * Normal 
    * OneHotCategorical 
    * Pareto 
    * Poisson 
    * RelaxedBernoulli 
    * LogitRelaxedBernoulli 
    * RelaxedOneHotCategorical 
    * StudentT 
    * TransformedDistribution 
    * Uniform 
    * VonMises 
    * Weibull 
    * KL Divergence 
    * Transforms 
    * Constraints 
    * Constraint Registry 

![](https://www.googleadservices.com/pagead/conversion/795629140/?label=txkmCPmdtosBENSssfsC&guid=ON&script=0)

##  Docs

Access comprehensive developer documentation for PyTorch

[ View Docs ](https://pytorch.org/docs/stable/index.html)

##  Tutorials

Get in-depth tutorials for beginners and advanced developers

[ View Tutorials ](https://pytorch.org/tutorials)

##  Resources

Find development resources and get your questions answered

[ View Resources ](https://pytorch.org/resources)

[ ](https://pytorch.org/)

  * [ PyTorch ](https://pytorch.org/)
  * [ Get Started ](https://pytorch.org/get-started)
  * [ Features ](https://pytorch.org/features)
  * [ Ecosystem ](https://pytorch.org/ecosystem)
  * [ Blog ](https://pytorch.org/blog/)
  * [ Contributing ](https://github.com/pytorch/pytorch/blob/master/CONTRIBUTING.md)

  * [ Resources ](https://pytorch.org/resources)
  * [ Tutorials ](https://pytorch.org/tutorials)
  * [ Docs ](https://pytorch.org/docs/stable/index.html)
  * [ Discuss ](https://discuss.pytorch.org)
  * [ Github Issues ](https://github.com/pytorch/pytorch/issues)
  * [ Brand Guidelines ](https://pytorch.org/assets/brand-guidelines/PyTorch-Brand-Guidelines.pdf)

  * Stay Connected 
  * Email Address 

[ ](https://www.facebook.com/pytorch) [ ](https://twitter.com/pytorch) [
](https://www.youtube.com/pytorch)

To analyze traffic and optimize your experience, we serve cookies on this
site. By clicking or navigating, you agree to allow our usage of cookies. As
the current maintainers of this site, Facebook’s Cookies Policy applies. Learn
more, including about available controls: [ Cookies Policy
](https://www.facebook.com/policies/cookies/) .

![](_static/images/pytorch-x.svg)

[ ](https://pytorch.org/)

  * [ Get Started ](https://pytorch.org/get-started)
  * [ Features ](https://pytorch.org/features)
  * [ Ecosystem ](https://pytorch.org/ecosystem)
  * [ Mobile ](https://pytorch.org/mobile)
  * [ PyTorch Hub ](https://pyto