pytorch与tensorflow部署角度对比

注意,这文章日期是19年5月18号,所以只是个人对当前这两个框架的一点看法。
由于pytorch的动态图特性很py的脚本语言特性结合得比较好,pytorch在algo developer会比较受欢迎,而tf的图需要提前定义和编译(这里只讨论V1,*),易用性要比pytorch差一些,这就是tf 2.0后续要优化的其中一个点。

这里从部署的角度来看一下两者的差异:
在inference deploy的时候,用py部署是最简单的,但是一旦要压榨性能的时候,py就完全不适合了。c++ deploy solution是一定要有的。pytorch c++部署的相关文档少得可怜,目前只有 https://pytorch.org/tutorials/advanced/cpp_export.html 这个页面有提及(不考虑ONNX),而且中间处理步骤多,约束多,对于部署不友好。而且,这里没有移动终端的相关部署文档,对于重客户端的团队,相当不友好。

相比之下,tf 有很完善的部署文档,如服务端serving库,也可以用golang的binding重写一个(这个方案非常棒,笔者重新实现基本功能只需要不到一天),终端(android/ios)的tflite,也有针对移动端剪枝蒸馏的pocketflow库(腾讯开源的一个不错的库,最后还是要导出tflite的)。文档与例程非常丰富,这就使得部署的门槛大大降低。

小结: pytorch虽然简单易用,但是部署比tensorflow要稍微复杂,文档相对没有那么完善。如果是移动终端,tensorflow是优选平台。

你可能感兴趣的:(ML)