gpt4 book ai didi

pytorch - nn.Linear层在pytorch中在附加维度上的应用

转载 作者:行者123 更新时间:2023-12-05 04:02:19 29 4
gpt4 key购买 nike

pytorch中的全连接层(nn.Linear)是如何应用于“附加维度”的? documentation说,它可以用于连接张量 (N,*,in_features)(N,*,out_features),其中 N在批处理中的示例数量中,因此它是无关紧要的,* 是那些“附加”维度。这是否意味着单个层是使用附加维度中所有可能的切片进行训练的,或者是针对每个切片或其他不同的东西训练的单独层?

最佳答案

in_features * out_featureslinear.weight 中学习的参数和 out_featureslinear.bias 中学习的参数.你可以想到nn.Linear作为

  1. 将张量 reshape 为一些 (N', in_features) , 其中N'N 的产品以及 * 描述的所有尺寸: input_2d = input.reshape(-1, in_features)
  2. 应用标准矩阵-矩阵乘法 output_2d = linear.weight @ input_2d .
  3. 添加偏差 output_2d += linear.bias.reshape(1, in_features) (注意我们在所有 N' 维度上广播它)
  4. reshape 输出,使其具有与 input 相同的维度,除了最后一个:output = output_2d.reshape(*input.shape[:-1], out_features)
  5. return output

所以领先维度N被视为与 * 相同方面。文档使 N明确地让您知道输入必须至少 2d,但可以是您希望的任意多维。

关于pytorch - nn.Linear层在pytorch中在附加维度上的应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54444630/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com