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 的功能
顾名思义,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 提供的模块很是强大,咱们能够设计张量运算流程,并构建深度学习或机器学习模型。
创建 “ 计算图 ” 完成后,咱们就能够在不一样的平台上执行 “ 计算图 ” 。
TensorFlow 程序设计模式的核心是 “ 计算图 ” ,可分为创建计算图和执行计算图两部分。
3.1 创建计算图
使用 TensorFlow 提供的模块创建计算图,设计张量运算流程,并构建各类深度学习或机器学习模型
3.2 执行计算图
创建计算图后,咱们就可创建 Session 来执行计算图了。
在 TensorFlow 中, Session(愿意为会话)的做用是在客户端和执行设备间创建链接。有了该链接,就能够将计算图在各类不一样设备中执行,后续任何与设备之间的数据传输都必须经过 Session 来进行,而且最后得到执行后的结果。
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的文件多、范例多、浅显易懂。
实质上是利用 Keras 创建多层感知器(Multilayer Perceptron)。输入层 - 隐藏层 - 输出层;具体过程以下:
Sequential 模型是多个神经网络的线性堆叠。
model = Sequential()
keras 已经内建各类神经网络层(如 Dense层、Conv2d层等),只要在以前创建的模型上加入咱们选择的神经网络层便可。
model.add(Dense(units=256, input_dim=784, kernel_initializer='normal', activation='relu'))
model.add(Dense( units=10, kernel_intializer='normal', actiation='softmax'))
以上基本就完成了多层感知器模型的创建。
略