最近因为项目需求,而且面对的是一些用户级的,也就是windows客户端,所以就在思考在windows下如何调用深度学习模型,做了以下尝试:
-
使用Caffe框架,虽然也可以,但我的大部分项目都使用的Pytorch,真的不想去碰Caffe,而且修改不能按照自己的思想,pass!
-
使用ONNX,当时由于Pytorch1.0并没有发布windows版,我们想着把Pytorch模型转换为ONNX,然后使用Caffe2的相关库去调用,但发现其使用了docker,实际还是在linux下操作的。
-
终于等到了Pytorch1.0的windows版的libtorch,开心,但是官方教程不是太详细,就自己摸索,看看论坛什么的,最终成功了!
准备工作
VS2017(官方说VS2015也支持,没有测试)
Windows10
Cmake3.0以上(我的是3.13.2)
生成Torch Script
由于C++和Python读取的文件方式不同,所以在使用C++调用之间先把训练生成的模型文件转换成Torch Script,这样子就可以使用C++进行调用了!话不多说,我们开始吧!
以ResNet18为例,官方给了两种生成Torch Script的方式。
方法一:(本篇使用)