PyTorch的前身是Torch,其底层和Torch框架一样,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch。它是一个基于Python的可续计算包,提供两个高级功能:1、具有强大的GPU加速的张量计算(如NumPy)。2、包含自动求导系统的深度神经网络。

PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。PyTorch既可以看作加入了GPU支持的numpy,同时也可以看成一个拥有自动求导功能的强大的深度神经网络。除了Facebook外,它已经被Twitter、CMU和Salesforce等机构采用。
支持语言 tensorflow:支持C++ 和 python 编程 pytorch:支持python编程
支持硬件 tensorflow:CPU、 GPU、 移动设备 pytorch:CPU 、GPU
灵活性 tensorflow:静态计算图,数据参数在CPU与GPU之间迁移麻烦,调试麻烦 pytorch:动态计算图,数据参数在CPU与GPU之间迁移十分灵活,调试简便
tensorflow的静态图与pytorch动态图代码风格对比如下:

学习难易 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居多,比如腾讯,2018年3月底,Caffe2并入PyTorch。 因此对于新手入门学习深度学习首推:pytorch。