【问题标题】:How to convert Tensor to Numpy array of same dimension?如何将张量转换为相同维度的 Numpy 数组?
【发布时间】:2019-05-28 10:21:54
【问题描述】:

我正在尝试将形状为 (253,223) 的图像的张量转换为相同大小的 numpy 数组,以便我可以绘制图像。我查看了文档,他们建议我使用 eval 函数作为

sess = tf.Session()
with sess.as_default():
   print(type(tf.constant([img1]).eval()))

但它会抛出错误“预期单个张量时的张量列表”。

这里 type(img1) 是 <class 'tensorflow.python.framework.ops.Tensor'> 并且形状是 (253, 223) 。使用 keras

tf.keras.backend.eval(x)

它抛出

InvalidArgumentError:DecodeRaw 的输入长度为 56419,不是 4 的倍数,float [[{{node DecodeRaw}}]] 的大小错误。

如何将给定的张量转换为相同维度的 numpy 数组?

【问题讨论】:

  • 问题出在x。你是怎么定义的?
  • 当我 print(x) 返回 Tensor("Reshape_12:0", shape=(253, 223), dtype=float32)。
  • 我找到了答案,我没有正确执行 decode_raw,我将它转换为 float32 然后它工作了

标签: python tensorflow numpy-ndarray


【解决方案1】:

Session.run 或 eval 返回的任何张量都是 NumPy 数组。

>>> print(type(tf.Session().run(tf.constant([1,2,3]))))

或者:

>>> sess = tf.InteractiveSession()
    print(type(tf.constant([1,2,3]).eval()))
    <class 'numpy.ndarray'>

【讨论】:

  • 是的,它工作正常,但与上面相同的事情不起作用。它会抛出错误“预期单个张量时的张量列表”。
猜你喜欢
  • 2021-01-08
  • 1970-01-01
  • 2021-10-17
  • 2018-11-28
  • 2019-06-13
  • 2019-03-19
  • 2021-08-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多