티스토리 뷰
728x90
반응형
딥러닝 모델을 학습시키는 데는 많은 시간과 컴퓨팅 자원이 필요합니다. 따라서 한 번 학습된 모델을 저장하고, 필요할 때 불러와 사용하면 매우 효율적입니다.
이번 글에서는 케라스 모델 저장 및 불러오기 방법, 그리고 모델 서빙(Serving) 및 추론(Inference) 실습을 다뤄보겠습니다.
1. 모델 저장 (Save) 및 불러오기 (Load)
(1) 전체 모델 저장 및 불러오기 (HDF5 형식)
모델 전체(구조 + 가중치 + 옵티마이저 상태)를 단일 파일로 저장할 수 있습니다.
✅ 모델 저장
model.save("my_model.h5")
✅ 모델 불러오기
from tensorflow.keras.models import load_model
loaded_model = load_model("my_model.h5")
🔹 HDF5 파일을 저장하면 다음 정보를 보존할 수 있음
- 모델의 구조 (Sequential 또는 Functional API)
- 모델의 가중치(Weights)
- 모델의 훈련 상태 (Optimizer, Loss 등)
(2) 모델의 가중치만 저장 및 불러오기
- 가중치만 저장하고 싶을 때는 .h5 또는 .weights 파일로 저장 가능합니다.
- 모델의 구조는 저장되지 않으므로, 불러오기 전에 모델을 먼저 생성해야 합니다.
✅ 가중치 저장
model.save_weights("my_weights.h5")
✅ 가중치 불러오기
# 동일한 모델을 먼저 정의해야 함
model.load_weights("my_weights.h5")
(3) TensorFlow SavedModel 포맷으로 저장
- .h5 포맷 대신 TensorFlow SavedModel 형식으로 저장 가능
- TensorFlow Serving 및 다양한 플랫폼에서 사용 가능
✅ 모델 저장
model.save("saved_model/")
✅ 모델 불러오기
loaded_model = load_model("saved_model/")
2. 모델 서빙(Serving) 및 추론(Inference) 실습
저장된 모델을 활용하여 실제 데이터에서 예측(Inference)하는 방법을 실습해보겠습니다.
(1) 새로운 데이터로 예측하기
import numpy as np
# 예제 입력 데이터 (100개 특성)
new_data = np.random.rand(1, 100) # 입력 데이터 1개
# 예측 실행
prediction = loaded_model.predict(new_data)
print("예측 결과:", prediction)
(2) TensorFlow Serving을 활용한 모델 서빙
TensorFlow Serving을 사용하면 API 형태로 모델을 배포할 수 있습니다.
✅ 1) TensorFlow 모델 저장
model.save("serving_model/")
✅ 2) TensorFlow Serving 실행 (터미널에서)
tensorflow_model_server --rest_api_port=8501 --model_base_path="serving_model/"
✅ 3) API 요청을 보내서 예측 수행 (Python 코드)
import requests
import json
import numpy as np
# 예제 입력 데이터
data = {"instances": np.random.rand(1, 100).tolist()}
# REST API 요청
response = requests.post("http://localhost:8501/v1/models/model:predict", json=data)
# 결과 출력
print(response.json())
이제 모델을 API로 배포하여 다른 애플리케이션에서 사용할 수 있습니다.
결론
이번 글에서는 모델 저장 및 재사용 방법을 다루었습니다.
✅ HDF5 또는 SavedModel 포맷으로 저장 및 불러오기
✅ 가중치만 저장하여 재사용하는 방법
✅ TensorFlow Serving을 활용한 모델 배포 및 예측
728x90
반응형
'머신러닝&딥러닝' 카테고리의 다른 글
| PyTorch Compose를 통한 데이터 전처리: 심층 분석 (0) | 2025.05.01 |
|---|---|
| torchvision 완전 정복: PyTorch 비전 프로젝트의 핵심 라이브러리 (0) | 2025.05.01 |
| 모델의 컴파일, 학습 및 평가 (0) | 2025.02.28 |
| Functional API를 활용한 모델 구성 (1) | 2025.02.28 |
| Sequential 모델로 시작하기 (0) | 2025.02.28 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 오블완
- 차트분석
- 퀀트투자
- 토치비전
- 자동매매
- 티스토리챌린지
- chat gpt 모델 별 가격
- 주린이탈출
- 케라스
- 1164회 로또
- chat gpt 한국어 가격
- 로또 ai
- 주식투자
- 재테크
- 장고 orm sql문 비교
- 로또 1164회 당첨
- Numpy
- chat gpt 가격 예상
- 자동매매로직
- 골든크로스
- chat gpt 4o 예산
- 1165회 로또
- 기술적분석
- chat gpt 모델별 예산
- chat gpt 모델 api 가격 예측
- chat gpt api 비용 계산
- 주식공부
- Python
- 클래스형 뷰
- 인공지능 로또 예측
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
글 보관함
250x250