본문 바로가기
카테고리 없음

[딥러닝] Keras 케라스 완전 기초 5편 - Keras 딥러닝 모델 저장하고 웹에서 예측하기! (Flask API로 실전 배포)

by 데이터 AI 벌집 2025. 4. 18.
반응형

[딥러닝] Keras 케라스 완전 기초 5편 - Keras 딥러닝 모델 저장하고 웹에서 예측하기! (Flask API로 실전 배포)

 

지금까지 우리는 딥러닝 모델을 만들고, 학습하고, 성능을 높이는 방법까지 배웠습니다. 이제 이 모델을 저장하고, 웹 서버에서 예측에 활용하는 API로 만들어볼 거예요.


이걸 알면 딥러닝을 서비스에 적용하는 실전력이 생깁니다! 💡

 

🗂️ 1. 모델 저장과 불러오기

# 모델 저장
model.save('my_model.h5')

# 모델 불러오기
from tensorflow.keras.models import load_model
model = load_model('my_model.h5')

 

.h5 파일은 HDF5 포맷으로, Keras 모델을 통째로 저장할 수 있어요 (구조 + 가중치 포함).

 

🌐 2. Flask로 간단한 예측 서버 만들기

# 파일명: app.py
from flask import Flask, request, jsonify
from tensorflow.keras.models import load_model
import numpy as np

app = Flask(__name__)
model = load_model('my_model.h5')  # 학습된 모델 불러오기

@app.route('/predict', methods=['POST'])
def predict():
    data = request.json
    input_data = np.array(data['input']).reshape(1, 784)  # MNIST용
    prediction = model.predict(input_data)
    result = int(np.argmax(prediction))
    return jsonify({'prediction': result})

if __name__ == '__main__':
    app.run(debug=True)

 

📡 3. 예측 요청하기 (Postman이나 Python으로)

# 클라이언트에서 요청 보내기 (예: Python)
import requests

url = 'http://127.0.0.1:5000/predict'
payload = {'input': [0.0] * 784}  # 빈 이미지 예시
response = requests.post(url, json=payload)
print(response.json())

 

단계 설명
모델 저장 model.save()
모델 불러오기 load_model()
예측 서버 구성 Flask로 POST 요청 처리
실시간 예측 /predict 엔드포인트로 요청 보내기

 

4. 실전 배포는 어떻게 하나요?

  • 본 실습은 로컬 서버지만, 이후엔 아래와 같은 방식으로 배포할 수 있어요:
    • Heroku
    • Render
    • AWS EC2 + Nginx
    • FastAPI (속도 중시라면 추천)

이제 여러분은 Keras로 딥러닝 모델을 만들고, 성능을 높이고, 이미지/텍스트까지 분류하고, 마지막엔 API로 실전 예측까지 가능한 실력자가 되셨습니다! 👏👏👏


📚 전체 시리즈 정리

회차 주제
1편 첫 번째 딥러닝 모델 (MNIST)
2편 Dropout, Optimizer 등 튜닝 기법
3편 CNN으로 이미지 분류
4편 RNN과 LSTM으로 감성 분석
5편 모델 저장 및 예측 API 서버 만들기

 

반응형