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

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

相关推荐
OceanBase数据库官方博客3 小时前
OceanBase DataPilot AIP:Ontology 承载AI能力面的另一条路
人工智能·oceanbase
笨鸟先飞,勤能补拙4 小时前
AI 赋能网络安全:技术全景、成熟度评估与实战案例
人工智能·python·安全·web安全·网络安全·sqlite·github
一次旅行4 小时前
AI 前沿日报 | 2026年07月31日
人工智能
2601_963749105 小时前
标题:越华环保集团|面向美丽河湖项目的数字化污水治理云边协同采集架构设计
人工智能
沐籽李5 小时前
从溶剂可及表面积SASA理解抗体结构与工程改造
人工智能·药物设计·aidd·sasa
智慧物业老杨5 小时前
物业如何做好预算管理?落地架构逻辑
人工智能·架构
微学AI5 小时前
一根针指向所有方向:挂谷猜想对 LLM Agent 技能-记忆架构的启示
开发语言·人工智能·架构·挂谷猜想
城管不管5 小时前
ReAct、Plan-and-Execute、Reflection 三大智能 Agent 范式核心区别
java·人工智能·算法·spring·ai·动态规划
boppu5 小时前
布草特殊污渍去渍剂的种类及作用
大数据·人工智能
AIsoft_86885 小时前
会议录音转文字与AI纪要工具推荐:免费额度与核心功能对比指南
人工智能