【chatgpt】pytorch打印模型model参数,使用parameters()方法和named_parameters()方法

在 PyTorch 中,一个模型的参数通常指模型中所有可训练的权重和偏置。每个 nn.Module 对象(包括自定义的神经网络类)都有一个 parameters() 方法和一个 named_parameters() 方法,这些方法可以用来访问模型中的所有参数。以下是这些方法的详细解释和使用示例。

参数的获取方法

  1. parameters():返回模型中所有参数的一个生成器。
  2. named_parameters():返回一个生成器,生成模型中所有参数的名称和参数张量。

示例:定义并获取模型的参数

下面是一个包含多个线性层的简单神经网络示例,并展示如何获取和打印模型的所有参数。

定义一个简单的神经网络
python 复制代码
import torch
import torch.nn as nn

class SimpleNN(nn.Module):
    def __init__(self):
        super(SimpleNN, self).__init__()
        self.fc1 = nn.Linear(4, 3)
        self.fc2 = nn.Linear(3, 2)
        self.fc3 = nn.Linear(2, 1)

    def forward(self, x):
        x = self.fc1(x)
        x = torch.relu(x)
        x = self.fc2(x)
        x = torch.relu(x)
        x = self.fc3(x)
        return x

# 实例化神经网络
model = SimpleNN()
获取并打印模型的所有参数
  1. 使用 parameters() 方法获取模型所有参数
python 复制代码
print("模型的所有参数:")
for param in model.parameters():
    print(param)
  1. 使用 named_parameters() 方法获取模型所有参数及其名称
python 复制代码
print("模型的所有参数及其名称:")
for name, param in model.named_parameters():
    print(f"参数名称: {name}")
    print(f"参数值:\n{param}")
    print(f"参数的形状: {param.shape}")
    print()

示例输出

输出可能类似于以下内容(具体数值会因为参数初始化而不同):

复制代码
模型的所有参数及其名称:
参数名称: fc1.weight
参数值:
Parameter containing:
tensor([[ 0.0841,  0.0476,  0.0294, -0.1092],
        [ 0.1422, -0.0623,  0.1579, -0.0781],
        [ 0.0924,  0.1263, -0.1484,  0.0397]], requires_grad=True)
参数的形状: torch.Size([3, 4])

参数名称: fc1.bias
参数值:
Parameter containing:
tensor([0.0457, 0.0912, 0.0273], requires_grad=True)
参数的形状: torch.Size([3])

参数名称: fc2.weight
参数值:
Parameter containing:
tensor([[ 0.0570,  0.0563, -0.1074],
        [ 0.0768, -0.0612,  0.1292]], requires_grad=True)
参数的形状: torch.Size([2, 3])

参数名称: fc2.bias
参数值:
Parameter containing:
tensor([ 0.0428, -0.1312], requires_grad=True)
参数的形状: torch.Size([2])

参数名称: fc3.weight
参数值:
Parameter containing:
tensor([[ 0.0825,  0.0076]], requires_grad=True)
参数的形状: torch.Size([1, 2])

参数名称: fc3.bias
参数值:
Parameter containing:
tensor([0.0963], requires_grad=True)
参数的形状: torch.Size([1])

总结

  • parameters() 方法返回模型所有参数的生成器。
  • named_parameters() 方法返回模型所有参数及其名称的生成器。
  • 通过这些方法,可以方便地访问和打印模型中的所有参数,有助于检查模型的配置和调试。

这些方法对于了解和调试模型的参数配置非常有用,使得你能够全面掌握模型内部的具体情况。

相关推荐
牛客企业服务24 分钟前
2025年AI面试推荐榜单,数字化招聘转型优选
人工智能·python·算法·面试·职场和发展·金融·求职招聘
视觉语言导航1 小时前
RAL-2025 | 清华大学数字孪生驱动的机器人视觉导航!VR-Robo:面向视觉机器人导航与运动的现实-模拟-现实框架
人工智能·深度学习·机器人·具身智能
**梯度已爆炸**1 小时前
自然语言处理入门
人工智能·自然语言处理
ctrlworks1 小时前
楼宇自控核心功能:实时监控设备运行,快速诊断故障,赋能设备寿命延长
人工智能·ba系统厂商·楼宇自控系统厂家·ibms系统厂家·建筑管理系统厂家·能耗监测系统厂家
BFT白芙堂2 小时前
睿尔曼系列机器人——以创新驱动未来,重塑智能协作新生态(上)
人工智能·机器学习·机器人·协作机器人·复合机器人·睿尔曼机器人
aneasystone本尊2 小时前
使用 MCP 让 Claude Code 集成外部工具
人工智能
静心问道2 小时前
SEW:无监督预训练在语音识别中的性能-效率权衡
人工智能·语音识别
羊小猪~~2 小时前
【NLP入门系列五】中文文本分类案例
人工智能·深度学习·考研·机器学习·自然语言处理·分类·数据挖掘
xwz小王子2 小时前
从LLM到WM:大语言模型如何进化成具身世界模型?
人工智能·语言模型·自然语言处理
我爱一条柴ya2 小时前
【AI大模型】深入理解 Transformer 架构:自然语言处理的革命引擎
人工智能·ai·ai作画·ai编程·ai写作