RuntimeError:索引张量必须具有与自张量相同的维数

RuntimeError: Index tensor must have the same number of dimensions as self tensor

提问人:白茶三斤 提问时间:9/12/2023 最后编辑:白茶三斤 更新时间:9/12/2023 访问量:63

问:

我正在运行深度强化学习代码,但出现以下错误:

RuntimeError: Index tensor must have the same number of dimensions as self tensor

与此错误相关的代码片段为:

def update_mask(mask, dynamic, chosen_idx,num_couriers= None):

print("Mask shape:", mask.shape)
print("Chosen_idx shape:", chosen_idx.shape)

chosen_idx = chosen_idx.to(torch.int64)
mask.scatter_(1, chosen_idx.unsqueeze(1), 0)

return mask

print 语句的输出为:

Mask shape: torch.Size([256, 20, 1]) Chosen_idx shape: torch.Size([256, 1, 20])

我尝试使用 unsqueeze(1) 来掩码和chosen_idx,并尝试在 torch.scatter_() 函数中指定 dim 参数,但它们都不起作用。我仍然收到相同的错误或不同的错误。

我不确定我的索引张量出了什么问题以及如何解决它。谁能帮我解决这个问题?谢谢。

我希望 update_mask 函数在掩码张量中标记访问的城市,以便在下一步中无法再次选择它。掩码张量应与输入张量具有相同的形状,并且访问城市索引处的值应为零。

Python 深度 PyTorch 强化学习 旅行-推销员

评论


答: 暂无答案