Keras 和 TensorFlow 是什么
已发表: 2019-04-05如果您一直密切关注技术领域(或者甚至是远程关注),那么您一定听说过“深度学习”这个词。 这是一个被广泛讨论的术语——而且是正确的。
深度学习通过帮助我们构建过去梦寐以求的机器和系统,彻底改变了人工智能。 本质上,深度学习是机器学习的一个子领域,它使用深度人工神经网络(此时,如果您对神经网络是什么感到困惑,请查看我们的文章)来解决以下问题机器学习。
梦想出国留学? 这是适合您的程序深度神经网络只是一个神经网络,其中有许多层相互堆叠——层数越多,网络越深。 对深度学习的日益增长的需求以及因此对深度神经网络的训练产生了许多专用于深度学习的库和框架。
在这篇博文中,我们将讨论两个这样的深度学习框架。 在这篇博文结束时,您将对什么是 Keras、什么是 TensorFlow、两者有何不同以及两者在哪些方面相似?
但在此之前,我们应该简要讨论这两者,以便您了解自己的目的。 Tensorflow 是深度学习模型开发中使用最多的库。 TensorFlow 的社区非常庞大和支持,特别是因为它是一个开源平台。 TensorFlow 的 GitHub 仓库上的 commit 和 fork 的数量足以让你了解框架的广泛流行。 但是,使用它并不容易。
另一方面,Keras 是构建在 TensorFlow 之上的高级 API。 它非常用户友好,并且比 TensorFlow 相对容易。

阅读以上部分可能会提出几个问题:
- 如果 Keras 是建立在 TF 之上的,那两者有什么区别呢?
- 如果 Keras 对用户更友好,我为什么要使用 TF 来构建深度学习模型?
通过本文,让我们带您了解这两个框架的复杂性并帮助您回答问题。
在本文中,我们将讨论众多库和框架中的两个——TensorFlow 和 Keras。
目录
什么是 TensorFlow?
TensorFlow 是 Google 送给参与机器学习的开发人员的礼物。 它使追求的人们可以使用深度学习的力量。 Google 有一个初学者和一个高级教程,它同时向您介绍 ML 和 TF 以解决多特征问题 - 字符识别。 此外,如果您想深入了解它的更多技术方面,我们建议您查看我们的课程!
TensorFlow 是一个开源库,可在 GitHub 上找到。 在处理深度神经网络时,它是最著名的库之一。 TensorFlow 受欢迎的主要原因是使用 TensorFlow 构建和部署应用程序非常容易。 GitHub 存储库中提供的示例项目不仅功能强大,而且以适合初学者的方式编写。
那么,TensorFlow 是用来做什么的呢?
TensorFlow 擅长数值计算,这对深度学习至关重要。 它提供深度学习项目所需的大多数主要语言和环境的 API:Python、C、C++、Rust、Haskell、Go、Java、Android、IoS、Mac OS、Windows、Linux 和 Raspberry Pi。
此外,TensorFlow 的创建考虑到了处理能力的限制。 这意味着,我们可以在各种计算机上运行这个库,而不管它们的处理能力如何。 它甚至可以在智能手机上运行(是的,即使是你拿着的那个被咬过的苹果价格过高的东西)。
5 2018 年自然语言处理在企业中的应用
TensorFlow 目前处于 v1.3 版本,可在当今使用的几乎所有主要平台上运行,从移动设备到台式机、嵌入式设备、专用工作站,再到云上或本地的分布式服务器集群。 这种普遍性、开放性和大型社区已将 TensorFlow 推向企业,以解决现实世界的应用程序,例如分析图像、生成数据、自然语言处理、智能聊天机器人、机器人技术等。
有趣的是,大量编码人员正在使用 TensorFlow 来实现语言翻译,甚至在其他病例中对皮肤癌进行早期检测。 它真正改变了开发人员与机器学习技术交互的方式。
TensorFlow应用程序
在深度学习方面,TensorFlow 比它的竞争对手——Caffe、Theano、Torch 和其他知名框架获得了更多的动力。 TensorFlow 广泛用于语音识别、谷歌翻译等基于文本的应用程序、图像识别和视频检测。
有趣的是, NASA 正在使用 TensorFlow 和深度学习开发近地天体预测模型。 据 NASA 的人员称,TensorFlow 可以帮助设计一个多层模型,该模型将能够识别和分类 NEO 的潜力。 世界上一些最大的数据公司都在使用 TensorFlow,例如 Airbnb、Airbus、Dropbox、Snapchat 和 Uber。
TensorFlow 的一些主要应用包括:
- Tensorflow 已在使用 TensorFlow 的自动图像字幕软件DeepDream中成功实施。
- Google 的RankBrain由 TensorFlow 支持,每分钟处理大量查询,有效地取代了传统的基于静态算法的搜索。
- 如果你用过 Allo 应用,你一定见过一个类似于 Google 收件箱的功能——你可以从几个自定义选项中回复最后一条消息。 这一切都归功于使用 TensorFlow 进行机器学习。 另一个功能分析发送给您的图像,以建议相关的响应。
什么是 Keras?
Keras 是一个构建在 Theano 或 TensorFlow 之上的高级库。 它提供了一个用于构建神经网络的 scikit-learn 类型 API(用 Python 编写)。 开发人员可以使用 Keras 快速构建神经网络,而无需担心张量代数、数值技术和优化方法的数学方面。

Keras 开发背后的关键思想是通过快速原型设计来促进实验。 以尽可能少的延迟从一个想法到结果的能力是良好研究的关键。
这为科学家和初学者开发人员提供了一个巨大的优势,因为他们可以直接进入深度学习,而不会因低级计算而沾沾自喜。 对深度学习需求的增加导致对深度学习技术人员的需求增加。
每个组织都在尝试以一种或另一种方式整合深度学习,Keras 提供了一个非常易于使用且足够直观以理解 API 的 API,它基本上可以帮助您以最少的努力测试和构建深度学习应用程序。 这很好,因为深度学习研究现在是一个热门话题,科学家们需要一种工具来尝试他们的想法,而不会浪费时间来构建神经网络模型。
Keras 的显着特点
- Keras 是一个高级接口,其后端使用 Theano 或 Tensorflow。
- 它可以在 CPU 和 GPU 上流畅运行。
- Keras 支持神经网络的几乎所有模型——全连接、卷积、池化、循环、嵌入等。此外,这些模型可以组合起来构建更复杂的模型。
- Keras 本质上是模块化的,具有令人难以置信的表现力、灵活性和创新性研究能力。
- Keras 是一个完全基于 Python 的框架,易于调试和探索。
Keras vs TensorFlow:他们如何比较?
Keras 是一个用 Python 编写的神经网络库,本质上是高级别的——这使得它使用起来非常简单和直观。 它作为 TensorFlow 或 Theano 高级神经网络库等低级库的包装器,用 Python 编写,作为TensorFlow 或 Theano的包装器。 从这个意义上说,比较没有多大意义,因为 Keras 本身使用 TensorFlow 作为后端。
但是,如果我们必须,我们必须。
Keras 非常易于理解和实现——使用 Keras 就像处理乐高积木一样。 它旨在帮助开发人员在全面实施之前执行快速测试、POC 和实验。 Keras 允许您在后端使用 TensorFlow——无需学习它。
Keras 的开发目标是允许人们编写自己的脚本,而无需详细了解后端。 毕竟,大多数用户不会在意脚本的性能和算法的细节。

然而,当涉及到机器学习应用程序时,一种尺寸并不适合所有应用程序——Keras 和 TensorFlow 之间的适当区别在于,如果您需要对模型进行低级更改,Keras 将无法工作。 为此,您需要 TensorFlow。 虽然很难理解,但一旦掌握了语法,您将立即构建模型。
所以,就像所有事情一样,这一切都归结为您手头的要求。 如果你想摆弄深度神经网络或者只是想构建一个原型——Keras 就是你的选择。 但是,如果您喜欢深入研究并控制低级功能,则应该花一些时间探索 TensorFlow。
情绪分析:它是什么以及为什么重要?
包起来…
随着深度学习控制一切,世界正在迅速走向自动化。 不可否认的事实是,在未来的日子里,深度神经网络的使用只会增长,随之而来的是对技术人才的需求也会增长。 因此,如果您认为深度学习是您的使命,请尽快从探索 Keras 或 TensorFlow 开始!
通过 IIIT-B 和利物浦约翰摩尔斯大学的机器学习和人工智能高级课程提升您的职业生涯。
张量流是做什么用的?
这个问题的答案是 TensorFlow 可以承担机器学习的任何任务。 从手写识别到击败围棋世界冠军,Tensorflow 被广泛使用。 Tensorflow 还用于为企业应用程序创建强大的自定义机器学习模型。 例如,我们正在使用 TensorFlow 构建视频监控中的人脸检测应用程序。 TensorFlow 是一种用于构建数值计算图并有效运行计算的工具。
什么是 keras?
Keras 是 Theano 和 TensorFlow 的开源神经网络库。 用 python 编写,它允许您在几行代码中定义复杂的神经网络。 它可以在 TensorFlow 或 Theano 之上运行,并且专注于实现快速实验。 Keras 是一个高级神经网络 API,用 Python 编写,能够在 TensorFlow、CNTK 或 Theano 之上运行。 它的开发重点是实现快速实验。 能够以尽可能少的延迟将想法转化为结果是做好研究的关键。
Keras 是否依赖于 TensorFlow?
不,Keras 是用于构建和训练神经网络模型的高级 API。 Keras 不依赖于 TensorFlow,反之亦然。 Keras 可以使用 TensorFlow 作为其后端。 它还可以使用其他后端,例如 Theano 和 CNTK。 将每个深度学习库都包含到 TensorFlow 中是没有意义的,因为其中一些具有不同的设计和语法。 此外,其中一些比 TensorFlow 快得多,因此尝试将它们全部包含在一个框架中会适得其反。 同样,TensorFlow 也不依赖于 Keras。 Keras 代码库很小且可重用。 它只依赖于 numpy 和其他一些标准库。