在 CentOS 上导出 PyTorch 模型,和你用的操作系统关系不大,主要取决于模型类型和导出目标格式。下面按常见场景给你总结一下。
适用于:模型保存后再用 PyTorch 加载
import torch
torch.save(model, "model.pth")
加载:
model = torch.load("model.pth")
torch.save(model.state_dict(), "model.pth")
加载:
model = MyModel()
model.load_state_dict(torch.load("model.pth"))
model.eval()
适用于:C++ 推理、生产环境
model.eval()
example_input = torch.randn(1, 3, 224, 224)
traced_script_module = torch.jit.trace(model, example_input)
traced_script_module.save("model.pt")
scripted_module = torch.jit.script(model)
scripted_module.save("model.pt")
加载(C++ / Python):
model = torch.jit.load("model.pt")
适用于:TensorRT / OpenVINO / OpenCV / 推理服务器
model.eval()
dummy_input = torch.randn(1, 3, 224, 224)
torch.onnx.export(
model,
dummy_input,
"model.onnx",
input_names=["input"],
output_names=["output"],
dynamic_axes={"input": {0: "batch_size"}},
opset_version=13
)
验证是否导出成功:
pip install onnx
python -c "import onnx; onnx.load('model.onnx')"
TorchScript / ONNX 推理可能报错
解决:
gcc --version
# 建议 gcc >= 7
完全没问题,PyTorch 导出不需要显示器
pip install torch onnx
| 场景 | 推荐方式 |
|---|---|
| 继续用 Python | state_dict |
| C++ 推理 | TorchScript |
| 跨平台推理 | ONNX |
| 部署到服务器 | TorchScript / ONNX |
如果你能告诉我:
我可以给你更精确的代码模板。