PyTorch 模型转为 C++

9

我已经训练好了检测算法并保存了最佳模型。现在我想将我的模型(预训练)转换成C++并在我的应用程序中使用它。我想知道将pyTorch模型转换为C++的可能方法有哪些?

谢谢!

1个回答

15
  • 您可以使用 TorchScript 中间表示(PyTorch模型的一种形式),通过追踪和脚本化,在C++环境中运行。为此,您可能需要修改模型本身,以便对其进行追踪或脚本化。

  • 您可以使用ONNX(Open Neural Network Exchange)通过该框架,您可以导出模型并将其加载到另一个C++框架(如Caffe)中。不过,它也有其自身的影响。

  • 最简单的方法是尝试Embedding Python,通过该方法,您可以在C++环境中运行您的Python(pytorch)模型。请注意,该模型仍将在Python中运行,但仅通过C++,因此不会有任何您可能期望在C++中获得的速度优势。

此外,随着torchvision 0.5的发布,所有torchvision中的模型均具有对TorchScript和ONNX的本地支持。


谢谢提供信息!您知道在将PyTorch模型转换为C++后,是否有任何使用CUDA与C++的方法吗? - Y0shimitsu
2
是的,torchscript支持CUDA。您可以简单地使用model->to(at::kCUDA)input.to(at::kCUDA) - kHarshit
这个答案现在已经过时了,因为Caffe2和PyTorch在1.0版本中合并了。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接