码迷,mamicode.com
首页 > 其他好文 > 详细

各种报错

时间:2021-03-01 13:14:12      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:gradient   scala   导致   nbsp   check   调用   NPU   安装   cuda   

1.return torch.embedding(weight, input, padding_idx, scale_grad_by_freq, sparse)RuntimeError: Expected tensor for argument #1 ‘indices‘ to have scalar type Long; but got torch.IntTensor instead (while checking arguments for embedding)

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]]])

2.关于安装Spacy以及de和en模块遇到的坑

https://www.pythonheidong.com/blog/article/233961/aff07bd143f34d50f1fa/

3.RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.LongTensor [4, 20]] is at version 21; expected version 20 instead. Hint: enable anomaly detection to find the operation that failed to compute its gradient, with torch.autograd.set_detect_anomaly(True).

loss.backward()报错说某个变量在前向计算时是一个值,在求梯度时变成了另一个值(inplace 操作导致),使得pytorch在反向梯度求导时产生了错误,这个变量不会在报错时指明,需要分析程序找出;

常见的解决方案可以把原地操作改成非原地操作(我没有成功),或者切断反向传播;

把训练过程中值会变化的变量加.data;

关于pytorch..detach() 和 .data用于切断反向传播,参考链接https://www.cnblogs.com/wanghui-garcia/p/10677071.html

4.在读取其他文件夹下的.py文件时,报错ModuleNotFoundError: No module named ‘文件夹‘

假设有文件夹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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!