dict_keys对象不支持索引

时间:2019-02-06 22:44:35

标签: python typeerror

我不知道这里出了什么问题

net.blobs['data'].reshape(*(1, 3, imageToTest_padded.shape[0], imageToTest_padded.shape[1]))
#net.forward() # dry run
net.blobs['data'].data[...] = np.transpose(np.float32(imageToTest_padded[:,:,:,np.newaxis]), (3,2,0,1))/256 - 0.5;
start_time = time.time()
output_blobs = net.forward()
print('At scale %d, The CNN took %.2f ms.' % (m, 1000 * (time.time() - start_time)))

# extract outputs, resize, and remove padding
heatmap = np.transpose(np.squeeze(net.blobs[output_blobs.keys()[1]].data), (1,2,0))  # output 1 is heatmaps
heatmap = cv.resize(heatmap, (0,0), fx=model['stride'], fy=model['stride'], interpolation=cv.INTER_CUBIC)
heatmap = heatmap[:imageToTest_padded.shape[0]-pad[2], :imageToTest_padded.shape[1]-pad[3], :]
heatmap = cv.resize(heatmap, (oriImg.shape[1], oriImg.shape[0]), interpolation=cv.INTER_CUBIC)

获取错误TypeError:'dict_keys'对象不支持在线索引

heatmap = np.transpose(np.squeeze(net.blobs[output_blobs.keys()[1]].data), (1,2,0))  # output 1 is heatmaps

原始代码:https://github.com/ZheC/Realtime_Multi-Person_Pose_Estimation

有什么建议吗?谢谢。

1 个答案:

答案 0 :(得分:0)

您可以尝试遍历字典的键:

for key in output_blobs.keys():
    heatmap = np.transpose(np.squeeze(net.blobs[output_blobs[key].data), (1,2,0))

我无法测试它是否对您有用,并且可能有比循环可用更好的方法。