跑卷积神经网络的时候把数据封装成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的错误多尝试转换数据类型试试就对了。