์์ฑ์
in"์ ํ๊ตญ์ด ๋ฒ์ญ์ "์"์
๋๋ค.
1. Keras ๋ชจ๋ธ ์ ์ฅ ํฌ๋งท ๋น๊ต
ํฌ๋งท | ์ค๋ช
| ์ฅ์ | ๋จ์ |
---|
.keras | Keras v3 ๊ณต์ ํฌ๋งท (SavedModel + Metadata ํฌํจ) | ์ฌ์ฉ์ ์ ์ ๊ฐ์ฒด ์ง๋ ฌํ, ๊ตฌ์กฐ + ๊ฐ์ค์น + ์ตํฐ๋ง์ด์ ํฌํจ | FastAPI์ฒ๋ผ ๊ฒฝ๋ํ๋ ์๋ฒ์ ์ฐ๋ ์ ๋ฌด๊ฒ๊ณ ๋นํจ์จ์ |
.h5 | HDF5 ๊ธฐ๋ฐ Keras ๋ชจ๋ธ ํฌ๋งท | ๋จ์ผ ํ์ผ ์ ์ฅ, ๋น ๋ฅธ ๋ก๋ฉ | ์ฌ์ฉ์ ์ ์ ๋ ์ด์ด ํฌํจ ๋ถ๊ฐ, ์ตํฐ๋ง์ด์ ์ํ ์ ์ฅ ๋ถ๊ฐ |
SavedModel | TensorFlow์ ํ์ค ๋ชจ๋ธ ์ ์ฅ ํฌ๋งท | TensorFlow Serving๊ณผ ์ฐ๋ ๊ฐ๋ฅ | ํฌ๊ธฐ ํผ, ๋๋ ํ ๋ฆฌ ํํ๋ก ๊ตฌ์ฑ๋จ |
๐ Keras v3์์๋ .keras
๋ฅผ ๊ธฐ๋ณธ ์ ์ฅ ํฌ๋งท์ผ๋ก ์ฌ์ฉํ์ง๋ง, ๋ฐฐํฌ ํ๊ฒฝ(ํนํ FastAPI)์์๋ .h5
๋๋ SavedModel์ด ๋ ์ ํฉํ ์ ์์.
2. PyTorch ๋ชจ๋ธ ์ ์ฅ ํฌ๋งท
ํฌ๋งท | ์ค๋ช
| ์ฅ์ | ๋จ์ |
---|
.pt / .pth | ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ PyTorch ์ ์ฅ ๋ฐฉ์ (pickle ๊ธฐ๋ฐ) | ๋๋ฆฌ ์ฌ์ฉ๋จ, ๊ฐํธํจ | ๋ณด์ ์ด์ (pickle) |
.pt2 | PyTorch 2.7์ ExportedProgram ํฌ๋งท | ์๋ก์ด ๊ทธ๋ํ ๊ธฐ๋ฐ API ๋์ | ๋์
์ด๊ธฐ ๋จ๊ณ |
TorchScript (.pt ) | Python ์๋ ์คํ ์ง์ (C++ ํ๊ฒฝ ๋ฑ) | ๋ฐฐํฌ ์ต์ | ์ ์ฝ ์กด์ฌ (Python ๋์ ๊ธฐ๋ฅ ์ ํ) |
.onnx | ํ๋ ์์ํฌ ๊ฐ ๋ชจ๋ธ ๊ณต์ ํ์ค ํฌ๋งท | ONNX ๋ฐํ์, ๋ค์ํ ํ๋ซํผ ๋์ | ๋ณํ์ด ๋ฒ๊ฑฐ๋ก์ |
.safetensors | Hugging Face ๊ธฐ๋ฐ ์์ ํ ๋ชจ๋ธ ํฌ๋งท | ๋น ๋ฅด๊ณ ์์ (non-pickle) | ์ฌ์ฉ ๋ฒ์ ์ ํ์ |
3. FastAPI ๊ธฐ๋ฐ ์ถ๋ก ์๋ฒ ์ค๊ณ ์ ๊ณ ๋ ค ์ฌํญ
๊ณ ๋ ค ํญ๋ชฉ | ๊ถ์ฅ ๋ฐฉ์ |
---|
๊ฒฝ๋ ์๋ฒ ๊ตฌํ | .h5 , SavedModel , ONNX , TFLite |
๋ชจ๋ธ ๋ก๋ฉ ์๋ | .h5 ๋๋ ONNX |
๋ณด์ ์ด์ ํํผ | .safetensors ๋๋ TorchScript |
์ฌ์ฉ์ ์ ์ ๊ฐ์ฒด ํฌํจ ํ์ | .keras ๋๋ .pt ๋จ, ๊ฐ์ ์ฝ๋๋ฒ ์ด์ค ๋ด์์๋ง ๋ก๋ฉ ๊ฐ๋ฅ |
PyTorch ์๋น | torch.load() ๋๋ torch.jit.load() |
TensorFlow ์๋น | TensorFlow Serving + REST/gRPC |
FastAPI ๋ด ์ถ๋ก ์ฒ๋ฆฌ | ๋ชจ๋ธ๋ง ๋ก๋ฉํ๊ณ , ์
๋ ฅ/์ถ๋ ฅ ์ฒ๋ฆฌ๋ง ๋ด๋นํ๋ ๊ตฌ์กฐ ๊ถ์ฅ |
4. ์ค์ฉ ์ฝ๋ ์์ (FastAPI + Keras .h5
)
from fastapi import FastAPI
from pydantic import BaseModel
import numpy as np
import tensorflow as tf
# ๋ชจ๋ธ ๋ก๋ฉ
model = tf.keras.models.load_model("model.h5")
app = FastAPI()
class InputData(BaseModel):
input: list
@app.post("/predict")
async def predict(data: InputData):
x = np.array([data.input])
prediction = model.predict(x)
return {"prediction": prediction.tolist()}
5. ์์ฝ: ๋ฐฐํฌ ํฌ๋งท ์ ํ ๊ฐ์ด๋
๋ชฉํ | ์ถ์ฒ ํฌ๋งท |
---|
๋น ๋ฅด๊ณ ๊ฐ๋จํ ์ถ๋ก ์๋ฒ ๊ตฌ์ถ (FastAPI ๋ฑ) | .h5 , .pt , TorchScript |
ํ๋ซํผ ๋
๋ฆฝ ์คํ | ONNX , TFLite |
์ฌ์ฉ์ ์ ์ ๋ ์ด์ด ํฌํจ ์ ์ฅ | .keras , .pt |
๋ณด์/์ฑ๋ฅ ์ต์ฐ์ | safetensors , TorchScript |
ํด๋ผ์ฐ๋ ์๋ ์๋น | SavedModel + TensorFlow Serving |
โ
๊ฒฐ๋ก :
.keras
๋ ์คํ/๊ฐ๋ฐ ๋จ๊ณ์์ ๋งค์ฐ ์ ์ฉํ์ง๋ง, FastAPI ๊ธฐ๋ฐ ์ถ๋ก ์๋ฒ์ฒ๋ผ ๊ฒฝ๋/๋ณด์/์๋๊ฐ ์ค์ํ ํ๊ฒฝ์์ ์ ํต์ ์ธ ํฌ๋งท(.h5
, .pt
, ONNX
)์ด ํจ์ฌ ์ ํฉํฉ๋๋ค.
๋ต๊ธ ๋จ๊ธฐ๊ธฐ