隨著深度學習模型的發展,越來越多的開發者透過 GitHub 與 Hugging Face 分享模型權重,以便其他人可以下載並加以應用。但不同的深度學習框架有各自的儲存格式與資料夾結構,因此了解這些規範能幫助我們更快速找到所需的模型。
1. 常見的深度學習權重檔案格式
不同的深度學習框架使用不同的檔案格式來儲存模型的權重,以下是最常見的副檔名:
副檔名 |
用途 |
對應框架 |
.bin |
PyTorch 模型權重 (Hugging Face) |
PyTorch |
.pth / .pt |
PyTorch 權重 (state_dict 或完整模型) |
PyTorch |
.safetensors |
更安全的 PyTorch 權重存儲格式 |
PyTorch, Hugging Face |
.pb |
TensorFlow Frozen Graph |
TensorFlow |
.ckpt |
TensorFlow 或 PyTorch 的 Checkpoint |
TensorFlow, PyTorch |
.h5 |
Keras/TensorFlow 權重 |
TensorFlow, Keras |
.tflite |
TensorFlow Lite 模型 |
TensorFlow Lite |
.msgpack |
Chainer 權重存儲格式 |
Chainer |
.npz |
JAX 或 NumPy 存儲格式 |
JAX, NumPy |
.onnx |
ONNX 格式,方便跨框架使用 |
ONNX |
當下載 Hugging Face 或 GitHub 上的模型時,可以根據這些副檔名來判斷模型的格式並選擇合適的框架來載入。
2. 深度學習模型權重的儲存目錄
不同的框架與專案通常會將模型權重存放在特定的目錄中,以下是最常見的結構與對應的儲存位置:
(1) Hugging Face (transformers
, diffusers
, sentence-transformers
等)
Hugging Face 的模型通常儲存在 model
相關的資料夾下,例如:
/model
├── config.json
├── pytorch_model.bin # PyTorch 權重
├── model.safetensors # SafeTensors 權重
├── tf_model.h5 # TensorFlow 權重
├── tokenizer.json
├── special_tokens_map.json
有些大型模型(如 LLaMA)會有多個拆分的 .bin
權重檔案:
/model
├── pytorch_model-00001-of-00003.bin
├── pytorch_model-00002-of-00003.bin
├── pytorch_model-00003-of-00003.bin
├── tokenizer.json
├── config.json
📌 相關目錄: /model/
, /weights/
, /checkpoints/
, /snapshots/
(2) PyTorch(GitHub 上常見的專案結構)
PyTorch 模型的權重通常儲存在 weights
或 checkpoints
目錄:
/project_root
├── models/
│ ├── model.py
│ ├── __init__.py
├── weights/
│ ├── best_model.pth
│ ├── last_checkpoint.pth
├── checkpoints/
│ ├── epoch_10.pth
│ ├── epoch_20.pth
📌 相關目錄: /weights/
, /checkpoints/
, /models/
, /logs/
(3) TensorFlow/Keras
TensorFlow 和 Keras 的權重通常儲存在 checkpoints
或 saved_model
目錄:
/project_root
├── checkpoints/
│ ├── model.ckpt.index
│ ├── model.ckpt.data-00000-of-00001
│ ├── checkpoint
├── saved_model/
│ ├── assets/
│ ├── variables/
│ ├── saved_model.pb
📌 相關目錄: /checkpoints/
, /saved_model/
, /logs/
(4) ONNX(跨框架模型)
ONNX 模型通常存放在 onnx_models
或 exported_models
目錄:
/project_root
├── onnx_models/
│ ├── model.onnx
├── exported_models/
│ ├── model.onnx
📌 相關目錄: /onnx_models/
, /exported_models/
(5) 擴散模型(Stable Diffusion, ControlNet)
擴散模型通常使用 .safetensors
或 .ckpt
格式,並存放在 models
目錄中:
/stable-diffusion
├── models/
│ ├── stable-diffusion-v1-4.ckpt
│ ├── stable-diffusion-v2.safetensors
├── configs/
│ ├── v1-inference.yaml
📌 相關目錄: /models/
, /diffusion_models/
總結
框架/類型 |
常見儲存目錄 |
Hugging Face |
/model/, /weights/, /checkpoints/, /snapshots/ |
PyTorch |
/weights/, /checkpoints/, /models/, /logs/ |
TensorFlow |
/checkpoints/, /saved_model/, /logs/ |
ONNX |
/onnx_models/, /exported_models/ |
擴散模型 |
/models/, /diffusion_models/ |