gpt4 book ai didi

python - 使用 tf.io.decode_jpeg 导入后出现 TypeError : Image data cannot be converted to float with plt. imshow

转载 作者:行者123 更新时间:2023-12-01 01:02:01 27 4
gpt4 key购买 nike

我尝试使用 Tensorflow 加载文件并可视化结果,但出现 TypeError: Image data无法转换为 float

import tensorflow as tf
import matplotlib.pyplot as plt

image = tf.io.read_file('./my-image.jpg')
image = tf.io.decode_jpeg(image, channels=3)
print(image.shape) # (?, ?, 3)
plt.imshow(image)

最佳答案

不确定您的 tensorflow 版本。 TensorFlow 在 1.x 中默认使用静态计算图。您获得的 image 的数据类型是 Tensor,因此会显示此错误。首先创建一个自定义图片。

import numpy as np
from PIL import Image

np.random.seed(0)
image = np.random.random_sample(size=(256,256,3))
im = Image.fromarray(image, 'RGB')
im.save('my-image.jpg')

然后您需要使用tf.Session()来启动此 session 。这将显示上面创建的图像。

import tensorflow as tf
import matplotlib.pyplot as plt

image = tf.io.read_file('my-image.jpg')
image = tf.io.decode_jpeg(image, channels=3)
print(image)

with tf.Session() as sess:
plt.imshow(sess.run(image))
plt.show()

# print
Tensor("DecodeJpeg:0", shape=(?, ?, 3), dtype=uint8)

enter image description here

或者您可以在tensorflow中通过tf.enable_eager_execution()启动动态计算图。使用上面的代码也能达到同样的效果。

import tensorflow as tf
import matplotlib.pyplot as plt

tf.enable_eager_execution()

image = tf.io.read_file('my-image.jpg')
image = tf.io.decode_jpeg(image, channels=3)
plt.imshow(image)
plt.show()

tensorflow2中默认的是动态计算图。您不需要使用tf.enable_eager_execution()

关于python - 使用 tf.io.decode_jpeg 导入后出现 TypeError : Image data cannot be converted to float with plt. imshow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55719915/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com