인공지능

[모두의 딥러닝] lab 07-2. Meet MNIST data set

여니두 2019. 5. 5.

MNIST Dataset

- 손글씨로 쓴 숫자들.

- 미국 우체국에서 우편변호를 쓸 때, 손글씨를 컴퓨터가 자동으로 읽게 하기 위한 데이터셋

 

28x28xI image

- 28x28 = 384개

- 784개의 x_data

- y_data는 예측 = 0~9, 즉 10개 예측. (10개의 출력)

 

- tensorflow에서 만들어둔 mnist library

- mnist.train.next_batch(100) = 100개의 x, y training data가 읽어진다. (한꺼번에 다 메모리에 올릴 필요 없음)

- test set으로 mnist를 평가. (한번도 학습시키지 않은 test set)

- 별도로 one-hot으로 만들지 않아도, mnist를 읽어올 때 one_hot 처리를 할 수 있다.

 

Reading data and set variables 

 

Softmax

- axis: 축

 

Training epoch/batch

- training시킬 data가 많기 때문에 batch로 잘라서 학습시킴

- batch_size = 한 번에 몇 개씩 학습시킬 것인가

 

- 1 epoch = 전체 데이터셋을 한번 다 학습시킨 것

- 1 epoch을 batch size로 잘라서 학습시키는 것이다.

- 굉장히 일반적인 학습 방법 (epoch/batch)

 

Report results on test dataset

- test data를 이용하여 성능 평가

- accuracy 평가 방법

1. session.run()

2. accuracy.eval()

 

결과

- epoch이 커질수록, cost가 줄어듦.

 

Sample image show and prediction

- matplotlib 이용

- random하게 하나의 숫자를 읽어옴

- test할 label의 data(ONE_HOT)를 읽어와 argmax를 통해 label이 무엇인지 출력

- 예측을 하기 위해 images를 던져주고, hypothesis를 argmax를 통해 돌림

 

- 이미지가 맞는지 확인하기 위해, imshow()라는 함수를 이용

댓글