参考网站 另一个网站:知乎平台
vs2015+windows10
pytorch的C++版本用的是Torch Script,官方给了两种将pytorch模型转成Torch Script的方法。这里主要介绍第一种Tracing。
(1)在Pytorch官网下载所需要的Libtorch版本,有GPU版本和CPU版本,而且有DEBUG和RELEASE区别。 Eg:我所需要的版本是这样的,第一项选择Stable(1.1)就好,第五项(9.0,10.0与None)说的是自己的CUDA版本,请参考我的第一篇博客。 (2)解压到一个新的文件夹。 (3)接下来,和之前配置OpenCV是类似的。新建一个VS项目工程(新建-win32控制台程序),然后添加一个源文件进行使用;视图-其他窗口-属性管理器(这里以Release版本为例) (4)右击Release|x64下的Microsoft.Cpp.x64.user,选择属性,VC++目录,将相应的include和lib加到包含目录和库目录。 (5)在连接器中,加入如下: c10.lib caffe2.lib caffe2_detectron_ops.lib caffe2_module_test_dynamic.lib clog.lib cpuinfo.lib foxi_dummy.lib foxi_loader.lib libprotobuf.lib libprotobuf-lite.lib libprotoc.lib onnx.lib onnx_proto.lib onnxifi_dummy.lib onnxifi_loader.lib torch.lib (6)还有一个地方需要修改:属性->C/C++ ->常规->SDL检查->否。 (7)将最初Libtorch解压缩到的文件中的lib文件夹,将其中所有的.dll文件复制。 (8)在第三步中新建的ConsoleApplication4,在这里选择x64-Release文件夹,将(1)中的复制文件粘贴至此。
(说明:这里训练的网络是resnet18,CIFAR10数据集)
import torch import torchvision # An instance of your model. model = torchvision.models.resnet18()#这里保存的模型是自己训练好的网络模型 # An example input you would normally provide to your model's forward() method. example = torch.rand(1, 3, 224, 224) # Use torch.jit.trace to generate a torch.jit.ScriptModule via tracing. traced_script_module = torch.jit.trace(model, example) traced_script_module.save("model.pt")(2)结果如下