Keras vs PyTorch

64 篇文章 9 订阅
43 篇文章 5 订阅

Keras vs PyTorch:debug 和内省

Keras 封装了大量计算模块,这使得确定导致问题的代码较为困难。

相比起来,PyTorch 更加详细,我们可以逐行执行脚本。和 debug NumPy 类似,我们可以轻松访问代码中的所有对象,使用 print 语句(或任何标准 Python debug 语句)查看有问题的代码。

Keras 用户创建的标准网络要比 PyTorch 用户创建的标准网络出错的机率小一个数量级。但是一旦出错,则损害巨大,且通常很难定位出错的代码行。PyTorch 提供更直接了当的 debug 经验,而无需关注模型复杂度。此外,当你怀疑哪里出错时,你可以查找 PyTorch repo 查看可读代码。

结论

  • PyTorch:debug 能力更强

  • Keras:debug 简单网络的需求的(潜在)频率更低

Keras vs PyTorch:导出模型和跨平台可移植性

在生产环境中,导出和部署自己训练的模型时有哪些选择?

PyTorch 将模型保存在 Pickles 中,Pickles 基于 Python,且不可移植,而 Keras 利用 JSON + H5 文件格式这种更安全的方法(尽管在 Keras 中保存自定义层通常更困难)。另一方面,Keras 也有 R 语言接口,如果你合作的数据分析师团队使用 R 语言,那么你会用得上它。

Keras 是在 TensorFlow 上运行的,这意味着它可以通过 TensorFlow for Mobile 和 TensorFlow Lite 享有更多选择来部署到移动平台。你编写的 web 应用也可以通过 TensorFlow.js 或 Keras.js 部署到网页上。例如,你可以看看这个深度学习驱动的浏览器插件,它可以检测密集恐惧症触发因素:https://github.com/cytadela8/trypophobia。

导出 PyTorch 模型的过程由于其 Python 代码的限制而更加费力,目前人们广泛采用的方法是首先使用 ONNX 将 PyTorch 模型转换为 Caffe2 形式。

结论

  • Keras 获胜:它有更多的部署选项(直接通过 TensorFlow 后端),模型导出也更简单。

Keras vs PyTorch:性能篇

Donald Knuth 有一句名言:不成熟的优化是编程中所有邪恶(至少大部分)的根源。

在大多数情况下,基准测试中的速度差异不应该成为框架选择的主要标准——特别是在学习阶段。GPU 时间比其数据科学家的时间显然便宜得多。而且,在学习过程中,性能瓶颈大多是由失败的实现、未优化的网络和数据加载造成的,而不是框架本身的运行速度。当然,为了完整地进行比较,我们还是要介绍这一方面。在这里我们推荐两个性能对比结果:

PyTorch 和 TensorFlow 一样快,在循环神经网络上或许更快,相比之下,Keras 通常速度较慢。正如第一篇文章的作者指出的那样:大多数情况下,高性能框架(即 PyTorch 和 TensorFlow)的计算效率优势不敌快速开发环境以及 Keras 提供的实验易用性。

结论

  • 就训练速度而言,PyTorch 胜过 Keras

Keras vs PyTorch:对比总结

Keras 和 PyTorch 都是深度学习框架初学者非常棒的选择。如果你是数学家、研究员或者想要理解模型的本质,那么可以考虑选择 PyTorch。在需要更先进的定制化和 debug 时(例如用 YOLOv3 做目标检测或者带有注意力的 LSTM),或者当我们需要优化数组表达式而不是神经网络时(例如矩阵分解或者 word2vec 算法),PyTorch 真的很棒。

如果你想要一个即插即用的框架,Keras 无疑是更简单的选择:快速构建、训练、评估模型,不需要在数学实现上花费太多的时间。

深度学习的核心概念知识是可转移的。一旦你掌握了一个环境中的基础知识,你就能学以致用,掌握新的深度学习库。

我们鼓励你在 Keras 和 PyTorch 中都尝试下简单的深度学习模型。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值