[服务开发团队,Hyun-Jun Han]
介绍
Tensorflow 和 PyTorch 是最流行的机器学习库。开发 AI 服务的开发人员或研究模型的研究人员在开始时常常面临选择图书馆的困难。此外,随着库版本的升级,有很多变化,所以我们想提供一个选择库的指南。
谷歌 – Tensorflow
Tensorflow 由 Google Brain 团队创建,用于研究和产品开发,兼容语言包括 C++、Python、JavaScript 和 Swift。在 1.x 和 2.x 版本之后,已经发布了稳定版本 2.4。 1.x 和 2.x 版本的区别在于几乎不需要使用 Session,声明最小化和 Keras 被内化了。此外,还通过功能化提高了速度。还有许多其他更改,包括 Tensorflow-Lite - 移动/嵌入支持、TensorflowJS - 浏览器、Node.js 支持等。但是,这种更改导致必须更改已经使用它的用户的代码的不便。当然,它支持转换模块,但也有bug,所以很多用户离开了。
脸书 – PyTorch
PyTorch 是 Facebook AI Research Lab 为研究目的开发的库。兼容语言包括C++和Python。一开始,社区规模较小,但发展迅速,在会议论文中超过了 Tensorflow。许多研究领域的用户转向 PyTorch 的原因是它可以使用动态图。这是因为它有利于 RNN、CNN 和 GAN 研究,因为可以通过动态图实时替换数据来比较数据。此外,我认为代码已经显着增加,因为与 Tensorflow 相比难度相对容易。
Tensorflow VS PyTorch
这是人工智能领域各个会议的论文图表。可以看出,PyTorch 的论文用实线表示的趋势高于用虚线表示的 Tensorflow。我认为 PyTorch 在研究会议论文方面更具优势。
张量流 | 火炬 | |
Github 存储库 | 108k | 68k |
可视化 | 张量板 | 维多姆 张量板 [1.2 Pytorch] |
图定义 | 静态图, 动态图 [tensorflow 2.0] | 动态图 |
调试 | tfdbg | Python 标准调试器 |
模型部署 | Tensorflow 服务 | 火炬服务 |
移动支持 | 哦 | 哦 |
从功能上比较每个库时,它们似乎随着版本的增加而越来越相同。起初,两个库之间存在许多差异,但随着时间的推移,差异显着缩小,因为它们具有更多彼此的优点。
尽管如此,这两个库的局限性仍然存在。 Tensorflow 构建动态图还是比较困难的,调试也需要训练。 PyTorch目前开源很少,难以支持其他环境,难以部署,最重要的是难以满足行业所需的各种约束。考虑到这一点,如果您在清楚了解重点是用于研究目的还是提供产品和服务之后继续进行项目,将有助于选择图书馆。
结论
Tensorflow - 用于产品构建目的。浏览器、Node.js、嵌入式、移动环境支持。易于部署。自然语言处理等
Pytorch - 用于研究目的。熟悉 Python 的环境。难度相对较低。 RNN、CNN、GAN 等。
Tensorflow 和 Pytorch 都是强大的机器学习库。如果您根据自己的目的选择图书馆,我认为会进行更有成效的研究/开发。
参考
https://towardsdatascience.com/pytorch-vs-tensorflow-2021-d403504d7bc3
https://builtin.com/data-science/pytorch-vs-tensorflow
https://www.imaginarycloud.com/blog/pytorch-vs-tensorflow/