Explicación detallada de PyTorch's nn. Linear ()

nn.Linear () de yTorch se utiliza para establecer la capa completamente conectada en la red. Cabe señalar que la entrada y salida de la capa completamente conectada son tensores bidimensionales, la forma general es [batch_size, size], que es diferente de la convolución La capa requiere que la entrada y la salida sean tensores de cuatro dimensiones. Su uso y parámetros formales se describen a continuación:
Inserte la descripción de la imagen aquí
in_features se refiere al tamaño del tensor bidimensional de entrada, es decir, el tamaño en la entrada [batch_size, size].
  out_features se refiere al tamaño del tensor bidimensional de salida, es decir, la forma del tensor bidimensional de salida es [batch_size, output_size], por supuesto, también representa el número de neuronas en la capa completamente conectada.
  Desde la perspectiva de la forma de los tensores de entrada y salida, es equivalente a un tensor cuya entrada es [batch_size, in_features] se transforma en un tensor de salida de [batch_size, out_features].
Uso de ejemplo:

import torch as t
from torch import nn

# in_features由输入张量的形状决定,out_features则决定了输出张量的形状 
connected_layer = nn.Linear(in_features = 64*64*3, out_features = 1)

# 假定输入的图像形状为[64,64,3]
input = t.randn(1,64,64,3)

# 将四维张量转换为二维张量之后,才能作为全连接层的输入
input = input.view(1,64*64*3)
print(input.shape)
output = connected_layer(input) # 调用全连接层
print(output.shape)

El resultado de ejecutar este código es:

input shape is %s torch.Size([1, 12288])
output shape is %s torch.Size([1, 1])

Reimpreso de: https://blog.csdn.net/qq_42079689/article/details/102873766

Supongo que te gusta

Origin blog.csdn.net/qq_35037684/article/details/114897780
Recomendado
Clasificación