在做深度学习项目的时候遇到一个问题,Boss不想把模型的代码的给甲方,让我直接提供模型或是将源码封装好。Tensorflow中好像有对应功能,但是在Pytorch中我知道的官方指定的保存模型只有两种办法:
(1)保存模型参数
这要求在使用时需要重建一个模型
(2)保存模型
需要提供类的定义
这两种都达不到Boss的要求,查阅了知乎,有人说使用torchscript,尝试了一下,没有成功(可能因为太菜了)。
后来尝试着使用pyc文件进行调用模型,可以做到不提供py文件。具体流程如下:
(1)将所有__pycache__目录里的pyc文件修改名字,如encoder.cpython-36.pyc修改为encoder.pyc
(2)将修改后的pyc文件全部粘贴到当前目录中,即__pycache__同级目录
(3)将py文件删除
我在尝试的时候直接使用__pycache__同级目录的pyc,会出现“no module named xxx”,采用上述办法时,就解决了这个问题,可以向老师交差了!