解决python中的TypeError: embedding(): argument ‘indices‘ (position 2) must be Tensor, not list
问题描述:跑卷积神经网络的时候encoder报了错TypeError: embedding(): argument ‘indices’ (position 2) must be Tensor, not list上一个输出的结果是一个列表,这里需要的是个张量,因此报错。a=[torch.tensor([53, 14, 12, 36, 32, 54, 53, 42,8, 12, 54,1, 42,1,
·
问题描述:
跑卷积神经网络的时候把数据封装成batch的时候,encoder报了如下的错
TypeError: embedding(): argument ‘indices’ (position 2) must be Tensor, not list
上一个输出的结果是一个列表,这里需要的是个张量,因此报错。
a=[torch.tensor([53, 14, 12, 36, 32, 54, 53, 42, 8, 12, 54, 1, 42, 1, 40, 48, 31, 14,
53, 42, 8, 12, 54, 1, 53, 42, 33, 54, 1, 40, 48, 31, 40, 48, 31, 42,
1, 42, 31, 42, 31, 53, 42, 8, 12, 54, 1, 42, 42, 31, 42, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0])]
原因分析:
数据类型不对应。
解决方案:
a=[torch.tensor([53, 14, 12, 36, 32, 54, 53, 42, 8, 12, 54, 1, 42, 1, 40, 48, 31, 14,
53, 42, 8, 12, 54, 1, 53, 42, 33, 54, 1, 40, 48, 31, 40, 48, 31, 42,
1, 42, 31, 42, 31, 53, 42, 8, 12, 54, 1, 42, 42, 31, 42, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0])]
a=a[0]
print(a)
这里a的类型就变成tensor了,后面的数据流也就对了。这种type的错误多尝试转换数据类型试试就对了。
更多推荐
所有评论(0)