You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyTorch中nn.Linear输出随机张量的来源及置零方法咨询

PyTorch线性层问题解答

1. (5,4)输出张量的数值来源

nn.Linear(3,4)初始化时,PyTorch会默认用He正态初始化生成形状为(4,3)的权重矩阵,同时用均匀初始化生成形状为(4,)的偏置向量。你的输入是全1的(5,3)张量,输出的计算逻辑是:
output = input @ weight.T + bias
因为输入每行都是[1,1,1],所以每行输出等于权重矩阵对应行的元素之和加上对应位置的偏置,因此所有行输出一致,而数值的随机性完全来自初始化阶段生成的权重和偏置。

2. 如何让输出张量变为全0

有两种实用方法:

  • 方法一:重置线性层的权重和偏置为0
    linear = nn.Linear(3, 4)
    # 将权重张量置0
    linear.weight.data.zero_()
    # 将偏置张量置0
    linear.bias.data.zero_()
    
    input = torch.ones(5, 3)
    output = linear(input)
    print(output)  # 此时输出为全0的(5,4)张量
    
  • 方法二:直接构造全0张量(无需经过线性层计算)
    output = torch.zeros(5, 4)
    

3. 代码截图问题排查

你提到附上了代码截图,但当前内容里没有包含截图的具体信息,请补充截图中的代码文本或详细描述代码内容,才能帮你排查存在的问题。


内容的提问来源于stack exchange,提问作者user1766349

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 02:35:15