pytorch作为一个深度学习框架,可以用来训练深度学习模型,但是在做实际部署的时候,通常用c++部署比较合理。用c++部署pytorch模型,方法很多,比如TensorRT、OpenVino、Libtorch等等。Libtorch和pytorch同宗同源,衔接起来bug较少。
用libtorch部署pytorch模型,而不是用tensorrt等工具部署模型的优势在于:pytorch和libtorch同属一个生态,API语句比较接近,并且不会出现某网络层不支持的问题。
Note that LibTorch is only available for C++.
本文讲解Libtorch教程的第一篇:Libtorch的下载与介绍
1. 下载libtorch
Libtorch的下载链接点这里
下载Libtorch时,最好考虑和pytorch版本进行匹配,比如你的模型来自pytorch1.10,那你下载Libtorch1.10最合适。
注意:最新版本的pytorch和libtorch(1.11.0)已经不支持windows系统下的CUDA10.2,如下图所示。解决方法:windows下使用CUDA11.3,或者不使用最新版本的pytorch和libtorch,1.10版本是支持windows下的pytorch的。老版本的libtorch下载请参考这篇博客。
2. Libtorch文件介绍
libtorch解压后如下图所示:
最核心的是include和lib这两个文件夹。其实,不管是libtorch,还是别的tensorrt、openvino等模型部署工具,其本质都是给用户提供include和lib去使用。