MNIST dataset은 0부터 9까지의 수를 손글씨로 나타낸 이미지 dataset이다.
필기체 숫자의 분류를 위한 학습 데이터 셋으로 이미지와 이미지에 대한 라벨로 구성되어 있다.

이미지는 784(28x28)차원의 벡터이고
라벨은 0~9이다.

예시
mnist = input_data.read_data_sets("MNIST_data")는 MNIST_data 폴더 안에 mnist 파일들이 다운받아지고 다운받진 mnist 파일들을 load 한다는 의미이다.
one_hot=True는 one hot encoding을 해준다는 의미이다.
one hot encoding은 범주형 데이터를 0 또는 1의 데이터로 바꿔주는 과정이다.
만약 label이 1이면 1의 자리만 1이고 나머지 자리는 모두 0으로 나타낸다.
x, y = mnist.train.next_batch(n)
x는 n만큼의 random 한 mnist 이미지 데이터이고 (n, 784 차원 벡터)
y는 n만큼의 random 한 mnist 이미지 데이터의 label이다. (n, 10 차원 벡터)
mnist_image = np.array(x).reshape((28, 28))
(n, 284) 차원의 벡터 x를 이미지 출력을 위해 (n, 28, 28) 차원의 벡터로 reshape해준다.
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data", one_hot=True)
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
x, y = mnist.train.next_batch(1)
mnist_image = np.array(x).reshape((28, 28))
plt.title("label : " + str(np.where(y[0] == 1)[0][0]))
plt.imshow(mnist_image, cmap="gray")
plt.show()
matplotlib을 이용해서 이미지를 확인하면 다음과 같은 결과를 볼 수 있다.

random한 mnist이미지 데이터를 불러오므로 코드를 실행할 때마다 결과는 다르게 나올 것이다.
'🤖AI > 딥러닝' 카테고리의 다른 글
| End-to-end deep learning (0) | 2021.04.13 |
|---|---|
| [딥러닝] train/dev/test sets (0) | 2021.04.13 |
| [딥러닝] 파라미터(Parameter)와 하이퍼 파라미터(Hyper parameter) (0) | 2021.04.12 |
| [딥러닝] [Tensorflow] 모델학습 관련 개념 (0) | 2021.04.12 |
| [부스트코스] [파이토치로 시작하는 딥러닝 기초] Basic ML ~ DNN (0) | 2021.01.26 |