La función es aplicar una convolución 2D en una señal de entrada que consta de varios planos de entrada.
https://pytorch.org/docs/stable/generated/torch.nn.Conv2d.html#torch.nn.Conv2d
prototipo de función
torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros', device=None, dtype=None)
Descripción de parámetros
in_channels: tipo int, el número de canales de imagen de entrada
out_channels: tipo int, el número de canales generados por convolución
kernel_size: tipo int o tuple, el tamaño del kernel de convolución, que se puede establecer en un número de tipo int o un (int , int) elemento de tipo Grupo. Por ejemplo (2,3) es la altura, 2, ancho y 3
zancada del kernel de convolución: tipo int o tupla, zancada de convolución, el valor predeterminado es 1. Se puede establecer en un int o una tupla de (int, int).
relleno: tipo int o tupla, operación de relleno, controla el número de padding_mode.
padding_mode: cadena, escriba 'ceros', 'reflejar', 'replicar' o 'circular'.Predeterminado: modo de relleno 'ceros', el valor predeterminado es cero relleno.
dilatación: tipo int o tupla, operación de expansión: controla el espaciado de los puntos del kernel (puntos del kernel de convolución), valor predeterminado: 1.
grupos, tipo int, la función del parámetro de grupo es controlar la convolución agrupada, el valor predeterminado no está agrupado, es 1 grupo.
bias : bool: True para agregar un sesgo aprendible a la salida. Valor predeterminado: verdadero.
prueba de código
import torch
x = torch.randn(2, 1, 5, 5)
print(x)
conv = torch.nn.Conv2d(1,3,(2,2))
res = conv(x)
print(res.shape)
print(res)
Entrada: x[ tamaño_lote, canales, altura_1, ancho_1 ]
tamaño_lote, el número de muestras en un lote 2
canales, el número de canales, es decir, la profundidad de la capa actual es 1
altura_1, la altura de la imagen es 5
ancho_1 , el ancho de la imagen es 5
Operación de convolución: Conv2d[ canales, salida, altura_2, ancho_2 ]
canales, el número de canales, consistente con lo anterior, es decir, la profundidad de la capa actual es 1
salida, la profundidad de la salida es 3 [requiere 3 filtros]
height_2, la altura del núcleo de convolución 2
ancho_2, el ancho del núcleo de convolución es 2
Salida: res[ tamaño_lote, salida, altura_3, ancho_3 ]
tamaño_lote, el número de muestras en un lote, igual que arriba 2
salida, profundidad de salida 3
altura_3, resultado de convolución altura 4
ancho_3, resultado de convolución ancho 4
imprimir: