반응형
지금까지 우리는 딥러닝 모델을 만들고, 학습하고, 성능을 높이는 방법까지 배웠습니다. 이제 이 모델을 저장하고, 웹 서버에서 예측에 활용하는 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 서버 만들기 |
반응형