Red de conocimiento informático - Problemas con los teléfonos móviles - Desmontaje de la capa de red neuronal PyTorch

Desmontaje de la capa de red neuronal PyTorch

En este artículo, analizaremos las capas comunes de la red neuronal PyTorch, que desde la perspectiva de un desarrollador son funciones que completan el procesamiento de datos una tras otra.

Primero: CLASS torch.nn.Flatten ( start_dim=1 , end_dim=- 1 ) convierte la entrada multidimensional en una dimensión, que a menudo se usa para la transición de una capa convolucional a una capa completamente conectada. Tenga en cuenta que el valor predeterminado de Flatten () es start_dim = 1, es decir, el formato de datos predeterminado es [N, C, H, W] y la dimensión 0 es el tamaño del lote y no participa en Flatten.

La segunda capa, CLASS torch.nn.Linear( in_features , out_features ,bias=True , device=None , dtype=None ) , Linear también se llama capa completamente conectada y se llama Densa en TensorFlow . Las capas lineales llamadas Dense en TensorFlow se utilizan principalmente para la clasificación.

La clase Lineal tiene dos atributos:

Tercero, CLASS torch.nn.Conv2d (in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups= 1. diagonal = True, padding_mode = 'zeros', dispositivo = Ninguno, dtype = Ninguno), capa convolucional, a menudo utilizada para extraer características de imágenes, CNN RELU MaxPooling se ha convertido en una operación de extracción de características de uso común.

Cabe señalar que CNN requiere que el formato de entrada de datos sea [N, Cin, Hin, Wout], Cin es el número de canales del tensor de datos de entrada y la salida es [N, Cout , Hout, Wout], Cout es el número de convoluciones de esta capa CNN. Las fórmulas de cálculo de Hout y Wout son las siguientes:

Proceso de muestra:

Resumen: