我正在尝试使用字典映射张量,但 envir_with_agent[1,2] 返回 tensor(4) 而不是 4 并且字典无法正确映射它,最小代码如下
envir_with_agent = b.mountain.clone()
envir_with_agent[b.position_agent[0], b.position_agent[1]] = 4
print(envir_with_agent[1,2])
print(b.dict_map_display[envir_with_agent[1,2]])
字典
self.dict_map_display={
1:'.',
2:'o',
3:'O',
4:'A',
8:'E',
9:'X'}
错误
KeyError Traceback(最近一次调用 最后)在 2 envir_with_agent[b.position_agent[0], b.position_agent[1]] = 4 3 打印(envir_with_agent[1,2]) ----> 4 打印(b.dict_map_display[envir_with_agent[1,2]])
关键错误:张量(4)
答案 0 :(得分:1)
在将其用作索引之前,您需要先将标量张量转换为类型 int
;像这样:
envir_with_agent = b.mountain.clone()
envir_with_agent[int(b.position_agent[0]), int(b.position_agent[1])] = 4
答案 1 :(得分:0)
您首先需要将张量转换为整数,提供 b.position_agent
是 dtype long:
envir_with_agent[b.position_agent[0].item(), b.position_agent[1].item()] = 4