Page 966 - 3-3
P. 966

activation=tf.nn.relu(conv1)
                    # 컨볼루션을 한 conv1      변수에 ReLU     활성함수를 적용
                    pool1=tf.nn.max_pool(activation,ksize=[1,2,2,1],strides=[1,2,2,1],padding='SAME')
                    #tf.nn.pool 을 이용해서 14*14*4     사이즈로 바뀜
                    kernel2=tf.Variable(tf.truncated_normal(shape=[4,4,4,8],stddev=0.1))
                    #4*4*4 의 필터를 8    장 사용하기 위해서 정규분포로 초기화
                    bias2=tf.Variable(tf.truncated_normal(shape=[8],stddev=0.1))
                    #14*14*4 크기로 바뀐 이미지와 kernel2         를 conv  한 후 사이즈 만큼 더해주기위한 변수
                    conv2=tf.nn.conv2d(pool1,kernel2,strides=[1,1,1,1],padding='SAME')
                    #14*14*4  사이즈로 바뀐 이미지에 kerenl1          을 컨볼루션곱을 한다
                    activation2=tf.nn.relu(conv2)
                    # 컨볼루션을 한 conv2      변수에 ReLU     활성함수를 적용
                    pool2=tf.nn.max_pool(activation2,ksize=[1,2,2,1],strides=[1,2,2,1],padding='SAME')
                    #tf.nn.pool 을 이용해서 7*7*8     사이즈로 바뀜


                    w1=tf.Variable(tf.truncated_normal(shape=[8*7*7,plateCount]))
                    #8*7*7 * plateCount 크기의 변수 생성
                    b1=tf.Variable(tf.truncated_normal(shape=[plateCount]))
                    # 출력 사이즈만큼 크기를 잡음
                    pool2_flat=tf.reshape(pool2,[-1,8*7*7])
                    #CNN Layer  를 2 번에 걸쳐 7*7*8     사이즈의 크기를 1       차로 펼친다
                    outPutLayer=tf.matmul(pool2_flat,w1)+b1
                    #pool2_flat 와 w1 를 내적하고 b1     을 더한다


                    loss=tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits
                    (labels=y_label,logits=outPutLayer))
                    # 로그와 레이블간의 softmax         교차 엔트로피를 계산한 값의 평균값을 낸다
                    train_step=tf.train.AdamOptimizer(0.005).minimize(loss)
                    #0.005 의 step 으로 최소값을 구함


                    init=tf.global_variables_initializer()
                    # 초기화 하는 함수 저장


                    sess=tf.Session()
                    #Session 을 sess 에 저장
                    sess.run(init)
                    # 초기화


            saver=tf.train.Saver()
            # 모델을 저장하는 함수 호출


            while True:
            # 무한 반복
                    ret,frame=cap.read()


                                                         - 966 -
   961   962   963   964   965   966   967   968   969   970   971