Deep learning 索引器:index_select():索引应该是一个向量
包含index_select函数的行出现此错误,我无法在任何地方找到解决方案。打印时的目标变量如下所示:Deep learning 索引器:index_select():索引应该是一个向量,deep-learning,pytorch,Deep Learning,Pytorch,包含index_select函数的行出现此错误,我无法在任何地方找到解决方案。打印时的目标变量如下所示: for batch_id, (data, target) in enumerate(tqdm(train_loader)): print(target) print('Entered for loop') target = torch.sparse.torch.eye(10).index_select(dim=0, index=targ
for batch_id, (data, target) in enumerate(tqdm(train_loader)):
print(target)
print('Entered for loop')
target = torch.sparse.torch.eye(10).index_select(dim=0, index=target)
data, target = Variable(data), Variable(target)
如何将目标变量转换为向量?它不是已经是一个向量了吗?如果你观察目标变量的形状,你会发现它是一个形状的二维张量:
tensor([[4],
[1],
[8],
[5],
[9],
[5],
[5],
[8],
[4],
[6]])
错误消息有点混乱,但本质上索引应该是一维张量(向量)。因此,使用.squence方法将使:
target.shape # torch.Size([10, 1])
而索引选择方法不会抱怨
target.squeeze().shape # torch.Size([10])