应该选择TensorFlow还是Theano?

有使用两个库的用户比较一下这两者。 比如从编译速度,运行速度,易用性等角度进行比较。
关注者
1,962
被浏览
239,830
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

更新一下,现在PyTorch已经public了,推荐有兴趣的同学可以看看PyTorch,非常现代而且轻量级的框架。如果python不是你生产环境当中的瓶颈的话,个人会选择pytorch而不是TF或者Theano。

原答案:

这两个之间推荐使用TensorFlow,因为都是基于Python的符号运算库,TensorFlow显然支持更好,Google也比高校有更多的人力投入。Theano的主要开发者现在都在Google,可以想见将来的工程资源上也会更偏向于TF一些。

Theano的一个优势在于代码是在计算时生成并编译的,所以理论上可以达到更高的速度(不需要运行时的polymorphism,而且如果写得好的话可以fuse kernel),但是因为是学术实现,没有花大精力在优化上面,所以实际速度并不占优势。另外现在大家都高度依赖于第三方库比如说cudnn,所以比较速度已经是上个时代的事情了,不必太在意。

另外吐槽一下,TensorFlow的分布式计算不是最快的,单机使用CPU作reduction,多机用基于socket的RPC而不是更快的RDMA,主要的原因是TF现有框架的抽象对于跨设备的通讯不是很友好(最近开始有一些重新设计的倾向,待考)。

在分布式上百度美研的解决方案要好得多,虽然没有开源,但是Bryan Cantazaro很愿意分享技术细节,混NVidia machine learning summit的大家应该都知道百度在高性能分布式深度学习上的造诣的确很深,作为竞争对手也必须要赞一下。另外,我没有拿百度的钱,求不黑。