标签:gradient scala 导致 nbsp check 调用 NPU 安装 cuda
torch.nn.Embedding类要求该class的输入input必须是LongTensor
1 embedding = nn.Embedding(10, 3, padding_idx=0) 2 input = torch.LongTensor([[0,2,0,5]]) 3 embedding(input) 4 #tensor([[[ 0.0000, 0.0000, 0.0000], 5 # [ 0.1535, -2.0309, 0.9315], 6 # [ 0.0000, 0.0000, 0.0000], 7 # [-0.1655, 0.9897, 0.0635]]])
https://www.pythonheidong.com/blog/article/233961/aff07bd143f34d50f1fa/
loss.backward()报错说某个变量在前向计算时是一个值,在求梯度时变成了另一个值(inplace 操作导致),使得pytorch在反向梯度求导时产生了错误,这个变量不会在报错时指明,需要分析程序找出;
常见的解决方案可以把原地操作改成非原地操作(我没有成功),或者切断反向传播;
把训练过程中值会变化的变量加.data;
关于pytorch..detach() 和 .data用于切断反向传播,参考链接https://www.cnblogs.com/wanghui-garcia/p/10677071.html
假设有文件夹A和B,A中有文件a.py和aa.py,B中有文件b.py,(两个文件夹中都要有__init__.py函数)
当a.py想要调用b.py中的函数XX,from B.b import XX(不在同一文件夹)
当a.py想要调用aa.py中的函数,from .aa import XX(在同一文件夹,要加.)
实际中的例子:
标签:gradient scala 导致 nbsp check 调用 NPU 安装 cuda
原文地址:https://www.cnblogs.com/cxq1126/p/14299685.html