[모두의 딥러닝] MNIST data
📗강의노트/모두의 딥러닝

[모두의 딥러닝] MNIST data

728x90
반응형

Sung Kim 님의 "모두의 딥러닝" 강의노트입니다

좋은 강의 감사드립니다!

https://www.youtube.com/watch?v=mQGwjrStQgg&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=5


예전에 미국의 우체국에서 우편번호를 읽기위해 학습한 데이터이다. 실제 손글씨

28 x 28 x I image이다. 
Shape = 28 * 28    이다.

Y의 경우는 0~9까지의 숫자 class = 10인 데이터가 된다. 여기서 one-hot-encoding을 사용한다. 


100개의 x와 y의 training data를 노출시킴


training의 epoch 와 batch로 잘라서 학습

한 번에 몇개씩 학습 시킬 건지를 = batch size   100이면 100개씩 학습 

Epoch => 전체 데이터 셋을 한 번 다 학습시키는 것은 1 epoch이라고 함 


데이터가 1000개일 때 batch size가 500이면 2만큼의 iteration하면 1 epoch 가 되는 것임  


먼저 데이터를 읽어온다.  One-hot을 사용하고, tensor들을 만들어준다

그 후 softmax를 이용하여 hypothesis를 세운다.

tf.equal을 통해 대조해보고 이를 통해 accuracy를 확인한다.


Sess.run()  대신에 어떤 텐서 뒤에 .eval을 붙이는 것과 같은 의미를 같는다.

루프가 총 2번 돌아감 
총 15번 크게 돌겠다는 것이고 
한 번에 100개씩 학습하겠다는 것이다.
Total_batch는 총 갯수에서 설정한 batch로 나누어 i를 정한다 
몇번 iteration해야 1 epoch이 되는지! 따라서 total_batch만큼 돌면 1 epoch이 되는 것 

Mnist.train.next_batch(batch_size) -> 100개씩 읽어와서 학습한다 
그리고 각각의 100개를 feed_dict를 통해 던져준다 

안의 for문이 다 돌면 1 epoch가 되는 것  그리고 그 다음 밖의 for문으로 가서 epoch으로 가게 되는 것 

실제 숫자를 보기 위함 

random하게 1개를 읽어옴 
test할 label 한 개르 읽어오고  argmax를 통해 label이 무엇인지 파악한다 .
예측은 hypothesis를 실행시키고 그에 맞는 이미지를 하나 던져주고 argmax하면 Prediction한 값이 나오게 된다. 




728x90
반응형