pytorch和python有什么区别_TensorFlow与PyTorch之间有何不同?

本文作者之前是 TensorFlow 的用户,最近开始使用 PyTorch。经过一个月的使用之后,他将自己的体验写了出来。文章从安装、使用、文档、社区、工具五个方面对 PyTorch 和 TensorFlow 进行了对比。

我以前是 TensorFlow 的用户,但是加入英伟达之后,我们决定转向 PyTorch(出于测试的目的)。以下是我的一些体验。

安装

PyTorch 的安装轻松直接,可以通过 PIP 或数据源安装。PyTorch 还提供 Docker 镜像,可用作项目的基图像。

PyTorch 没有专门的 CPU 版本和 GPU 版本,这一点与 TensorFlow 不同。但是这使得安装更加便捷,因为同时支持 CPU 和 GPU 的使用,它可以生成更丰富的代码。

需要注意,PyTorch 暂时无法提供官方的 Windows 分发。现在有非官方的 Windows 端口,但是并未得到 PyTorch 的支持。

使用

PyTorch 提供 Python 式的 API。这与 TensorFlow 不同,在 TensorFlow 中你需要先定义所有张量和图,再在会话中使用。

我认为,这将使代码变得更长,但是更简洁易懂。PyTorch 图必须在从 PyTorch nn.Module 类中继承的类中进行定义。图运行时会调用一个 forward() 函数。用这种「约定优于配置」方法,图的位置通常是已知的,且变量不用在后面的代码中进行定义。

这种「新」方法需要一些时间来适应,但是我认为,如果你在深度学习之外的领域中使用过 Python,那么你会发现这种方法非常直观。

根据一些评价,PyTorch 还在大量模型中展示了优于 TensorFlow 的性能。

文档

文档在大多数情况下是完整的。我查找函数或模块的定义时,从未失败过。TensorFlow 文档中所有的函数都在同一页,PyTorch 不同,它每个模块使用一页。如果你习惯了用 TensorFlow 查找函数的话,这可能有点难。

社区

很明显,PyTorch 社区没有 TensorFlow 社区大。但是,很多人喜欢在闲暇时间使用 PyTorch,即使在工作时间仍使用 TensorFlow。我认为如果 PyTorch 脱离 Beta,这种情况可能会有所改变。

当前,精通 PyTorch 的人仍然很少。

这个社区足够大,官方论坛的问题会得到快速回答,这样大量很棒的神经网络的示例实现就会被翻译成 PyTorch。

工具和助手

即使 PyTorch 提供大量的工具,但还缺少一些非常有用的工具。其中之一就是 TensorFlow 的 TensorBoard。这使得可视化稍微有点困难。

PyTorch 还缺少很多常用助手,比起 TensorFlow,这要求 PyTorch 用户更多依靠自己写代码。

结论

PyTorch 是 TensorFlow 的重要替代方案。由于 PyTorch 还在 Beta 中,所以我期待 PyTorch 的易用性、文档和性能都能够有更多改变和改进。

PyTorch 是很 Python 式的,用起来很舒适。它的社区和文档都很优秀,据说它还比 TensorFlow 稍快一点。

但是,PyTorch 社区与 TensorFlow 社区相比较小,且缺少很多有用的工具,如 TensorBoard。

你可能感兴趣的:(pytorch和python有什么区别_TensorFlow与PyTorch之间有何不同?)