앞의 인공 신경망 구성에 따라 다음처럼 모형을 구성해보자.
>>> 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'])