错误1:
RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.DoubleTensor [64, 80, 5]], which is output 0 of ReluBackward0, is at version 1; expected version 0 instead. Hint: enable anomaly detection to find the operation that failed to compute its gradient, with torch.autograd.set_detect_anomaly(True)
根据提示说:如果想要检测哪一步操作导致了这个计算梯度的错误,可以用torch.autograd.set_detect_anomaly(True) 于是我将他放在模型训练的开头。
错误2:
接下来错误的地方找到了
意思是我在relu函数这边反向梯度计算时 ,被inplace操作修改了。往上找了一些方法教你怎么去排查,看看有没有inplace=True什么的。但是我最终是通过修改torch的版本解决的。torch==1.9.0