pytorch 0.4.1-“ LSTM”对象没有属性“ weight_ih_l”

时间:2019-02-21 23:32:20

标签: lstm pytorch

简单的问题。我想看看LSTM的初始化参数。我怎么看? 我是否需要始终将lstm放入模型中才能查看参数?

import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
​
torch.manual_seed(1)
torch.__version__
​
lstm = nn.LSTM(3, 3)  
​
lstm.weight_ih_l
  

-------------------------------------------------- ---------------------------- AttributeError Traceback(最近一次调用   最后)在()         9 lstm = nn.LSTM(3,3)        10   ---> 11 lstm.weight_ih_l

     

〜/ anaconda3 / envs / pytorch0.41 / lib / python3.6 / site-packages / torch / nn / modules / module.py   在 getattr 中(自己,名字)       516个返回模块[名称]       517 throw AttributeError(“'{}'对象没有属性'{}'”。format(   -> 518类型(自己)。名称,名称))       519       520 def setattr (自身,名称,值):

     

AttributeError:“ LSTM”对象没有属性“ weight_ih_l”

2 个答案:

答案 0 :(得分:1)

nn.LSTM通过nn.RNNBase实现,它将所有参数放入OrderedDict:_parameters中。因此,要“查看”已初始化的参数,您只需执行以下操作:

import torch
torch.manual_seed(1)

import torch.nn as nn

lstm = nn.LSTM(3, 3)

print(lstm._parameters['weight_ih_l0'])

此外,要知道该OrderedDict中的键值是什么,您可以简单地执行以下操作: print(lstm._all_weights)

答案 1 :(得分:1)

基本上我没有指定层#'0'

lstm.weight_ih_l0也可以胜任。

除了上面的答案,您需要指定参数的层索引。如果要查看第二层,请weight_ih_l1