我已经训练好了检测算法并保存了最佳模型。现在我想将我的模型(预训练)转换成C++并在我的应用程序中使用它。我想知道将pyTorch模型转换为C++的可能方法有哪些?
谢谢!
我已经训练好了检测算法并保存了最佳模型。现在我想将我的模型(预训练)转换成C++并在我的应用程序中使用它。我想知道将pyTorch模型转换为C++的可能方法有哪些?
谢谢!
您可以使用 TorchScript
中间表示(PyTorch模型的一种形式),通过追踪和脚本化,在C++环境中运行。为此,您可能需要修改模型本身,以便对其进行追踪或脚本化。
您可以使用ONNX
(Open Neural Network Exchange)通过该框架,您可以导出模型并将其加载到另一个C++框架(如Caffe)中。不过,它也有其自身的影响。
最简单的方法是尝试Embedding Python
,通过该方法,您可以在C++环境中运行您的Python(pytorch)模型。请注意,该模型仍将在Python中运行,但仅通过C++,因此不会有任何您可能期望在C++中获得的速度优势。
此外,随着torchvision 0.5的发布,所有torchvision中的模型均具有对TorchScript和ONNX的本地支持。
model->to(at::kCUDA)
和input.to(at::kCUDA)
。 - kHarshit