我正在尝试训练这个repo https://bitbucket.org/VioletPeng/language-model/src/master/中实现的模型(第二个模型:标题到标题-故事线到故事模型)
训练在第一个时期进行得很好,但是一旦它试图调用训练函数来开始第二个时期,所有的东西都会中断,我得到了以下错误:
TypeError: cannot assign 'torch.cuda.FloatTensor' as parameter 'weight_hh_l0' (torch.nn.Parameter or None expected)我不知道问题出在哪里,我尝试查找这个错误,并尝试将.cuda更改为.to(设备),并在可能的情况下在张量初始化中使用device=。
但这一切似乎都没有起到任何作用。
下面是完整的异常堆栈跟踪:
File "pytorch_src/main.py", line 253, in <module>
train()
File "pytorch_src/main.py", line 209, in train
output, hidden, rnn_hs, dropped_rnn_hs = model(data, hidden, return_h=True)
File "/home/e/anaconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 727, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/e/Documents/Amal/language-model/pytorch_src/model.py", line 81, in forward
raw_output, new_h = rnn(raw_output, hidden[l])
File "/home/e/anaconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 727, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/e/Documents/Amal/language-model/pytorch_src/weight_drop.py", line 47, in forward
self._setweights()
File "/home/e/Documents/Amal/language-model/pytorch_src/weight_drop.py", line 44, in _setweights
setattr(self.module, name_w, w)
File "/home/e/anaconda3/lib/python3.7/site-packages/torch/nn/modules/rnn.py", line 108, in __setattr__
super(RNNBase, self).__setattr__(attr, value)
File "/home/e/anaconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 801, in __setattr__
.format(torch.typename(value), name))发布于 2021-11-23 15:18:49
我将我的python降级到3.6,并重新安装了所有的要求,它工作了。
所以这个问题可能是一个不兼容的torch版本。
https://stackoverflow.com/questions/70072326
复制相似问题