tensorflow和pytorch框架对比总结

支持语言

tensorflow:支持C++ 和 python 编程
pytorch:支持python编程

支持硬件

tensorflow:CPU、 GPU、 移动设备
pytorch:CPU 、GPU

灵活性

tensorflow:静态计算图,数据参数在CPU与GPU之间迁移麻烦,调试麻烦
pytorch:动态计算图,数据参数在CPU与GPU之间迁移十分灵活,调试简便

学习难易

tensorflow:社区庞大,bug基本能找到解决办法。学习难度中等,使用一般,新手容易掉坑。官网发布的文档详细。
pytorch:社区正在扩大,部分bug查不到解决方案。学习难度低,使用简单,新手入门容易。官网发布的文档正在扩充。

计算速度

同等条件下:
tensorflow 在CPU上运行速度比 pytorch 快
tensorflow 在GPU上运行速度和 pytorch 差不多

依赖库

tensorflow:支持更多库函数,比如图像数据预处理方式会更多
pytorch:正在扩充,未来和tensorflow应该差别不大

数据加载

tensorflow:API设计庞大,使用有技巧,但有时候不能直接把数据加载进TensorFlow
pytorch:API整体设计粗糙,但加载数据的API设计很友好。加载数据的接口由一个数据集、一个取样器和一个数据加载器构成。

设备管理

tensorflow:不需要手动调整,简单
pytorch:需要明确启用的设备
关于这点,凭个人喜好,我比较喜欢手动启用CUDA_VISIBLE_DEVICES,我个人对内存、显存的管理较严

两种深度学习框架选择

tensorflow:新手,自学能力强的,入门推荐
pytorch:新手,改bug能力强的,入门推荐
两者都不是的新手,入门推荐 caffe,目前企业用caffe居多,比如腾讯
建议:深度学习几大框架都用一遍,这样不同项目就知道该用哪种框架

你可能感兴趣的:(经验)