要打印 TorchModel 中线性层的权重和偏置,需要先实例化模型,然后通过模型的属性访问线性层,再打印其权重和偏置。以下是修改后的代码:

要打印 TorchModel 中线性层的权重和偏置,需要先实例化模型,然后通过模型的属性访问线性层,再打印其权重和偏置。以下是修改后的代码:

python
 
运行
 
 
 
 
import torch
import torch.nn as nn

class TorchModel(nn.Module):
    def __init__(self, input_size):
        super(TorchModel, self).__init__()
        self.linear = nn.Linear(input_size, 1)  # 线性层
        self.activation = torch.sigmoid  # Sigmoid归一化函数
        self.loss = nn.functional.mse_loss  # 均方差损失函数

# 实例化模型
model = TorchModel(5)

# 打印权重和偏置(需要先访问linear层)
print("权重:", model.linear.weight.detach().numpy())
print("偏置:", model.linear.bias.detach().numpy())
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

关键点解释:

  1. 访问线性层:权重和偏置是 self.linear 的属性,因此需要通过 model.linear.weight 和 model.linear.bias 访问。
  2. 转为 numpy 数组:使用 detach().numpy() 将 PyTorch 张量转换为 NumPy 数组以便打印。
  3. 随机初始化:每次运行时权重和偏置都是随机初始化的,结果会不同。若需要固定结果,可添加 torch.manual_seed(42)

示例输出:

plaintext
 
 
权重: [[-0.01055113  0.24100014 -0.16427004 -0.06450003 -0.17373345]]
偏置: [0.13765424]
posted @ 2025-06-23 01:27  m516606428  阅读(39)  评论(0)    收藏  举报