一、模型打包
1.1 模型打包的目的
将Pytorch中的模型打包成能够使用其他语言进行调用的模型
1.2 模型打包的时候注意的问题
1、如果模型中有dropout或者batchnormal的话,一定要先将模型设置为eval模式,再保存,否则在用libtorch调用后会出现随机干扰;
2、example这个张量的尺寸务必与你自己的模型的输入尺寸一直,否则会出现错误。
3、如果代码中有if条件控制,尽量避免使用torch.jit.trace来转换代码,因为它不能处理变化条件,如果非要用trace的话,可以把if条件控制改成别的形式;
4、jit不能转换第三方Python库中的函数,尽量所有代码都使用pytorch实现,如果速度不理想的话,可以参考github上的pytorch/extension-script项目,用C++实现需要的功能,然后注册成jit操作,最后转成torchscript。
二、代码
文件目录
2.1 nets.py
import torch
import torch