이번에는 합성곱 네트워크를 이용한 모델을 생성합니다.
코드 5-10 합성곱 네트워크를 이용한 모델 생성
model_with_conv = tf.keras.Sequential([
tf.keras.layers.Conv2D(32, (3,3), padding='same', activation='relu',
input_shape=(28,28,1)), ------ ①
tf.keras.layers.MaxPooling2D((2,2), strides=2), ------ ②
tf.keras.layers.Conv2D(64, (3,3), padding='same', activation='relu'),
tf.keras.layers.MaxPooling2D((2,2), strides=2),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax') ------ ③
])
model_with_conv.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
신경망은 Conv와 MaxPooling의 쌍으로 구성됩니다.
① 첫 번째 층은 입력 이미지에 적용되는 합성곱층으로 필터는 (3,3)이며, 패딩을 사용하여 원래 이미지 크기를 유지합니다.