机器学习模型保存
时间: 2025-08-08 13:16:45 浏览: 4
### 如何保存机器学习模型
在 Python 中,保存和加载机器学习模型是一个常见的需求。以下是几种主要的方法以及对应的文件格式。
#### 使用 `pickle` 和 `joblib`
`pickle` 是 Python 的标准库之一,用于序列化对象并将其保存到磁盘上。对于较大的 NumPy 数组或其他复杂数据结构,推荐使用 `joblib`,因为它更高效[^1]。
```python
import pickle
from sklearn.externals import joblib
# 使用 pickle 保存模型
with open('model.pkl', 'wb') as file:
pickle.dump(model, file)
# 使用 joblib 保存模型
joblib.dump(model, 'model.joblib')
```
这两种方式都支持 `.pkl` 或自定义扩展名作为文件格式。
---
#### 手动保存为 JSON 文件
如果希望以可读的方式存储模型参数或元数据,可以考虑将模型转换为 JSON 格式。这种方法适用于简单的线性回归模型或其他具有少量参数的模型[^2]。
```python
import json
# 假设我们有一个字典形式的模型参数
model_params = {
"coefficients": list(model.coef_),
"intercept": model.intercept_
}
# 将模型参数保存为 JSON 文件
with open('model.json', 'w') as file:
json.dump(model_params, file)
```
JSON 文件通常以 `.json` 结尾,便于跨平台共享。
---
#### 各类框架特有的保存方法
不同的机器学习框架提供各自的保存机制和支持的文件格式:
- **scikit-learn**: 推荐使用 `pickle` 或 `joblib`,默认文件格式为 `.pkl`。
- **TensorFlow/Keras**: 支持 HDF5 (`*.h5`) 和 SavedModel (`*/*`) 格式[^3]。
- **PyTorch**: 可通过 `torch.save()` 方法保存整个模型或仅状态字典至 `.pt`/`.pth` 文件。
- **ONNX**: 跨框架通用格式,适合部署环境下的模型交换,常见扩展名为 `.onnx`。
例如,在 PyTorch 中保存模型的状态字典如下所示:
```python
import torch
torch.save(model.state_dict(), 'model.pth')
```
而在 TensorFlow 中保存 Keras 模型则可以通过以下代码实现:
```python
model.save('my_model.h5')
```
---
#### 总结
选择哪种方法取决于具体的需求和技术栈。对于简单场景,`pickle` 和 `joblib` 已经足够;而对于复杂的深度学习项目,则应优先采用对应框架原生的支持工具及其专属格式[^3]。
阅读全文
相关推荐




















