首先说明,这种方法不可行,因为pytorch官网下载的Libtorch是基于MSVC编译的,他与minGW64不兼容。
解决方法1:使用VS+Libtorch(首选,网上很多,这里不再赘述具体步骤)
解决方法2:使用VScode+MSVC+Libtorch(强迫症)
Libtorch和Pytorch的关系:
torch是一个用Lua语言编写的科学计算框架,Pytorch和Libtorch都是建立在torch的基础上用C++语言编写的,只不过Pytorch的API为用户提供的接口是基于python语言,Libtorch的API为用户提供的接口是基于C++语言,换句话来说,如果你是一位Python语言的爱好者要编写深度学习代码,那就要下载Pytorch,如果你是C++语言的爱好者要编写深度学习代码,那就要下载Libtorch,但一般来说我们通常使用Pytorch来进行模型的构建、调试和训练等过程,技术成熟后,将其部署到应用端。而在应用端往往使用C++语言,部署的过程说的简单一点就是把训练得到的模型参数(权重和偏置等)应用于实际需求,这也就意味着由Pytorch的模型参数与Libtorch的模型参数是互通可共用的。用专业语言来说,由于python和c++的语言特性,因此用pytorch做模型训练,用libtorch做模型部署。
用libtorch部署pytorch模型,而不是用tensorrt等工具部署模型的优势在于:pytorch和libtorch同属一个生态,API语句比较接近,并且不会出现某网络层不支持的问题。注意Libtorch又分Linux版本和Windows版本,Linux版本是说Libtorch是通过GNU编译的(准确的说,GNU不能叫做一个编译器,GNU是一个自由软件项目,提供了一系列的开发工具和库,其中包括核心组件GCC编译器),Windows版本是说Libtorch是通过MSVC编译的(微软开发的专门用于Windows平台C++开发的编译器)。Pytorch官方网站提供的Libtorch好像就是基于MSVC编译的。