В вашем сценарии train_images
не содержат фактических данных, а являются просто тензорами-заполнителями:
train_images[1]
<tf.Tensor 'strided_slice_2:0' shape=(28, 28) dtype=float32>
Самое простое решение - включить активное выполнение вверху вашего сценария:
tf.enable_eager_execution()
Это означает, что во время выполнения тензоры будут фактически содержать данные, которые вы пытаетесь построить:
train_images[1]
<tf.Tensor: id=95, shape=(28, 28), dtype=float32, numpy=
array([[-0.4250042 , -0.4250042 , -0.4250042 , -0.4250042 , -0.4250042 ,
-0.4250042 , -0.4250042 , -0.4250042 , -0.4250042 , -0.4250042 ,
-0.4250042 , -0.4250042 , -0.4250042 , -0.4250042 , -0.4250042 ,
-0.4250042 , -0.4250042 , -0.4250042 , -0.4250042 , -0.4250042 ,
-0.4250042 , -0.4250042 , -0.4250042 , -0.4250042 , -0.4250042 ,
-0.4250042 , -0.4250042 , -0.4250042 ], # etc
, которые должны решить вашу ошибку.Вы можете прочитать больше о нетерпеливом исполнении на веб-сайте TF .
Кроме того, вы также можете создать график, фактически оценив тензор изображения в сеансе:
with tf.Session() as sess:
img = sess.run(train_images[1])
plt.figure()
plt.imshow(img)
plt.colorbar()
plt.grid(False)
plt.show()