web-dev-qa-db-ja.com

matplotlibを使用してMNISTイメージを表示する

テンソルフローを使用して、MNIST入力データをインポートしています。このチュートリアルに従いました... https://www.tensorflow.org/get_started/mnist/beginners

そのようにインポートしています...

from tensorflow.examples.tutorials.mnist import input_data

mnist = input_data.read_data_sets("/tmp/data/", one_hot=True)

トレーニングセットの任意の画像を表示できるようにします。画像の場所はmnist.train.imagesので、最初の画像にアクセスして、次のように表示しようとします...

with tf.Session() as sess:
    #access first image
    first_image = mnist.train.images[0]

    first_image = np.array(first_image, dtype='uint8')
    pixels = first_image.reshape((28, 28))
    plt.imshow(pixels, cmap='gray')

各画像が28 x 28ピクセルであることを知っているので、画像を28 x 28 numpy配列に変換しようとしました。

ただし、コードを実行すると、次のようになります...

enter image description here

明らかに私は何か間違ったことをしている。マトリックスを印刷すると、すべてが見栄えが良いように見えますが、間違って再形成していると思います。

6
Bolboa

フロートの配列( ドキュメントで説明 )をuint8にキャストし、1.0でない場合は0に切り捨てます。それらを丸めるか、フロートとして使用するか、255で乗算する必要があります。

なぜ白い背景が表示されないのかわかりませんが、とにかく明確に定義されたグレースケールを使用することをお勧めします。

3
allo

Matplotlibを使用して画像を表示するための完全なコードを次に示します

first_image = mnist.test.images[0]
first_image = np.array(first_image, dtype='float')
pixels = first_image.reshape((28, 28))
plt.imshow(pixels, cmap='gray')
plt.show()
13
Vinh Trieu

次のコードは、ニューラルネットワークのトレーニングに使用されるMNIST数字データベースから表示される画像の例を示しています。スタックフロー周辺のさまざまなコードを使用し、pilを回避します。

# Tested with Python 3.5.2 with tensorflow and matplotlib installed.
from matplotlib import pyplot as plt
import numpy as np
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets('MNIST_data', one_hot = True)
def gen_image(arr):
    two_d = (np.reshape(arr, (28, 28)) * 255).astype(np.uint8)
    plt.imshow(two_d, interpolation='nearest')
    return plt

# Get a batch of two random images and show in a pop-up window.
batch_xs, batch_ys = mnist.test.next_batch(2)
gen_image(batch_xs[0]).show()
gen_image(batch_xs[1]).show()

Mnistの定義は次のとおりです。 https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/learn/python/learn/datasets/mnist.py

MNINSTイメージを表示する必要に至ったTensorflowニューラルネットワークは、次の場所にあります。 https://github.com/tensorflow/tensorflow/blob/r1.2/tensorflow/examples/tutorials/mnist/mnist_deep py

私はPythonを2時間だけプログラミングしているので、いくつかの新規エラーを作成した可能性があります。修正してください。

10
wheresmypdp10

PIL.Imageでそれをしたい人のために:

import numpy as np
import PIL.Image as pil
from tensorflow.examples.tutorials.mnist import input_data

mnist = input_data.read_data_sets('mnist')

testImage = (np.array(mnist.test.images[0], dtype='float')).reshape(28,28)

img = pil.fromarray(np.uint8(testImage * 255) , 'L')
img.show()
2
WhatAMesh