Skip to content

TorchScript 导出与模型部署

模型部署需要将训练好的 PyTorch 模型转换为可在生产环境高效运行的格式。TorchScript 和 ONNX 是两种主流方案。

模型部署

TorchScript 导出

python
# Tracing 模式
model = MyModel().eval()
example_input = torch.randn(1, 3, 224, 224)
scripted = torch.jit.trace(model, example_input)
scripted.save("model.pt")

# Scripting 模式(支持控制流)
scripted = torch.jit.script(model)
scripted.save("model.pt")

# ONNX 导出
torch.onnx.export(
    model, example_input, "model.onnx",
    input_names=["input"], output_names=["output"],
    dynamic_axes={"input": {0: "batch"}, "output": {0: "batch"}}
)

Tracing vs Scripting

Tracing 记录一次前向传播的操作,不支持数据依赖的控制流;Scripting 分析 Python 源码,支持 if/for 等控制流。优先使用 Tracing,控制流复杂时用 Scripting。

相关资源

最近更新