앞의 인공 신경망 구성에 따라 다음처럼 모형을 구성해보자.

    >>> model = tf.keras.models.Sequential([
    >>>     tf.keras.layers.Flatten(input_shape=(28, 28)),
    >>>     tf.keras.layers.Dense(128, activation='relu'),
    >>>     tf.keras.layers.Dropout(0.2),
    >>>     tf.keras.layers.Dense(10, activation='softmax')
    >>> ])

    입력 값인 각 이미지는 가로세로가 모두 28픽셀인데, 이를 한 줄의 데이터로 변환하려면 함수Flatten를 사용해야 한다. 이후 노드 128개를 갖는 은닉층을 추가하여 활성화 함수 ReLU를 적용하였다. 은닉층이 크다 보니 계산과 성능을 개선하기 위해 Dropout을 20% 적용하였다. 마지막으로 결과층의 결괏값 10개는 활성화 함수 softmax를 통해 분류되게 구성하였다.

    이제 위의 내용으로 모형을 구성하기 위해 Adam Optimizer를 적용하고, 손실 함수와 성능 측정 지표를 다음처럼 지정하였다.

    >>> model.compile(optimizer='adam',
    >>>     loss='sparse_categorical_crossentropy',
    >>>     metrics=['accuracy'])
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.