我如何使用字典映射张量

时间:2021-02-16 12:59:19

标签: python pytorch

我正在尝试使用字典映射张量,但 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)

2 个答案:

答案 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_agentdtype long

envir_with_agent[b.position_agent[0].item(), b.position_agent[1].item()] = 4