MNIST 99% 도전 강좌를 정리한다.
Simple CNN Tensorflow 코딩
Convolution Layer 2개와 Fully-conntect Layer를 코딩한다.
Conv layer 1 만들기
- 784 개 값을 가진다. None 은 n개 이미지
- reshape 28x28x1로 만듦
- X image가 입력
- filter 3x3x1 로 하고, 32개 filter를 만듦
- filter의 stride 1 로 한다.
- L1 출력은 input image사이즈가 동일하게 나옴 (padding SAME)
- relu 통과 시킨후 max_pooling한다. 2 stride 여서 최종결과는 14x14x32 로 나옴
Conv layer 2 만들기
- 14x14x32 최종결과를 입력으로 사용한다.
- 64 개 filter를 사용한다. 1 stride 사용
- relu 사용하고 max_pool통과 한다. 2 stride 이므로 size는 7x7x64가 된다.
- Fully conntected 넣기 전에 reshape 한다. 최종 3136 개가 된다.
Fully Connected (FC, Dense) Layer 만들기
- hypothesis를 만든다.
학습(Learning) 시키고 테스트하기
- 에폭(epoch) 단위로 학습
- cost, optimizer를 수행
- 0, 1을 true, false로 나누어 계산
- 정확도: 0.9885
더 많은 Conv Layers
Conv layer 3개 FC 2개를 사용한다.
- 정확도: 0.9938 로 높아진다.
- dropout은 학습시 0.5~0.7 로 테스트시에는 1로 해야 한다.
참조
'Deep Learning > NN by Sung Kim' 카테고리의 다른 글
[RNN] Recurrent Neural Network 개념 (0) | 2018.07.11 |
---|---|
[CNN] Class, tf.layers, Ensemble (0) | 2018.07.11 |
[CNN] Tensorflow CNN 기본 (0) | 2018.07.11 |
[CNN] Convolution Neural Network (0) | 2018.07.10 |
[Neural Network] Softmax에 NN 적용하는 순서 팁 (0) | 2018.07.09 |