J'essaie d'apprendre TensorFlow et j'ai implémenté l'exemple MNIST à partir du lien suivant: http://openmachin.es/blog/tensorflow-mnist Je veux pouvoir voir réellement la formation/tester les images. J'essaie donc d'ajouter du code qui montrera la première image du train du premier lot:
x_i = batch_xs[0]
image = tf.reshape(x_i,[28,28])
Maintenant, parce que les données sont de type float32 (avec des valeurs dans la plage [0,1]), j'ai essayé de les convertir en uint16 puis de les encoder en png afin d'afficher l'image. J'ai essayé d'utiliser tf.image.convert_image_dtype and tf.image.encode_png
, mais sans succès. Pouvez-vous m'aider à comprendre comment convertir les données brutes en image et afficher l'image?
Après avoir lu le tutoriel, vous pouvez tout faire en nombre sans avoir besoin de 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")
Vous pouvez également utiliser PIL ou tout autre outil de visualisation dans lequel vous vous trouvez.
X = X.reshape([28, 28]);
plt.gray()
plt.imshow(X)
cela marche.
En plus des codes du didacticiel MNIST pour les débutants ML, vous pouvez visualiser l'image dans le jeu de données 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()
Passez un tableau numpy représentant une image MNIST à la fonction ci-dessous et il affichera une figure en utilisant matplotlib.
def displayMNIST(imageAsArray):
imageAsArray = imageAsArray.reshape(28, 28);
plt.imshow(imageAsArray, cmap='gray')
plt.show()