1、cuDNN版本不匹配
被这个问题困了一上午。。。
首先$LD_LIBRARY_PATH
显示的路径为/usr/local/cuda-9.0/lib64
cd到这个路径下发现对应的cudnn版本为7102
但是conda list显示自己anaconda对应的cudnn版本为7301
因此产生了版本不匹配
解决方案: conda install cudnn=7.1.2
将自己的cudnn版本改为7102
2、计算梯度的时候报错
Pytorch在梯度下降的时候,对于梯度有影响的变量不能有inplace操作
inplace操作包括:
1️⃣+= 、 -=类,改为x = x+1
2️⃣带下划线类,比如squeeze_(),改为无下划线
3️⃣对张量进行修改
今天刚刚遇到的:
for i in range(b):
if a[i] == self.tokenizer.yes_token:
attention[i] = attention[i].clone() + self.alpha*att[i]
elif a[i] == self.tokenizer.no_token:
attention[i] = attention[i].clone() - sel