TensorFlow+Keras 03 TensorFlow 与 Keras 介绍

1 TensorFlow 架构图

1.1 处理器前端

TensorFlow 能够在CPU、GPU、TPU中执行程序员

1.2 平台后端

TensorFlow 具有跨平台能力,Windows 、Linux、Android、IOS、Raspberry Pi、云端执行设计模式

1.3 分布式执行引擎网络

TensorFlow Distributed Execution Engine 分布式执行引擎架构

在深度学习中,最花时间的就是模型的训练,尤为大型的深度学习模型必须使用大量数据进行训练,须要数天乃至数周之久,TensorFlow 具有分布式计算能力,可同时在数百台机器上执行训练模型,大幅度缩短模型训练的时间。机器学习

1.4 前端程序语言分布式

TensorFlow 可使用多种前端程序语言,如Python、C++等,但Python的支持效果最好。模块化

1.5 高级API学习

TensorFlow 是比较低级的深度学习 API,因此用程序设计模型时必须自行设计,张量乘积、卷积等底层操做,此好处时咱们可自行设计各类深度学习模型,缺点是开发时须要编写更多的程序代码。

网上开发社区以 TensorFlow 为底层开发不少高级的深度学习 API ,如 Keras、TF-Learn、TF-Slim、TF-Layer 等,其中 Keras 的功能

2 TensorFlow 简介

顾名思义,TensorFlow是由Tensor 和 Flow 组成的。

2.1 Tensor(张量)

在数学里,张量是一种几何实体或广义上的 “ 数量 ” ,在此 “ 数量 ” 包含 “ 标量、向量或矩阵 “ 。

  • 零维的张量是标量

           如 0.1

  • 一维的张量的向量

           如 [ 0.1  0.2  0.3 ]

  • 二维以上的张量是矩阵

          如 [ [ 0.1 0.2 0.3 ]

                 [ 0.4 0.5 0.6 ] ]

2.2 Flow(数据流)

全部的 TensorFlow 程序都是先创建 ” 计算图 “ (computational graph),这是张量运算和数据处理的流程。

咱们可以使用 TensorFlow 提供的模块以不一样的程序设计语言创建 ” 计算图 " 。TensorFlow 提供的模块很是强大,咱们能够设计张量运算流程,并构建深度学习或机器学习模型。

创建 “ 计算图 ” 完成后,咱们就能够在不一样的平台上执行 “ 计算图 ” 。

3 TensorFlow 程序设计模式

TensorFlow 程序设计模式的核心是 “ 计算图 ” ,可分为创建计算图和执行计算图两部分。

3.1 创建计算图

使用 TensorFlow 提供的模块创建计算图,设计张量运算流程,并构建各类深度学习或机器学习模型

3.2 执行计算图

创建计算图后,咱们就可创建 Session 来执行计算图了。

在 TensorFlow 中, Session(愿意为会话)的做用是在客户端和执行设备间创建链接。有了该链接,就能够将计算图在各类不一样设备中执行,后续任何与设备之间的数据传输都必须经过 Session 来进行,而且最后得到执行后的结果。

4 Keras 介绍

Keras 是一个开源码的高级深度学习程序库,使用 Python 编写,可以在 TensorFlow 或 Theano 之上。

4.1 为什么使用 Keras

相对 TensorFlow 低级连接库而言,Keras 使用最少的程序代码、花费最小的时间就可创建深度学习模型,进行训练、评估准确率、并进行预测。

4.2 Keras 的工做方式

Keras 是一个模型级(model-level)的深度学习连接库,Keras只处理模型的创建、训练、预测等功能。

深度学习底层的运行,如张量的运算,Keras 必须配合 “ 后端引擎 " (backend engine)进行运算;目前 Keras 提供了 TensorFlow 和 Theano 两种后端引擎。

简而言之, Keras 程序员只须要专一于创建模型,底层操做细节(以张量运算为例)则由 Keras 转化为 Theano 或 TensorFlow 相应指令。

4.3 Keras 深度学习连接库特点

1 - 简单快速地创建原型prototyping : Keras 具有友好的用户界面、模块化设计、可扩充性

2 - 已经内建各类类神经网络层级,如卷积层 CNN、RNN,此可帮助咱们快速创建神经网络模型。

3 - 经过后端引擎 Theano 与 TensorFlow,可在 CPU 与 GPU 上运行。

4 - 以Keras 开发的程序代码更简洁,可读性更高、更容易维护、更具备生产力。

5 - Keras的文件多、范例多、浅显易懂。

5 Keras 程序设计模式

实质上是利用 Keras 创建多层感知器(Multilayer Perceptron)。输入层 - 隐藏层 - 输出层;具体过程以下:

5.1 创建 Sequential 模型

Sequential 模型是多个神经网络的线性堆叠。

model = Sequential()

5.2 向模型中添加 ” 输入层 “ 与 ” 隐藏层  "

keras 已经内建各类神经网络层(如 Dense层、Conv2d层等),只要在以前创建的模型上加入咱们选择的神经网络层便可。

model.add(Dense(units=256,
                input_dim=784,
                kernel_initializer='normal',
                activation='relu'))

5.3 向模型中添加 ” 输出层 “

model.add(Dense( units=10,
                 kernel_intializer='normal',
                 actiation='softmax'))

以上基本就完成了多层感知器模型的创建。

6 Keras 与 TensorFlow 比较

相关文章
相关标签/搜索