我有Tensor的列表
t_list=[tensor([[1],
[1],
[1]]),
tensor([[1],
[1],
[1]]),
tensor([[1],
[1],
[1]])]
想把它转换成
[tensor([[1,0,0],
[1,0,0],
[1,0,0]]),
tensor([[1,0,0],
[1,0,0],
[1,0,0]]),
tensor([[1,0,0],
[1,0,0],
[1,0,0]])]
我试过这个密码
import torch
z= torch.zeros(1,2)
for i, item in enumerate(t_list):
for ii, item2 in enumerate(item):
unsqueezed = torch.unsqueeze(item2,0)
cat1 = torch.cat((unsqueezed,z),-1)
squeezed = torch.squeeze(cat1,0)
t[i][ii] = squeezed
但得到了这个错误
RuntimeError: expand(torch.FloatTensor{[5]}, size=[]): the number of sizes provided (0) must be greater or equal to the number of dimensions in the tensor (1)
我不知道该怎么办
2条答案
按热度按时间3duebb1j1#
你应该使用列表理解和一些“外积”技巧:
sauutmhj2#
嗯,我把它们存储在一个新的列表中。也许这不是最好的方法,但这是我如何做到的