본문 바로가기
Artificial Intelligence/60. Python

[PYTHON] Keras 완벽 가이드 : 파이썬에서 딥러닝 쉽게 시작하기

by Papa Martino V 2025. 7. 20.
728x90

파이썬에서 딥러닝 쉽게 시작하기
[PYTHON] Keras

 

Keras는 직관적이고 간결한 파이썬 딥러닝 고수준 API로, TensorFlow 내부에서 동작하며 빠른 프로토타이핑과 모델 구축이 가능합니다. 초보자부터 전문가까지 다양한 수준의 개발자가 선호하는 딥러닝 도구입니다.


1. Keras란?

Keras는 직관적인 API와 모듈 구조를 갖춘 딥러닝 프레임워크입니다. TensorFlow의 high‑level API로 채택되며, 신경망 계층 정의, 훈련, 평가, 예측까지 간편하게 제공합니다.

특징 설명
사용 편의성 모델 구성, 컴파일, 실행까지 코드 몇 줄
유연성 Sequential과 Functional API 지원
백엔드 TensorFlow, Theano, CNTK 연동
커뮤니티 공식 문서, 튜토리얼, 예제 풍부

2. 환경 준비 및 설치

pip install tensorflow  # tf.keras 포함됨
pip install pandas numpy matplotlib

개발 환경: Jupyter Notebook, VS Code, Google Colab 등에서 실행 가능


3. 간단한 MNIST 숫자 분류 모델

import tensorflow as tf
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Dense, Flatten

model = Sequential([
  Flatten(input_shape=(28, 28)),
  Dense(128, activation='relu'),
  Dense(10, activation='softmax')
])

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

# 학습 예시
# model.fit(x_train, y_train, epochs=5)

4. Functional API로 유연한 모델 구성

from tensorflow.keras import Model, Input
from tensorflow.keras.layers import Dense

inputs = Input(shape=(784,))
x = Dense(64, activation='relu')(inputs)
outputs = Dense(10, activation='softmax')(x)

model = Model(inputs, outputs)
model.compile(optimizer='sgd', loss='categorical_crossentropy', metrics=['accuracy'])

5. 주요 API 비교

항목 Sequential Functional
사용 난이도 매우 쉬움 중간
유연성 단순 모델에 적합 복잡한 모델 설계 가능
재사용성 제한적 모듈화와 공유 가능

6. 콜백 & 모델 저장

학습 중 중단, 자동 저장, 학습률 제어 등에 유용한 기능입니다.

from tensorflow.keras.callbacks import EarlyStopping, ModelCheckpoint

callbacks = [
  EarlyStopping(patience=3, monitor='val_loss'),
  ModelCheckpoint('best_model.h5', save_best_only=True)
]

# model.fit(..., callbacks=callbacks)

7. 전이 학습 예제

사전 학습된 모델을 활용하여 효율적으로 뛰어난 성능의 이미지 분류기를 구축할 수 있습니다.

from tensorflow.keras.applications import VGG16

base = VGG16(weights='imagenet', include_top=False, input_shape=(224,224,3))
x = tf.keras.layers.Flatten()(base.output)
x = Dense(256, activation='relu')(x)
out = Dense(10, activation='softmax')(x)

model = Model(inputs=base.input, outputs=out)
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

8. 배포 및 시각화

  • 모델 저장: model.save()
  • TensorBoard: 시각화 사용 가능
  • TFLite: 경량 모델로 모바일/IoT 배포

9. 프로젝트 구성 예시

project/
┣ data/
┃ ┗ train.csv
┣ notebooks/
┃ ┗ train.ipynb
┣ src/
┃ ┣ model.py
┃ ┗ utils.py
┣ saved_models/
┃ ┗ best_model.h5
┗ requirements.txt

10. 마무리

Keras는 딥러닝 모델을 쉽고 빠르게 구축하고 실험해볼 수 있는 강력한 도구입니다. 오늘 소개한 예제로 시작해 다양한 문제에 도전하고, 딥러닝 역량을 키워보세요!

728x90