这篇文章给大家分享的是有关pytorch如何获取模型某一层参数名及参数值方式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
1.PyTorch是相当简洁且高效快速的框架;2.设计追求最少的封装;3.设计符合人类思维,它让用户尽可能地专注于实现自己的想法;4.与google的Tensorflow类似,FAIR的支持足以确保PyTorch获得持续的开发更新;5.PyTorch作者亲自维护的论坛 供用户交流和求教问题6.入门简单
1、Motivation:
I wanna modify the value of some param;
I wanna check the value of some param.
The needed function:
2、state_dict() #generator type
model.modules()#generator type
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])
感谢各位的阅读!关于“pytorch如何获取模型某一层参数名及参数值方式”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。