机器学习-什么是keras

Keras

Keras 是一个Python深度学习框架,可以方便地定义和训练几乎所有类型地深度学习模型。Keras最开始是为研究人员开发的,其目的在于快速实验

keras具有以下重要特性:

  1. 相同的代码可以在CPU或GPU上无缝切换运行
  2. 具有用户友好的API,便于快速开发深度学习模型的原型
  3. 内置支持卷积网络(用于计算机视觉)、循环网络(用于序列处理)以及二者的任意组合。
  4. 支持任意网络架构:多输入或多输出模型、层共享、模型共享等。

前端Keras+后端TensorFlow\Theano\CNTK

keras是一个模型级的库,为开发深度学习模型提供了高层次的构建模块。它依赖一个专门的、高度优化的张量库来完成这些运算,这个张量库就是Keras的后端引擎。Keras有三个后端实现:TensorFlow后端、Theano后端和微软认知工具包(CNTK)。这三个不同的后端引擎都可以无缝嵌入到Keras中。

keras结构

通过TensorFlow,Keras可以在CPU和GPU上无缝运行,在CPU上运行时,TensorFlow本身封装了一个低层次的张量运算库,叫做Eigen;在GPU上运行时,TensorFlow封装了一个高度优化的深度学习运算库,叫做NVIDIA CUDA深度卷积神经网络(cuDNN)。

工程相关

目前:2020.7 默认的backend是tensorflow

在python中import keras时会显示目前使用的后端。

Tensorflow 2的keras

随着 TensorFlow 2.0 的发布,不少开发者产生了一些疑惑:作为 Keras 用户,TensorFlow 2.0 的发布跟我有关系吗?TensorFlow 中的 tf.keras 和 Keras 有什么区别?我该用哪一个训练神经网络?在本文中,作者给出的答案是:你应该在以后所有的深度学习项目和实验中都使用 tf.keras