如何将张量视为图像?

新手上路,请多包涵

我用tensorflow学习了一些数据。

为了测试,我看到了最终结果的形状。

它是 (1, 80, 80, 1) 的张量。

我使用 matplotlib 或 PIL 来执行此操作,

想看改成饼状数组后的图像。

但我无法将张量更改为 numpy。

即使我使用 eval(),我也不能因为会话而做任何事情。

无法将张量转换为 numpy。

我可以将张量视为图像吗?

 (mytensor1) # mytensor

arr = np.ndarray(mytensor1)
arr_ = np.squeeze(arr)
plt.imshow(arr_)
plt.show()

但有错误信息:TypeError: expected sequence object with len >= 0 or a single integer

原文由 ONION 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 437
2 个回答

您可以使用 numpy 中的 squeeze 函数。例如

arr = np.ndarray((1,80,80,1))#This is your tensor
arr_ = np.squeeze(arr) # you can give axis attribute if you wanna squeeze in specific dimension
plt.imshow(arr_)
plt.show()

现在,您可以轻松显示此图像(例如上面的代码,假设您使用的是 matplotlib.pyplot as plt )。

原文由 talos1904 发布,翻译遵循 CC BY-SA 4.0 许可协议

对于使用 PyTorch 的人,我知道的最简单的方法是:

 import matplotlib.pyplot as plt

plt.imshow(my_tensor.numpy()[0], cmap='gray')

应该这样做

原文由 J. Krajewski 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题