Back to Pytorch

torch.nn

docs/source/nn.rst

2.11.012.7 KB
Original Source

.. role:: hidden :class: hidden-section

.. toctree:: :maxdepth: 2 :hidden:

nn.aliases.rst

torch.nn

.. automodule:: torch.nn

These are the basic building blocks for graphs:

.. contents:: torch.nn :depth: 2 :local: :backlinks: top

.. currentmodule:: torch.nn

.. autosummary:: :toctree: generated :nosignatures: :template: classtemplate.rst

~parameter.Buffer
~parameter.Parameter
~parameter.UninitializedParameter
~parameter.UninitializedBuffer

Containers

.. autosummary:: :toctree: generated :nosignatures: :template: classtemplate.rst

Module
Sequential
ModuleList
ModuleDict
ParameterList
ParameterDict

Global Hooks For Module

.. currentmodule:: torch.nn.modules.module .. autosummary:: :toctree: generated :nosignatures:

register_module_forward_pre_hook
register_module_forward_hook
register_module_backward_hook
register_module_full_backward_pre_hook
register_module_full_backward_hook
register_module_buffer_registration_hook
register_module_module_registration_hook
register_module_parameter_registration_hook

.. currentmodule:: torch

Convolution Layers

.. autosummary:: :toctree: generated :nosignatures: :template: classtemplate.rst

nn.Conv1d
nn.Conv2d
nn.Conv3d
nn.ConvTranspose1d
nn.ConvTranspose2d
nn.ConvTranspose3d
nn.LazyConv1d
nn.LazyConv2d
nn.LazyConv3d
nn.LazyConvTranspose1d
nn.LazyConvTranspose2d
nn.LazyConvTranspose3d
nn.Unfold
nn.Fold

Pooling layers

.. autosummary:: :toctree: generated :nosignatures: :template: classtemplate.rst

nn.MaxPool1d
nn.MaxPool2d
nn.MaxPool3d
nn.MaxUnpool1d
nn.MaxUnpool2d
nn.MaxUnpool3d
nn.AvgPool1d
nn.AvgPool2d
nn.AvgPool3d
nn.FractionalMaxPool2d
nn.FractionalMaxPool3d
nn.LPPool1d
nn.LPPool2d
nn.LPPool3d
nn.AdaptiveMaxPool1d
nn.AdaptiveMaxPool2d
nn.AdaptiveMaxPool3d
nn.AdaptiveAvgPool1d
nn.AdaptiveAvgPool2d
nn.AdaptiveAvgPool3d

Padding Layers

.. autosummary:: :toctree: generated :nosignatures: :template: classtemplate.rst

nn.ReflectionPad1d
nn.ReflectionPad2d
nn.ReflectionPad3d
nn.ReplicationPad1d
nn.ReplicationPad2d
nn.ReplicationPad3d
nn.ZeroPad1d
nn.ZeroPad2d
nn.ZeroPad3d
nn.ConstantPad1d
nn.ConstantPad2d
nn.ConstantPad3d
nn.CircularPad1d
nn.CircularPad2d
nn.CircularPad3d

Non-linear Activations (weighted sum, nonlinearity)

.. autosummary:: :toctree: generated :nosignatures: :template: classtemplate.rst

nn.ELU
nn.Hardshrink
nn.Hardsigmoid
nn.Hardtanh
nn.Hardswish
nn.LeakyReLU
nn.LogSigmoid
nn.MultiheadAttention
nn.PReLU
nn.ReLU
nn.ReLU6
nn.RReLU
nn.SELU
nn.CELU
nn.GELU
nn.Sigmoid
nn.SiLU
nn.Mish
nn.Softplus
nn.Softshrink
nn.Softsign
nn.Tanh
nn.Tanhshrink
nn.Threshold
nn.GLU

Non-linear Activations (other)

.. autosummary:: :toctree: generated :nosignatures: :template: classtemplate.rst

nn.Softmin
nn.Softmax
nn.Softmax2d
nn.LogSoftmax
nn.AdaptiveLogSoftmaxWithLoss

Normalization Layers

.. autosummary:: :toctree: generated :nosignatures: :template: classtemplate.rst

nn.BatchNorm1d
nn.BatchNorm2d
nn.BatchNorm3d
nn.LazyBatchNorm1d
nn.LazyBatchNorm2d
nn.LazyBatchNorm3d
nn.GroupNorm
nn.SyncBatchNorm
nn.InstanceNorm1d
nn.InstanceNorm2d
nn.InstanceNorm3d
nn.LazyInstanceNorm1d
nn.LazyInstanceNorm2d
nn.LazyInstanceNorm3d
nn.LayerNorm
nn.LocalResponseNorm
nn.RMSNorm

Recurrent Layers

.. autosummary:: :toctree: generated :nosignatures: :template: classtemplate.rst

nn.RNNBase
nn.RNN
nn.LSTM
nn.GRU
nn.RNNCell
nn.LSTMCell
nn.GRUCell

Transformer Layers

.. autosummary:: :toctree: generated :nosignatures: :template: classtemplate.rst

nn.Transformer
nn.TransformerEncoder
nn.TransformerDecoder
nn.TransformerEncoderLayer
nn.TransformerDecoderLayer

Linear Layers

.. autosummary:: :toctree: generated :nosignatures: :template: classtemplate.rst

nn.Identity
nn.Linear
nn.Bilinear
nn.LazyLinear

Dropout Layers

.. autosummary:: :toctree: generated :nosignatures: :template: classtemplate.rst

nn.Dropout
nn.Dropout1d
nn.Dropout2d
nn.Dropout3d
nn.AlphaDropout
nn.FeatureAlphaDropout

Sparse Layers

.. autosummary:: :toctree: generated :nosignatures: :template: classtemplate.rst

nn.Embedding
nn.EmbeddingBag

Distance Functions

.. autosummary:: :toctree: generated :nosignatures: :template: classtemplate.rst

nn.CosineSimilarity
nn.PairwiseDistance

Loss Functions

.. autosummary:: :toctree: generated :nosignatures: :template: classtemplate.rst

nn.L1Loss
nn.MSELoss
nn.CrossEntropyLoss
nn.CTCLoss
nn.NLLLoss
nn.PoissonNLLLoss
nn.GaussianNLLLoss
nn.KLDivLoss
nn.BCELoss
nn.BCEWithLogitsLoss
nn.MarginRankingLoss
nn.HingeEmbeddingLoss
nn.MultiLabelMarginLoss
nn.HuberLoss
nn.SmoothL1Loss
nn.SoftMarginLoss
nn.MultiLabelSoftMarginLoss
nn.CosineEmbeddingLoss
nn.MultiMarginLoss
nn.TripletMarginLoss
nn.TripletMarginWithDistanceLoss

Vision Layers

.. autosummary:: :toctree: generated :nosignatures: :template: classtemplate.rst

nn.PixelShuffle
nn.PixelUnshuffle
nn.Upsample
nn.UpsamplingNearest2d
nn.UpsamplingBilinear2d

Shuffle Layers

.. autosummary:: :toctree: generated :nosignatures: :template: classtemplate.rst

nn.ChannelShuffle

DataParallel Layers (multi-GPU, distributed)

.. automodule:: torch.nn.parallel .. currentmodule:: torch

.. autosummary:: :toctree: generated :nosignatures: :template: classtemplate.rst

nn.DataParallel
nn.parallel.DistributedDataParallel

Utilities

.. automodule:: torch.nn.utils

From the torch.nn.utils module:

Utility functions to clip parameter gradients.

.. currentmodule:: torch.nn.utils .. autosummary:: :toctree: generated :nosignatures:

clip_grad_norm_
clip_grad_norm
clip_grad_value_
get_total_norm
clip_grads_with_norm_

Utility functions to flatten and unflatten Module parameters to and from a single vector.

.. autosummary:: :toctree: generated :nosignatures:

parameters_to_vector
vector_to_parameters

Utility functions to fuse Modules with BatchNorm modules.

.. autosummary:: :toctree: generated :nosignatures:

fuse_conv_bn_eval
fuse_conv_bn_weights
fuse_linear_bn_eval
fuse_linear_bn_weights

Utility functions to convert Module parameter memory formats.

.. autosummary:: :toctree: generated :nosignatures:

convert_conv2d_weight_memory_format
convert_conv3d_weight_memory_format

Utility functions to apply and remove weight normalization from Module parameters.

.. autosummary:: :toctree: generated :nosignatures:

weight_norm
remove_weight_norm
spectral_norm
remove_spectral_norm

Utility functions for initializing Module parameters.

.. autosummary:: :toctree: generated :nosignatures:

skip_init

Utility classes and functions for pruning Module parameters.

.. autosummary:: :toctree: generated :nosignatures:

prune.BasePruningMethod
prune.PruningContainer
prune.Identity
prune.RandomUnstructured
prune.L1Unstructured
prune.RandomStructured
prune.LnStructured
prune.CustomFromMask
prune.identity
prune.random_unstructured
prune.l1_unstructured
prune.random_structured
prune.ln_structured
prune.global_unstructured
prune.custom_from_mask
prune.remove
prune.is_pruned

Parametrizations implemented using the new parametrization functionality in :func:torch.nn.utils.parameterize.register_parametrization.

.. autosummary:: :toctree: generated :nosignatures:

parametrizations.orthogonal
parametrizations.weight_norm
parametrizations.spectral_norm

Utility functions to parametrize Tensors on existing Modules. Note that these functions can be used to parametrize a given Parameter or Buffer given a specific function that maps from an input space to the parametrized space. They are not parameterizations that would transform an object into a parameter. See the Parametrizations tutorial <https://pytorch.org/tutorials/intermediate/parametrizations.html>_ for more information on how to implement your own parametrizations.

.. autosummary:: :toctree: generated :nosignatures:

parametrize.register_parametrization
parametrize.remove_parametrizations
parametrize.cached
parametrize.is_parametrized
parametrize.transfer_parametrizations_and_params
parametrize.type_before_parametrizations

.. autosummary:: :toctree: generated :nosignatures: :template: classtemplate.rst

parametrize.ParametrizationList

Utility functions to call a given Module in a stateless manner.

.. autosummary:: :toctree: generated :nosignatures:

stateless.functional_call

Utility functions in other modules

.. currentmodule:: torch .. autosummary:: :toctree: generated :nosignatures:

nn.utils.rnn.PackedSequence
nn.utils.rnn.pack_padded_sequence
nn.utils.rnn.pad_packed_sequence
nn.utils.rnn.pad_sequence
nn.utils.rnn.pack_sequence
nn.utils.rnn.unpack_sequence
nn.utils.rnn.unpad_sequence
nn.utils.rnn.invert_permutation
nn.parameter.is_lazy
nn.factory_kwargs

.. autosummary:: :toctree: generated :nosignatures: :template: classtemplate.rst

nn.modules.flatten.Flatten
nn.modules.flatten.Unflatten

Quantized Functions

Quantization refers to techniques for performing computations and storing tensors at lower bitwidths than floating point precision. PyTorch supports both per tensor and per channel asymmetric linear quantization. To learn more how to use quantized functions in PyTorch, please refer to the :ref:quantization-doc documentation.

Lazy Modules Initialization

.. currentmodule:: torch .. autosummary:: :toctree: generated :nosignatures: :template: classtemplate.rst

nn.modules.lazy.LazyModuleMixin

.. This module needs to be documented. Adding here in the meantime .. for tracking purposes .. py:module:: torch.nn.backends .. py:module:: torch.nn.utils.stateless .. py:module:: torch.nn.backends.thnn .. py:module:: torch.nn.common_types .. py:module:: torch.nn.cpp .. py:module:: torch.nn.functional .. py:module:: torch.nn.grad .. py:module:: torch.nn.init .. py:module:: torch.nn.modules.activation .. py:module:: torch.nn.modules.adaptive .. py:module:: torch.nn.modules.batchnorm .. py:module:: torch.nn.modules.channelshuffle .. py:module:: torch.nn.modules.container .. py:module:: torch.nn.modules.conv .. py:module:: torch.nn.modules.distance .. py:module:: torch.nn.modules.dropout .. py:module:: torch.nn.modules.flatten .. py:module:: torch.nn.modules.fold .. py:module:: torch.nn.modules.instancenorm .. py:module:: torch.nn.modules.lazy .. py:module:: torch.nn.modules.linear .. py:module:: torch.nn.modules.loss .. py:module:: torch.nn.modules.module .. py:module:: torch.nn.modules.normalization .. py:module:: torch.nn.modules.padding .. py:module:: torch.nn.modules.pixelshuffle .. py:module:: torch.nn.modules.pooling .. py:module:: torch.nn.modules.rnn .. py:module:: torch.nn.modules.sparse .. py:module:: torch.nn.modules.transformer .. py:module:: torch.nn.modules.upsampling .. py:module:: torch.nn.modules.utils .. py:module:: torch.nn.parallel.comm .. py:module:: torch.nn.parallel.distributed .. py:module:: torch.nn.parallel.parallel_apply .. py:module:: torch.nn.parallel.replicate .. py:module:: torch.nn.parallel.scatter_gather .. py:module:: torch.nn.parameter .. py:module:: torch.nn.utils.clip_grad .. py:module:: torch.nn.utils.convert_parameters .. py:module:: torch.nn.utils.fusion .. py:module:: torch.nn.utils.init .. py:module:: torch.nn.utils.memory_format .. py:module:: torch.nn.utils.parametrizations .. py:module:: torch.nn.utils.parametrize .. py:module:: torch.nn.utils.prune .. py:module:: torch.nn.utils.rnn