Keras和TensorFlow——你更钟爱哪一种呢?

我应该用Keras 还是TensorFlow来做我的项目呢?TensorFlow好还是Keras更好?我该把时间花在研究TensorFlow身上吗?还是Keras?

以上都是我常在收件箱、社交媒体、甚至与深层学习的研究人员、实践者和工程师的亲自交谈中听到的问题。

我甚至收到一些与我的书《用Python进行计算机视觉的深度学习》相关的问题,读者问我为什“仅仅”涵盖Keras——关于TensorFlow呢?

真不幸,因为这是一个错误的问题。

截至2017年中期,Keras实际上被完全采纳并融入了TensorFlow。这个TensorFlow+Keras的集成意味着你可以:

  1. 使用Keras的易用接口定义模型
  2. 如果需要(1)特定的TensorFlow功能或(2)需要实现Keras不支持但TensorFlow支持的自定义特性,那么可以下拉到TensorFlow中。

简而言之:

可以将TensorFlow代码直接插入到Keras模型或训练管道序列中!

别误会我的意思。我并不是说,对于某些应用程序,您不需要了解一点TensorFlow——如果您正在执行新颖的研究并且需要定制实现,则尤其如此。我只是说如果在做这些事时:

  1. 刚刚开始学习深度学习
  2. 试图决定为下一个项目使用哪一个库
  3. 想知道Keras或TensorFlow哪个“更好”

就会感觉得到了。

别担心,做就是了。我的建议是使用Keras启动,然后为您需要的任何特定功能下拉到TensorFlow。

在今天的文章中,我将向您展示如何训练(1)使用严格Keras的神经网络和(2)使用直接构建到TensorFlow库中的Keras+TensorFlow集成(带有定制特性)的模型。

要了解更多关于Keras vs. Tensorflow,继续阅读!

Keras和TensorFlow——哪一个更好,我应该学习哪一个?

在今天教程的剩余部分中,我将继续讨论Keras vs.TensorFlow的论点以及它是如何提出错误的问题的。

我们将会实现一个卷积神经网络(CNN),使用标准keras模块和直接刻入到TensorFlow中的tf.keras模块。

我们将在示例数据集上训练这些CNN,然后检查结果——正如您将发现的,Keras和TensorFlow和谐地生活在一起。

也许最重要的是,你会明白为什么Keras vs. TensorFlow的论点不再有意义。

如果你问“Keras vs. TensorFlow”,这本身就不是一个问题

图1:“我应该使用KARAS还是Tensorflow?“

询问是否应该使用Keras还是TensorFlow是错误的问题——事实上,这个问题甚至不再有意义。尽管自从TensorFlow宣布将把Keras集成到官方的TensorFlow发行版已经超过一年了,我仍然惊讶于许多深层学习实践者不知道他们可以通过tf.keras子模块访问Keras。

更重要的是,Keras+TensorFlow集成是无缝的,允许您将原始TensorFlow代码直接放入Keras模型中。

使用TensorFlow中的Keras给你最好的两个世界:

  1. 您可以使用Keras提供的简单、直观的API来创建模型。
  2. Keras API本身类似于Scikit-learn,可以说是机器学习API的“金标准”。
  3. Keras API是模块化的,Python式的,超级简单易用。
  4. 当需要自定义层实现、更复杂的损失函数等时,可以下拉到TensorFlow,并自动将代码与Keras模型集成。

在过去的几年里,深度学习的研究者、实践者和工程师常常不得不选择:

  • 我是否使用易用性,但可能更难定制Keras库?
  • 或者我是否利用了相当困难的TensorFlow API,编写了一个数量级的更多代码,更不用说使用不太容易遵循的API来工作?

幸运的是,我们不再需要选择了。

如果你发现自己处于这样的境地:“我应该用Keras 还是TensorFlow呢?”“退后一步——你问错了问题——你可以同时拥有两个。

结语

给大家送一波福利:人工智能学习资料,有意向的可以加我V,回复:【学习资料】来领取整理好100G的学习资料

猜你喜欢

转载自www.cnblogs.com/t198520/p/10819572.html