Gidhub BE Developer

ConvNet을 TensorFlow로 구현하자 (MNIST 99%)

2018-02-22
goodGid

Source


ConvNet을 TensorFlow로 구현하자 (MNIST 99%)

CNN을 다른 형태의 그림으로 표현해보자.


Conv를 정의하는 방법:

tf.nn.conv2d(X,w, …)

여기서 X는 이미지

w는 (사진을 보면)위에서 정의한 Weight


strids = [a,b,c,d]는

a와 d는 1로 Fix시킨다.

b는 옆으로 몇칸씩 움직일 것인가

c는 아래로 몇칸씩 움직일 것인가

padding=’SAME’으로 지정해주면

원래 이미지와 같은 크기로 Activation Map을 만들어준다.


ReLU 정의하기


Pooling layer (sampling)

각각 하나의 레이어에 대해서

max pooling과 같은 방식으로

pooling을 하고

다시 조립 !


ksize는 필터처럼

어떤 사이즈로 읽은 것인가를 지정


Shape not sure ? Print Tensor

ReLU나 Max Pooling을 했을 때

결과값을 알고 싶을 때

손으로 하는게 아니라

컴퓨터로 출력을 해보면 된다.


Dropout


Fully connected net

reshape를 해줘서

보기 좋게 펴준다.

(= [[[][][]][][][][] ]이런 구조를 [[][][][]] 이렇게 해준다는 뜻 )

그리고 사진속 마지막 코드

pyx가 최종적인 값이다.


Other TF Optimizers

여러가지 최적화 시켜주는 Method를 알아보자.


Train and testing

이젠 실행시켜보자 !


Comments

Content