开发 | PyTorch vs. TensorFlow月度使用体验总结

AI科技评论按:日前,英伟达深度学习项目实习生Dominic Monn在medium上发文总结了他使用PyTorch和TensorFlow的一些体会,在文章中,他从安装、使用、文件、社群等方面简单对比了这两种框架。

他曾是TensorFlow用户,加入英伟达后开始使用PyTorch,下面是的他的一些使用体验:

安 装

PyTorch安装起来很容易,也很直接,大家可以通过PIP来安装,也可以直接选择源码安装。PyTorch也提供Docker图,大家可以在项目中把Docker图用作base image。

PyTorch并不像TensorFlow一样已经指定好CPU和GPU,虽然它的这一特征可以让安装更加简单,但如果在项目中想要同时支持GPU和CPU,将会产生更多代码。

使 用

PyTorch提供非常Python化的API接口,这与TensorFlow有很大差别,TensorFlow需要先定义所有的张量和图,然后再执行相应的会话操作。虽然PyTorch的这一特性使得代码变多了,但会更加清晰。

PyTorch图必须定义在从PyTorch nn.Module类继承过来的类中,运行图的时候会调用forward()函数,通过这种“约定优于配置”(convention over configuration)的方式,图的位置一直处于可知状态,也不会在余下的代码中定义变量。

你可能会需要一段时间来适应PyTorch中的这种“新”方法,不过如果你以前在深度学习的研究之外用过Python,这种方法对你来说会很直观。

也有一些人这样评价——与TensorFlow相比,PyTorch在许多模型上都有更加优秀的表现。

文 件

PyTorch的大部分文档都是完整的,我每次都能成功找到函数或模块的定义。TensorFlow所有的函数都在一个页面,而PyTorch不同于TensorFlow,每个模块只用一个页面。如果你要用Google找一个函数,这会有点困难。

社 群

很明显,PyTorch社群不像TensorFlow那么庞大,但很多人都喜欢在业余时间用PyTorch,即使他们工作时使用的是TensorFlow。我认为,一旦PyTorch发布正式版,PyTorch社群会变得更大。在目前,仍然很难找到非常精通PyTorch的人。

不过它的社群也足够大了,如果在官方论坛上提出问题,通常很快就能得到解答。许多优秀神经网络模型也有PyTorch的操作样例了。

工具和辅助功能

虽然PyTorch能提供相当多的工具,但仍然缺少一些非常有用的部分。例如它没有类似于TensorBoard这种非常有用的工具,这会导致很难进行可视化。

此外它也缺失一些常用的辅助功能,比起TensorFlow来说需要我们自己写更多的代码。

总 结

PyTorch是TensorFlow之外一个非常好的选择,虽然 PyTorch仍在测试阶段,我希望在可用性、文件和性能方面它能有更多的改变和进步。PyTorch非常Python化,用起来很容易。它的社群活跃,文件齐全,据称它比TensorFlow更快。然而,它的社群比起TensorFlow来说,仍然只是九牛一毛,并且缺失了诸如 TensorBoard等一些非常有用的工具。

AI科技评论注,除了Dominic Monn近日对这两种框架的对比, 斯坦福大学计算机科学博士生Awni Hannun也曾发文撰写了这两个框架之间的主要差异,详情可以参见:用PyTorch还是TensorFlow?斯坦福大学CS博士生带来全面解答

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-10-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏飞扬的花生

日志帮助类

 1.代码 using System; using System.Collections.Generic; using System.Linq; using S...

1909
来自专栏积累沉淀

Hive2.0.0操作HBase 1.2.1报错解决

首先看错  org.apache.hive.service.cli.HiveSQLException: Failed to open new session: ...

2329
来自专栏c#开发者

C# : row-clickable GridView and get and set gridview rows using JavaScript

Complete C# code: ---------------- using System; using System.ComponentModel; ...

2986
来自专栏菩提树下的杨过

MSDN官方的ASP.Net异步页面的经典示例代码

示例1.演示异步获取一个网址的内容,处理后显示在OutPut这一Label上 using System; using System.Web; using S...

1985
来自专栏听雨堂

想修改CSS

      下载了一个“通用”的CSS文件,本来想偷懒的,结果发现有问题,就是它用的颜色是变量定义的,无法识别。我又找不到在哪里可以定义。 BODY{     ...

20310
来自专栏跟着阿笨一起玩NET

C#巧用Excel模版变成把Table打印出来

转载:http://blog.csdn.net/gwblue/article/details/38865525

1152
来自专栏码匠的流水账

聊聊EurekaRibbonClientConfiguration

spring-cloud-netflix-eureka-client-2.0.0.RELEASE-sources.jar!/org/springframewor...

1161
来自专栏互联网开发者交流社区

WinForm之窗体应用程序

1823
来自专栏码匠的流水账

聊聊spring cloud的AbstractLoadBalancingClient

本文主要研究一下spring cloud的AbstractLoadBalancingClient

832
来自专栏跟着阿笨一起玩NET

[C#]工具类—FTP上传下载

  不错的文章:http://www.cnblogs.com/greatverve/archive/2012/03/03/csharp-ftp.html

1151

扫码关注云+社区