딥러닝의 대표적인 응용 분야 중 하나는 이미지 분류입니다. 이번 글에서는 TensorFlow와 Keras를 사용하여 간단한 이미지 분류 모델을 구현하는 과정을 소개합니다. 입문자도 쉽게 따라할 수 있도록 단계별로 설명드리겠습니다.
1. 준비하기
필요한 라이브러리를 설치합니다.
pip install tensorflow matplotlib
2. 데이터 불러오기: MNIST 데이터셋 사용
TensorFlow는 손글씨 숫자 이미지 데이터셋인 MNIST를 기본으로 제공합니다. 총 7만 개의 흑백 이미지(0~9 숫자)로 구성되어 있습니다.
import tensorflow as tf
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten
from tensorflow.keras.utils import to_categorical
# 데이터 불러오기
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# 정규화 및 원-핫 인코딩
x_train = x_train / 255.0
x_test = x_test / 255.0
y_train = to_categorical(y_train)
y_test = to_categorical(y_test)
3. 모델 구성 및 학습
model = Sequential([
Flatten(input_shape=(28, 28)),
Dense(128, activation='relu'),
Dense(10, activation='softmax')
])
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5, batch_size=32, validation_split=0.2)
4. 모델 평가 및 예측
loss, acc = model.evaluate(x_test, y_test)
print("테스트 정확도:", acc)
5. 결과 해석 및 활용
- 5 에폭만 학습해도 약 97% 이상의 정확도를 얻을 수 있습니다.
- 간단한 구조지만 이미지 분류의 핵심 흐름을 익히기에 적절합니다.
- 향후 CNN(합성곱 신경망)으로 확장 가능
마무리
이 글에서는 TensorFlow를 사용하여 이미지 분류 모델을 처음부터 끝까지 실습해 보았습니다. MNIST는 딥러닝 입문자에게 매우 적합한 데이터셋으로, 이 구조를 기반으로 다른 이미지 데이터로 실험을 확장해 볼 수 있습니다.
함께 보면 좋은 글
2025.03.24 - [분류 전체보기] - 파이썬으로 데이터 전처리 기초 배우기 – 입문자를 위한 실습 가이드