[딥러닝 Express] Chapter 09. 컨벌루션 신경망 [예제: MNIST 필기체 숫자 인식]

배규리·2024년 1월 28일

AI 기초

목록 보기
25/32
post-thumbnail

문제❓

CNN으로 MNIST 필기체 숫자 인식

코드💻

import tensorflow as tf
from tensorflow.keras import datasets, layers, models

(train_images, train_labels), (test_images, test_labels) = datasets.mnist.load_data()
train_images = train_images.reshape((60000, 28, 28, 1))
test_images = test_images.reshape((10000, 28, 28, 1))

# 픽셀값 정규화
train_images = train_images / 255.0
test_images = test_images / 255.0

# 모델 구축
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu',input_shape=(28, 28, 1)))
model.add(layers.MaxPooling2D((2,2))) # Non-Overlapping MaxPooling
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D(2,2)) # Non-Overlapping MaxPooling
model.add(layers.Conv2D(64, (3, 3), activation='relu'))

#평탄화 
model.add(layers.Flatten())
model.add(layers.Dense(64, activation = 'relu'))
model.add(layers.Dense(10, activation = 'softmax'))

# 모델 컴파일
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
model.fit(train_images, 
          train_labels,
          epochs=5,
          validation_data = (test_images, test_labels)
          )
# 모델 요약
model.summary()


정확도가 99%가 넘게 나온다..!
CNN 진짜 대박.. 지금까지 모델들이랑 비교가 안되게 좋은 것같다.
역시 이미지 처리에 주로 사용된다고 하는 이유가 있었다ㅜㅜ 최고!👍

profile
백엔드 개발은 취미인 AI 개발자🥹

0개의 댓글