logo

antorcha.nn en PyTorch

PyTorch proporciona el módulo torch.nn para ayudarnos a crear y entrenar la red neuronal. Primero entrenaremos la red neuronal básica en el conjunto de datos MNIST sin utilizar ninguna característica de estos modelos. Usaremos solo la funcionalidad básica del tensor de PyTorch y luego agregaremos incrementalmente una característica de torch.nn a la vez.

torch.nn nos proporciona muchas más clases y módulos para implementar y entrenar la red neuronal.

El paquete nn contiene los siguientes módulos y clases:

S.No Clase y módulo Descripción
1. antorcha.nn.Parámetro Es un tipo de tensor que debe considerarse como parámetro de módulo.
2. Contenedores
1) módulo.nn.antorcha Es una clase base para todos los módulos de redes neuronales.
2) antorcha.nn.Secuencial Es un contenedor secuencial en el que se agregarán módulos en el mismo orden en que se pasan en el constructor.
3) antorcha.nn.ModuleList Esto contendrá submódulos en una lista.
4) antorcha.nn.ModuleDict Esto contendrá submódulos en un directorio.
5) antorcha.nn.ParameterList Esto mantendrá los parámetros en una lista.
6) antorcha.nn.parameterDict Esto mantendrá los parámetros en un directorio.
3. Capas de convolución
1) antorcha.nn.Conv1d Este paquete se utilizará para aplicar una convolución 1D sobre una señal de entrada compuesta de varios planos de entrada.
2) antorcha.nn.Conv2d Este paquete se utilizará para aplicar una convolución 2D sobre una señal de entrada compuesta por varios planos de entrada.
3) antorcha.nn.Conv3d Este paquete se utilizará para aplicar una convolución 3D sobre una señal de entrada compuesta por varios planos de entrada.
4) antorcha.nn.ConvTranspose1d Este paquete se utilizará para aplicar un operador de convolución transpuesta 1D sobre una imagen de entrada compuesta por varios planos de entrada.
5) antorcha.nn.ConvTranspose2d Este paquete se utilizará para aplicar un operador de convolución transpuesta 2D sobre una imagen de entrada compuesta por varios planos de entrada.
6) antorcha.nn.ConvTranspose3d Este paquete se utilizará para aplicar un operador de convolución transpuesta 3D sobre una imagen de entrada compuesta por varios planos de entrada.
7) antorcha.nn.Desplegada Se utiliza para extraer bloques locales deslizantes de un tensor de entrada por lotes.
8) antorcha.nn.Doblar Se utiliza para combinar una serie de bloques locales deslizantes en un tensor contenedor grande.
4. Capas de agrupación
1) antorcha.nn.MaxPool1d Se utiliza para aplicar una agrupación máxima 1D sobre una señal de entrada compuesta de varios planos de entrada.
2) antorcha.nn.MaxPool2d Se utiliza para aplicar una agrupación máxima 2D sobre una señal de entrada compuesta de varios planos de entrada.
3) antorcha.nn.MaxPool3d Se utiliza para aplicar una agrupación máxima 3D sobre una señal de entrada compuesta de varios planos de entrada.
4) antorcha.nn.MaxUnpool1d Se utiliza para calcular el inverso parcial de MaxPool1d.
5) antorcha.nn.MaxUnpool2d Se utiliza para calcular el inverso parcial de MaxPool2d.
6) antorcha.nn.MaxUnpool3d Se utiliza para calcular el inverso parcial de MaxPool3d.
7) antorcha.nn.AvgPool1d Se utiliza para aplicar una agrupación promedio 1D sobre una señal de entrada compuesta de varios planos de entrada.
8) antorcha.nn.AvgPool2d Se utiliza para aplicar una agrupación promedio 2D sobre una señal de entrada compuesta de varios planos de entrada.
9) antorcha.nn.AvgPool3d Se utiliza para aplicar una agrupación promedio 3D sobre una señal de entrada compuesta de varios planos de entrada.
10) antorcha.nn.FractionalMaxPool2d Se utiliza para aplicar una agrupación máxima fraccional 2D sobre una señal de entrada compuesta de varios planos de entrada.
11) antorcha.nn.LPPool1d Se utiliza para aplicar una agrupación de potencia promedio 1D sobre una señal de entrada compuesta de varios planos de entrada.
12) antorcha.nn.LPPool2d Se utiliza para aplicar una agrupación de potencia promedio 2D sobre una señal de entrada compuesta de varios planos de entrada.
13) antorcha.nn.AdavtiveMaxPool1d Se utiliza para aplicar una agrupación máxima adaptativa 1D sobre una señal de entrada compuesta de varios planos de entrada.
14) antorcha.nn.AdavtiveMaxPool2d Se utiliza para aplicar una agrupación máxima adaptativa 2D sobre una señal de entrada compuesta de varios planos de entrada.
15) antorcha.nn.AdavtiveMaxPool3d Se utiliza para aplicar una agrupación máxima adaptativa 3D sobre una señal de entrada compuesta de varios planos de entrada.
16) antorcha.nn.AdavtiveAvgPool1d Se utiliza para aplicar una agrupación promedio adaptativa 1D sobre una señal de entrada compuesta de varios planos de entrada.
17) antorcha.nn.AdavtiveAvgPool2d Se utiliza para aplicar una agrupación promedio adaptativa 2D sobre una señal de entrada compuesta de varios planos de entrada.
18) antorcha.nn.AdavtiveAvgPool3d Se utiliza para aplicar una agrupación promedio adaptativa 3D sobre una señal de entrada compuesta de varios planos de entrada.
5. Capas de acolchado
1) antorcha.nn.ReflectionPad1d Rellenará el tensor de entrada utilizando el reflejo del límite de entrada.
2) antorcha.nn.ReflactionPad2d Rellenará el tensor de entrada utilizando el reflejo del límite de entrada.
3) antorcha.nn.ReplicationPad1 Rellenará el tensor de entrada utilizando la replicación del límite de entrada.
4) antorcha.nn.ReplicationPad2d Rellenará el tensor de entrada utilizando la replicación del límite de entrada.
5) antorcha.nn.ReplicationPad3d Rellenará el tensor de entrada utilizando la replicación del límite de entrada.
6) antorcha.nn.ZeroPad2d Rellenará los límites del tensor de entrada con cero.
7) antorcha.nn.ConstantPad1d Rellenará los límites del tensor de entrada con un valor constante.
8) antorcha.nn.ConstantPad2d Rellenará los límites del tensor de entrada con un valor constante.
9) antorcha.nn.ConstantPad3d Rellenará los límites del tensor de entrada con un valor constante.
6. Activaciones no lineales (suma ponderada, no linealidad)
1) antorcha.nn.ELU Se utilizará para aplicar la función de elemento:
ELU(x)=máx(0,x)+mín(0,α*(exp(x)-1))
2) antorcha.nn.Hardshrink Se utilizará para aplicar la función de contracción estricta por elementos:
antorcha.nn en PyTorch
3) antorcha.nn.LeakyReLU Se utilizará para aplicar la función de elemento:
LeakyReLu(x)=max(0,x) +pendiente_negativa*min(0,x)
4) antorcha.nn.LogSigmoide Se utilizará para aplicar la función de elemento:
antorcha.nn en PyTorch
5) antorcha.nn.MultiheadAttention Se utiliza para permitir que el modelo atienda información de diferentes subespacios de representación.
6) antorcha.nn.PReLU Se utilizará para aplicar la función de elemento:
PReLU(x)=máx(0,x)+a*mín(0,x)
7) antorcha.nn.ReLU Se utilizará para aplicar la función unitaria lineal rectificada por elementos:
ReLU(x)=máx(0,x)
8) antorcha.nn.ReLU6 Se utilizará para aplicar la función de elemento:
ReLU6(x)=mín(máx(0,x),6)
9) antorcha.nn.RReLU Se utilizará para aplicar la función de unidad lineal rectificada con fugas aleatorias, por elementos, como se describe en el artículo:
antorcha.nn en PyTorch
10) antorcha.nn.SELU Se utilizará para aplicar la función de elementos como:
SELU(x)=escala*(max(0,x)+ min(0,a*(exp(x)-1)))

Aquí α= 1.6732632423543772848170429916717 y escala = 1.0507009873554804934193349852946.
11) antorcha.nn.OBJETIVO Se utilizará para aplicar la función de elementos como:
antorcha.nn en PyTorch
12) antorcha.nn.Sigmoide Se utilizará para aplicar la función de elementos como:
antorcha.nn en PyTorch
13) antorcha.nn.Softplus Se utilizará para aplicar la función de elementos como:
antorcha.nn en PyTorch
14) antorcha.nn.Softshrink Se utilizará para aplicar la función de contracción suave por elementos como:
antorcha.nn en PyTorch
15) antorcha.nn.Softsign Se utilizará para aplicar la función de elementos como:
antorcha.nn en PyTorch
16) antorcha.nn.Tanh Se utilizará para aplicar la función de elementos como:
antorcha.nn en PyTorch
17) antorcha.nn.Tanhshrink Se utilizará para aplicar la función de elementos como:
Tanhshrink(x)=x-Tanh(x)
18) antorcha.nn.Umbral Se utilizará para establecer umbrales en cada elemento del tensor de entrada. El umbral se define como:
antorcha.nn en PyTorch
7. Activaciones no lineales (otras)
1) antorcha.nn.Softmin Se utiliza para aplicar la función softmin a un tensor de entrada de n dimensiones para reescalarlos. Después de eso, los elementos del tensor de salida de n dimensiones se encuentran en el rango 0, 1 y suman 1. Softmin se define como:
antorcha.nn en PyTorch
2) antorcha.nn.Softmax Se utiliza para aplicar la función softmax a un tensor de entrada de n dimensiones para reescalarlos. Después de eso, los elementos del tensor de salida de n dimensiones se encuentran en el rango 0, 1 y suman 1. Softmax se define como:
antorcha.nn en PyTorch
3) antorcha.nn.Softmax2d Se utiliza para aplicar SoftMax sobre funciones a cada ubicación espacial.
4) antorcha.nn.LogSoftmax Se utiliza para aplicar la función LogSoftmax a un tensor de entrada de n dimensiones. La función LofSoftmax se puede definir como:
antorcha.nn en PyTorch
5) antorcha.nn.AdaptiveLogSoftmaxWithLoss Es una estrategia para entrenar modelos con grandes espacios de salida. Es muy eficaz cuando la distribución de las etiquetas está muy desequilibrada.
8. Capas de normalización
1) antorcha.nn.BatchNorm1d Se utiliza para aplicar la normalización por lotes sobre entradas 2D o 3D.
antorcha.nn en PyTorch
2) antorcha.nn.BatchNorm2d Se utiliza para aplicar la normalización por lotes en un 4D.
antorcha.nn en PyTorch
3) antorcha.nn.BatchNorm3d Se utiliza para aplicar la normalización por lotes sobre entradas 5D.
antorcha.nn en PyTorch
4) antorcha.nn.NormaGrupo Se utiliza para aplicar la normalización de grupo en un mini lote de entradas.
antorcha.nn en PyTorch
5) antorcha.nn.SyncBatchNorm Se utiliza para aplicar la normalización por lotes sobre entradas de n dimensiones.
antorcha.nn en PyTorch
6) antorcha.nn.InstanceNorm1d Se utiliza para aplicar una normalización de instancia sobre una entrada 3D.
antorcha.nn en PyTorch
7) antorcha.nn.InstanceNorm2d Se utiliza para aplicar una normalización de instancia sobre una entrada 4D.
antorcha.nn en PyTorch
8) antorcha.nn.InstanceNorm3d Se utiliza para aplicar una normalización de instancia sobre una entrada 5D.
antorcha.nn en PyTorch
9) antorcha.nn.Norma de capa Se utiliza para aplicar la normalización de capas en un mini lote de entradas.
antorcha.nn en PyTorch
10) torch.nn.LocalResponseNorm Se utiliza para aplicar normalización de respuesta local sobre una señal de entrada que se compone de varios planos de entrada, donde el canal ocupa la segunda dimensión.
9. Capas recurrentes
1) antorcha.nn.RNN Se utiliza para aplicar un Elman RNN multicapa con no linealidad tanh o ReLU a una secuencia de entrada. Cada capa calcula la siguiente función para cada elemento en la secuencia de entrada:
ht=tanh(Wa ellosXt+ba ellos+WS.Stt-1+bS.S)
2) antorcha.nn.LSTM Se utiliza para aplicar un RNN de memoria a corto plazo (LSTM) multicapa a una secuencia de entrada. Cada capa calcula la siguiente función para cada elemento en la secuencia de entrada:
antorcha.nn en PyTorch
3) antorcha.nn.GRU Se utiliza para aplicar una unidad recurrente cerrada (GRU) RNN de múltiples capas a una secuencia de entrada. Cada capa calcula la siguiente función para cada elemento en la secuencia de entrada:
antorcha.nn en PyTorch
4) antorcha.nn.RNNCell Se utiliza para aplicar una celda Elman RNN con no linealidad tanh o ReLU a una secuencia de entrada. Cada capa calcula la siguiente función para cada elemento en la secuencia de entrada:
h'=tanh(Wa ellosx+ba ellos+WS.Sh+bS.S)
ReLU se utiliza en lugar de tanh
5) antorcha.nn.LSTMCell Se utiliza para aplicar una celda de memoria a corto plazo (LSTM) a una secuencia de entrada. Cada capa calcula la siguiente función para cada elemento en la secuencia de entrada:
antorcha.nn en PyTorch
Donde σ es la función sigmoidea y * es el producto de Hadamard.
6) antorcha.nn.GRUCell Se utiliza para aplicar una celda de unidad recurrente cerrada (GRU) a una secuencia de entrada. Cada capa calcula la siguiente función para cada elemento en la secuencia de entrada:
antorcha.nn en PyTorch
10. Capas lineales
1) antorcha.nn.Identidad Es un operador de identidad de marcador de posición que no tiene en cuenta los argumentos.
2) antorcha.nn.Lineal Se utiliza para aplicar una transformación lineal a los datos entrantes:
y=xAt+b
3) antorcha.nn.Bilineal Se utiliza para aplicar una transformación bilineal a los datos entrantes:
y=x1Hacha2+b
11. Capas de abandono
1) antorcha.nn.Abandono Se utiliza para la regularización y prevención de la coadaptación de las neuronas. un factor de antorcha.nn en PyTorchdurante el entrenamiento se escala el resultado. Eso significa que el módulo calcula una función de identidad durante la evaluación.
2) antorcha.nn.Dropout2d Si los píxeles adyacentes dentro de los mapas de características están correlacionados, torch.nn.Dropout no regularizará las activaciones y disminuirá la tasa de aprendizaje efectiva. En este caso, torch.nn.Dropout2d() se utiliza para promover la independencia entre mapas de características.
3) antorcha.nn.Dropout3d Si los píxeles adyacentes dentro de los mapas de características están correlacionados, torch.nn.Dropout no regularizará las activaciones y disminuirá la tasa de aprendizaje efectiva. En este caso, torch.nn.Dropout2d () se utiliza para promover la independencia entre mapas de características.
4) antorcha.nn.AlphaDropout Se utiliza para aplicar Alpha Dropout sobre la entrada. Alpha Dropout es un tipo de abandono que mantiene la propiedad de autonormalización.
12. Capas dispersas
1) antorcha.nn.Incrustación Se utiliza para almacenar incrustaciones de palabras y recuperarlas mediante índices. La entrada del módulo es una lista de índices y la salida es la incrustación de palabras correspondiente.
2) antorcha.nn.EmbeddingBag Se utiliza para calcular sumas o medias de 'bolsas' de incrustación sin crear una instancia de la incrustación intermedia.
13. Función de distancia
1) antorcha.nn.CosenoSimilaridad Devolverá la similitud del coseno entre x1 y x2, calculada a lo largo de dim.
antorcha.nn en PyTorch
2) antorcha.nn.PairwiseDistance Calcula la distancia por pares por lotes entre los vectores v1, v2 usando la norma p:
antorcha.nn en PyTorch
14. Función de pérdida
1) antorcha.nn.L1Pérdida Se utiliza para un criterio que mide el error absoluto medio entre cada elemento en la entrada x y el objetivo y. La pérdida no reducida se puede describir como:
l(x,y)=L={l1,...,lnorte},lnorte=|xnorte-ynorte|,
Donde N es el tamaño del lote.
2) antorcha.nn.MSELoss Se utiliza para un criterio que mide el error cuadrático medio entre cada elemento en la entrada x y el objetivo y. La pérdida no reducida se puede describir como:
l(x,y)=L={l1,...,lnorte},lnorte=(xnorte-ynorte)2,
Donde N es el tamaño del lote.
3) antorcha.nn.CrossEntropyLoss Este criterio combina nn.LogSoftmax() y nn.NLLLoss() en una sola clase. Es útil cuando entrenamos un problema de clasificación con clases C.
4) antorcha.nn.CTCLoss La pérdida de clasificación temporal conexionista calcula la pérdida entre una serie de tiempo continua y una secuencia objetivo.
5) antorcha.nn.NLLPérdida La pérdida de probabilidad logarítmica negativa se utiliza para entrenar un problema de clasificación con clases C.
6) antorcha.nn.PoissonNLLPérdida La pérdida de probabilidad logarítmica negativa con la distribución de Poisson de t
objetivo~Poisson(entrada)pérdida(entrada,objetivo)=entrada-objetivo*log(objetivo!)el objetivo.
7) antorcha.nn.KLDivLoss Es una medida de distancia útil para la distribución continua y también es útil cuando realizamos una regresión directa sobre el espacio de distribución continua de la producción.
8) antorcha.nn.BCELoss Se utiliza para crear un criterio que mide la entropía cruzada binaria entre el objetivo y la salida. La pérdida no reducida se puede describir como:
l(x,y)=L={l1,...,lnorte},lnorte=-vnorte[ynorte*logxnorte+ (1-ynorte)*registro(1-x)norte)],
Donde N es el tamaño del lote.
9) antorcha.nn.BCEWithLogitsLoss Combina una capa Sigmoide y BCELoss en una sola clase. Podemos aprovechar el truco log-sum-exp para lograr estabilidad numérica combinando la operación en una sola capa.
10) antorcha.nn.MarginRankingLoss Crea un criterio que mide la pérdida de entradas dadas x1, x2, dos tensores de mini lote 1D y una etiqueta tensor de mini lote 1D y que contiene 1 o -1. La función de pérdida para cada muestra del minilote es la siguiente:
pérdida(x,y)=max(0,-y*(x1-X2)+margen
11) torch.nn.HingeEmbeddingLoss HingeEmbeddingLoss mide la pérdida de un tensor de entrada x dado y un tensor de etiquetas y que contiene 1 o -1. Se utiliza para medir si dos entradas son similares o diferentes. La función de pérdida se define como:
antorcha.nn en PyTorch
12) antorcha.nn.MultiLabelMarginLoss Se utiliza para crear un criterio que optimiza una pérdida de bisagra de clasificación múltiple entre la entrada x y la salida y.
antorcha.nn en PyTorch
13) antorcha.nn.SmoothL1Loss Se utiliza para crear un criterio que utiliza un término al cuadrado si el error absoluto de los elementos cae por debajo de 1 y un término L1 en caso contrario. También se conoce como pérdida de Huber:
antorcha.nn en PyTorch
14) antorcha.nn.SoftMarginLoss Se utiliza para crear un criterio que optimiza la pérdida logística de clasificación de dos clases entre el tensor de entrada x y el tensor objetivo y que contienen 1 o -1.
antorcha.nn en PyTorch
15) antorcha.nn.MultiLabelSoftMarginLoss Se utiliza para crear un criterio que optimiza la pérdida uno contra todos de etiquetas múltiples en función de la entropía máxima entre la entrada x y el objetivo y de tamaño (N, C).
antorcha.nn en PyTorch
16) torch.nn.CosineEmbeddingLoss Se utiliza para crear un criterio que mide la pérdida de los tensores de entrada x1, x2 dados y una etiqueta de tensor y con valores 1 o -1. Se utiliza para medir si dos entradas son similares o diferentes, utilizando la distancia del coseno.
antorcha.nn en PyTorch
17) antorcha.nn.MultiMarginLoss Se utiliza para crear un criterio que optimiza una pérdida de bisagra de clasificación multiclase entre la entrada x y la salida y.
antorcha.nn en PyTorch
18) antorcha.nn.TripletMarginLoss Se utiliza para crear un criterio que mide la pérdida triplete de tensores de entrada x1, x2, x3 dados y un margen con un valor mayor que 0. Se utiliza para medir una similitud relativa entre muestras. Un triplete se compone de un ancla, un ejemplo positivo y un ejemplo negativo.
L(a,p,n)=max{d(ai,pagi)-d(ai,nortei)+margen,0}
15. Capas de visión
1) antorcha.nn.PixelShuffle Se utiliza para reorganizar los elementos en un tensor de forma(*,C×r2,H,W) a un tensor de forma (*,C,H×r,W,r)
2) antorcha.nn.Upsample Se utiliza para muestrear datos 1D, 2D o 3D multicanal determinados.
3) antorcha.nn.upsamplingNearest2d Se utiliza para aplicar muestreo ascendente del vecino más cercano 2D a una señal de entrada compuesta por múltiples canales de entrada.
4) antorcha.nn.UpsamplingBilinear2d Se utiliza para aplicar muestreo ascendente bilineal 2D a una señal de entrada compuesta por múltiples canales de entrada.
16. Capas DataParallel (multi-GPU, distribuidas)
1) antorcha.nn.DataParallel Se utiliza para implementar el paralelismo de datos a nivel de módulo.
2) antorcha.nn.DistributedDataParallel Se utiliza para implementar el paralelismo de datos distribuidos, que se basa en el paquete torch.distributed a nivel de módulo.
3) antorcha.nn.DistributedDataParallelCPU Se utiliza para implementar el paralelismo de datos distribuidos para la CPU a nivel de módulo.
17. Utilidades
1) antorcha.nn.clip_grad_norm_ Se utiliza para recortar la norma de gradiente de un iterable de parámetros.
2) antorcha.nn.clip_grad_value_ Se utiliza para recortar la norma de gradiente de un iterable de parámetros en el valor especificado.
3) antorcha.nn.parameters_to_vector Se utiliza para convertir parámetros a un vector.
4) antorcha.nn.vector_to_parameters Se utiliza para convertir un vector a los parámetros.
5) antorcha.nn.weight_norm Se utiliza para aplicar la normalización de peso a un parámetro en el módulo dado.
6) antorcha.nn.remove_weight_norm Se utiliza para eliminar la normalización de peso y la reparametrización de un módulo.
7) antorcha.nn.spectral_norm Se utiliza para aplicar normalización espectral a un parámetro en el módulo dado.
8) antorcha.nn.PackedSequence Se utilizará para contener los datos y la lista de tamaños de lote de una secuencia empaquetada.
9) antorcha.nn.pack_padded_sequence Se utiliza para empaquetar un tensor que contiene secuencias acolchadas de longitud variable.
10) antorcha.nn.pad_packed_sequence Se utiliza para rellenar un lote empaquetado de secuencias de longitud variable.
11) antorcha.nn.pad_sequence Se utiliza para rellenar una lista de tensores de longitud variable con un valor de relleno.
12) antorcha.nn.pack_sequence Se utiliza para empaquetar una lista de tensores de longitud variable.
13) antorcha.nn.remove_spectral_norm Se utiliza para eliminar la normalización espectral y la reparametrización de un módulo.

Referencia:

https://pytorch.org/docs/stable/nn.html