pytorch获取模型某一层参数名及参数值

博客主要讲述了两个需求,一是修改某些参数的值,二是检查某些参数的值。同时列出了实现这些需求所需的函数,包括 state_dict()、model.modules() 和 named_parameters()。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Motivation:

  1. I wanna modify the value of some param;
  2. I wanna check the value of some param.

The needed function:

  1. state_dict() #generator type
  2. model.modules()#generator type
  3. named_parameters()#OrderDict type
from torch import nn
import torch
#creat a simple model
model = nn.Sequential(
   nn.Conv3d(1,16,kernel_size=1),
   nn.Conv3d(16,2,kernel_size=1))#tend to print the W of this layer
input = torch.randn([1,1,16,256,256])
if torch.cuda.is_available():
   print('cuda is avaliable')
   model.cuda()
   input = input.cuda()
#打印某一层的参数名
for name in model.state_dict():
   print(name)
#Then  I konw that the name of target layer is '1.weight'

#schemem1(recommended)
print(model.state_dict()['1.weight'])

#scheme2
params = list(model.named_parameters())#get the index by debuging
print(params[2][0])#name
print(params[2][1].data)#data

#scheme3
params = {}#change the tpye of 'generator' into dict
for name,param in model.named_parameters():
params[name] = param.detach().cpu().numpy()
print(params['0.weight'])

#scheme4
for layer in model.modules():
if(isinstance(layer,nn.Conv3d)):
   print(layer.weight)

#打印每一层的参数名和参数值
#schemem1(recommended)
for name,param in model.named_parameters():
   print(name,param)

#scheme2
for name in model.state_dict():
   print(name)
   print(model.state_dict()[name])
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值