以pytorch中的nn.Linear线性层为例,在神经网络中,权重矩阵的形状通常是(output_size, input_size),原因是权重矩阵用于将输入数据的特征映射到输出空间,而并非是直接理解出的“(input_size, output_size)”。

对于nn.Linear, 输入通常为(batch_size, input_size), 我们将通过权重矩阵将输入向量从'input_size'维度进行空间映射到'output_size' 维度。公式如下:


\text{output} = \text{input} \times \text{weights}^T + \text{bias}

where:

  1. input shape: (batch_size, input_size)
  2. weight shape: (output_size, input_size) --> weight^T: (inputs_size, output_size)
  3. bias shape: (output_size, )

所以通过矩阵乘法以后,输出数据的形状为(batchs_size, output_size)符合预期。因此权重矩阵的形状是(output_size, input_size)而非(input_size, output_size)

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐