TensorFlow与PyTorch之争,哪个框架最适合深度学习(2)
在训练过程的可视化方面,TensorFlow 更有优势。可视化能帮助开发者跟踪训练过程以及实现更方便的调试。TensorFlow 的可视化库名为 TensorBoard。PyTorch 开发者则使用 Visdom,但是 Visdom 提供的功能很简单且有限,所以 TensorBoard 在训练过程可视化方面更好。 TensorBoard 的特性:
在 TensorBoard 中可视化训练 Visdom 的特性:
在 Visdom 中可视化训练 4. 生产部署 在将训练好的模型部署到生产方面,TensorFlow 显然是赢家。我们可以直接使用 TensorFlow serving 在 TensorFlow 中部署模型,这是一种使用了 REST Client API 的框架。 使用 PyTorch 时,在最新的 1.0 稳定版中,生产部署要容易一些,但它没有提供任何用于在网络上直接部署模型的框架。你必须使用 Flask 或 Django 作为后端服务器。所以,如果要考虑性能,TensorFlow serving 可能是更好的选择。 5. 用 PyTorch 和 TensorFlow 定义一个简单的神经网络 我们比较一下如何在 PyTorch 和 TensorFlow 中声明神经网络。 在 PyTorch 中,神经网络是一个类,我们可以使用 torch.nn 软件包导入构建架构所必需的层。所有的层都首先在 __init__() 方法中声明,然后在 forward() 方法中定义输入 x 在网络所有层中的遍历方式。最后,我们声明一个变量模型并将其分配给定义的架构(model = NeuralNet())。 近期 Keras 被合并到了 TensorFlow 库中,这是一个使用 TensorFlow 作为后端的神经网络框架。从那时起,在 TensorFlow 中声明层的句法就与 Keras 的句法类似了。首先,我们声明变量并将其分配给我们将要声明的架构类型,这里的例子是一个 Sequential() 架构。 接下来,我们使用 model.add() 方法以序列方式直接添加层。层的类型可以从 tf.layers 导入,如下代码片段所示: 五、TensorFlow 和 PyTorch 的优缺点 TensorFlow和PyTorch各有其优缺点。 TensorFlow 的优点:
TensorFlow 的缺点:
PyTorch 的优点
PyTorch 的缺点:
六、PyTorch 和 TensorFlow 安装、版本、更新 PyTorch 和 TensorFlow 近期都发布了新版本:PyTorch 1.0(首个稳定版)和 TensorFlow 2.0(beta 测试版)。这两个版本都有重大的更新和新功能,让训练过程更高效、流畅和强大。 如果你要在自己的机器上安装这些框架的最新版,你可以用源代码 build 或通过 pip 安装。 1. PyTorch 安装 macOS 和 Linux
Windows
2. TensorFlow 安装 macOS、Linux 和 Windows
要检查安装是否成功,可使用命令提示符或终端按以下步骤操作。 七、TensorFlow 还是 PyTorch?我的建议 TensorFlow 是一种非常强大和成熟的深度学习库,具有很强的可视化功能和多个用于高级模型开发的选项。它有面向生产部署的选项,并且支持移动平台。另一方面,PyTorch 框架还很年轻,拥有更强的社区动员,而且它对 Python 友好。 我的建议是如果你想更快速地开发和构建 AI 相关产品,TensorFlow 是很好的选择。建议研究型开发者使用 PyTorch,因为它支持快速和动态的训练。 原文链接:https://builtin.com/data-science/pytorch-vs-tensorflow 【本文是51CTO专栏机构“机器之心”的原创译文,微信公众号“机器之心( id: almosthuman2014)”】 戳这里,看该作者更多好文
(编辑:ASP站长网) |