Не уверен насчет вашей версии tenorflow.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()
, чтобы начать этот сеанс.Это покажет изображение, созданное выше.
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)

Или вы можете запустить динамические вычислительные графики с помощью 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()
По умолчанию в tenorflow2 используются динамические вычислительные графики.Вам не нужно использовать tf.enable_eager_execution()
.