TensorFlow - Показать изображение из набора данных MNIST
Я пытаюсь изучить TensorFlow, и я внедрил пример MNIST по следующей ссылке: http://openmachin.es/blog/tensorflow-mnist
Я хочу иметь возможность реально просматривать учебные/тестовые изображения.
Поэтому я пытаюсь добавить код, который покажет первое изображение поезда первой партии:
x_i = batch_xs[0]
image = tf.reshape(x_i,[28,28])
Теперь, поскольку Data имеет тип float32 (со значениями в диапазоне [0,1]), я попытался преобразовать его в uint16 и затем закодировать его в png, чтобы показать изображение.
Я попытался использовать tf.image.convert_image_dtype and tf.image.encode_png
, но без успеха.
Можете ли вы, ребята, помочь мне понять, как я могу преобразовать необработанные данные в изображение и показать изображение?
Ответы
Ответ 1
После прочтения учебника вы можете сделать все это в numpy без необходимости в TF:
import matplotlib.pyplot as plt
first_array=batch_xs[0]
#Not sure you even have to do that if you just want to visualize it
#first_array=255*first_array
#first_array=first_array.astype("uint8")
plt.imshow(first_array)
#Actually displaying the plot if you are not in interactive mode
plt.show()
#Saving plot
plt.savefig("fig.png")
Вы также можете использовать PIL или любой инструмент визуализации, в котором вы находитесь.
Ответ 2
X = X.reshape([28, 28]);
plt.gray()
plt.imshow(X)
это работает.
Ответ 3
В верхней части кодов в учебнике MNIST для начинающих ML вы можете визуализировать изображение в наборе данных mnist:
import matplotlib.pyplot as plt
batch = mnist.train.next_batch(1)
plotData = batch[0]
plotData = plotData.reshape(28, 28)
plt.gray() # use this line if you don't want to see it in color
plt.imshow(plotData)
plt.show()
введите здесь описание изображения
Ответ 4
Передайте числовой массив, представляющий изображение MNIST, в функцию ниже, и он отобразит фигуру, используя matplotlib.
def displayMNIST(imageAsArray):
imageAsArray = imageAsArray.reshape(28, 28);
plt.imshow(imageAsArray, cmap='gray')
plt.show()
Ответ 5
В тензорторе 2.0:
import matplotlib.pyplot as plt
import tensorflow as tf
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
plt.imshow(x_train[0], cmap='gray_r')