经验 | Pytorch还是Tensorflow?英伟达工程师帮你总结了

翻译 | AI科技大本营(rgznai100)

参与 | reason_W

本文作者Dominic Monn,是NVIDIA机器学习工程师。在本文中,作者讲述了自己在深度学习过程中使用PyTorch和TensorFlow的一些实际体会,他从安装、使用、文档、社区和工具五个角度,比较了PyTorch和TensorFlow的优点和不足。

作者此前一直是TensorFlow用户,不过出于工作考虑,加入NVIDIA时,决定改用PyTorch,也就有了对比PyTorch和TensorFlow这篇文章。

PyTorch简单的安装方式、Python化的使用风格,以及比TensorFlow稍快一些的运算速度非常适合工作之外的空闲时间使用。对于想入坑的童鞋来说,这篇文章具有很好的借鉴意义。

安装

PyTorch的安装非常简单。用户可以通过PIP进行安装,也可以从源代码构建。PyTorch还提供了Docker镜像,可以作为您自己的项目的基础镜像。

但是PyTorch没有像TensorFlow那样有专门的CPU和GPU的版本。虽然这样会让安装更容易,但是如果想要同时支持CPU和GPU使用的话,就会需要生成更多代码。

还有一点需要注意的是,PyTorch还没有提供官方的分发渠道。虽然有Windows的非官方端口,但是没有来自PyTorch的支持。

用法

PyTorch提供了一个非常Python化的 API。TensorFlow则需要用户定义所有的Tensors和Graph,然后在会话中运行它。

在我看来,这会带来更多,但也更清洁的代码。 PyTorch图必须在继承自PyTorch nn.Module的类中定义。当运行Graph时,将调用forward() 函数。通过这种“约定配置”的方法,将保证graph的位置总是已知,而不用定义其余代码中的变量。

这种“新”方法需要一些时间才能习惯,但我认为,如果您之前在深度学习之外使用过Python,这会非常简单的。

从一些评论来看,PyTorch与TensorFlow相比,在许多模型上也表现出了更好的性能。

文档

PyTorch文档的大部分已经完成。我在使用过程中,还没有碰到过找不到函数定义或模块的情况。与TensorFlow的所有函数都有一个独立页面不同,PyTorch每个模块仅仅有一页文档。如果你之前一直使用Google风格的编程工具,那么在PyTorch中寻找函数的话,会有点儿困难。

社区

显然,PyTorch的社区并不像TensorFlow那么大。然而,在空闲时间许多人还是喜欢PyTorch,即使在上班时间他们要使用TensorFlow。一旦PyTorch开始完成公测,推出正式版本,我相信Pytorch的社区现状就会改变。而且目前,在PyTorch社区里想发现老司机还有一点难度。

只有社区足够大,官方论坛中的问题才会比较快速的得到一个答案,并且完善很多神经网络示例的PyTorch版本。

工具和助手

尽管PyTorch提供了相当数量的工具,但一些非常有用的工具却十分缺少。尤其是缺少一个像TensorFlow里的TensorBoard那样强有力的工具。这就使得可视化比较困难。

还有一些非常常见的辅助工具也比较缺乏。这需要比TensorFlow更多的自写代码。

结论

如果你想换掉TensorFlow,那么PyTorch绝对是最佳选择。由于PyTorch还处于测试阶段,我希望它可以在可用性,文档和性能等方面有更多的改变和提升。

PyTorch是非常python化的工具,用起来感觉也很舒服。它有一个很好的社区和文档,而且运行起来也被认为比TensorFlow快。

当然,与TensorFlow相比,PyTorch的社区仍然相对较小,并且缺少一些有用的工具,例如像TensorBoard这样的可视化工具。

关于PyTorch和TensorFlow,你有什么使用心得,欢迎在评论区分享你的经验。

原文发布于微信公众号 - AI科技大本营(rgznai100)

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏量子位

小米开源移动端深度学习框架MACE,自主研发,专为IoT设备优化

1765
来自专栏嵌入式程序猿

安全实验,且行且注意

对于嵌入式工程师来说,经常要做实验,接触电学,被电过的工程师应该不在少数,曾经跟几个同事聊天,谈到这个问题,都反映被电过,有的被220V电...

3727
来自专栏量子位

Facebook开源问答系统DrQA:基于单一信源回答开放域提问

问耕 编译整理 量子位 出品 | 公众号 QbitAI 今天一大早,Yann LeCun就转发了一条消息:Facebook开源了DrQA的代码。 DrQA是一个...

3817
来自专栏AI研习社

微软 Ignite2017 大会探秘,Azure 机器学习三大工具正式发布

日前,微软 Ignite2017 大会正在美国佛罗里达州奥兰多举行,除了正式推出量子计算编程语言,对 Azure 云平台进行功能更新等,基于目前各大对手企业纷纷...

3577
来自专栏量子位

游戏大咖Unity发布机器学习工具,可大幅提高NPC的“智商”

安妮 编译整理 量子位 出品 | 公众号 QbitAI ? 欢迎来到游戏世界。 没听过Unity没关系,你肯定对王者荣耀、纪念碑谷、神庙逃亡2、Pokémon ...

4106
来自专栏CVer

免费资源 | TensorFlow 新工具Seedbank:即用的预训练模型库

本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载

1524
来自专栏Data Analysis & Viz

[资源]《动手学深度学习》by Amazon AI:李沐

上回介绍了下Github上的Awesome Deep Learning项目:包含深度学习的免费在线书籍、课程、视频及讲义、论文、教程、网站、数据集、框架和其他资...

4052
来自专栏闻道于事

瀑布模型,冯.诺依曼结构——摘自百科

瀑布模型是一个软件开发架构,于1970年被温斯顿·罗伊斯(Winston Royce)提出。其核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,...

4209
来自专栏机器之心

资源 | TensorFlow推出新工具Seedbank:即刻使用的预训练模型库

发现并开始新的机器学习项目有点艰难。也许你有一个关于项目的模糊想法,正在寻找从何处入手。或者你正在寻找灵感,看看有哪些可能。

1301
来自专栏新智元

另一种开源:OpenAI 介绍深度学习基础设施

【新智元导读】OpenAI 昨天在博客发文,结合实例,介绍了 OpenAI 进行深度学习研究时采用的基础设施配置,并且提供了相关开源代码。文章激起了很多反响,其...

4215

扫码关注云+社区

领取腾讯云代金券