当训练好一个CNN模型之后,可能要集成到项目工程中,或者移植到到不同的开发平台(比如Android, IOS), 一般项目工程或者App大多数采用C/C++, Java等语言,但是采用pytroch训练的模型用的是python语言,这样就存在一个问题,如何使用C/C++调用预训练好的模型, 如果解决了这个问题,那么训练好的模型才可以在App中得到广泛应用。
PyTorch模型从Python到C++的转换由Torch Script实现。Torch Script是PyTorch模型的一种表示,可由Torch Script编译器理解,编译和序列化。
1、将pytorch模型转换为Torch Script
将PyTorch模型转换为Torch Script有两种方法。
第一种方法是Tracing。该方法通过将样本输入到模型中一次来对该过程进行评估从而捕获模型结构,并记录该样本在模型中的flow。该方法适用于模型中很少使用控制flow的模型。
第二个方法就是向模型添加显式注释(Annotation),通知Torch Script编译器它可以直接解析和编译模型代码,受Torch Script语言强加的约束。
2、windows平台安装pytorch
windows平台的pytorch库为libtorch。
1)在pytorch官网下载libtroch, 官网提供了win/linux/Mac系统编译好的库,省去了编译库的过程。
官方网址:https://pytorch.org/
按照下列方式选择:【仅做推断,选择非CUDA版本即可】