说明:本文实例使用Python版本为3.5.6,Tensorflow版本为2.0
介绍
Tensorflow是Google推出的机器学习开源神器,对Python有着良好的语言支持,支持CPU,GPU和Google TPU等硬件,并且已经拥有了各种各样的模型和算法。目前,Tensorflow已被广泛应用于文本处理,语音识别和图像识别等多项机器学习和深度学习领域。
python开发IT技术交流群:887934385
基础框架
分为三层:应用层、接口层和核心层
应用层
提供了机器学习相关的训练库、预测库和针对Python、C++和Java等变成语言的编程环境,类似于web系统的前端,主要实现了对计算图的构造。
接口层
对Tensorflow功能模块的封装,便于其它语言平台的调用。
核心层
最重要的部分,包括设备层、网络层、数据操作层和图计算层,执行应用层的计算。
1.设备层
包括Tensorflow在不同硬件设备上的实现,主要支持CPU、GPU和Mobile等设备,在不同硬件设备上实现计算命令的转换,给上层提供统一的接口,实现程序的跨平台功能。
2.网络层
网络层主要包括RPC和RDMA通信协议,实现不同设备之间的数据传输和更新,这些协议都会在分布式计算中用到。
3.数据操作层
以tensor为处理对象,实现tensor的各种操作和计算。
4.图计算层
包括分布式计算图和本地计算图的实现,实现图的创建、编译、优化和执行等。
设计理念
可以将Tensorflow理解为一张计算图中“张量的流动”,其中,Tensor(张量)代表了计算图中的边,Flow(流动)代表了计算图中节点所做的操作而形成的数据流动。
其设计理念是以数据流为核心,当构建相应的机器学习模型后,使用训练数据在模型中进行数据流动,同时将结果以反向传播的方式反馈给模型中的参数,以进行调参,使用调整后的参数对训练数据再次进行迭代计算。
编程特点
有两个编程特点:
图的定义和图的运行完全分开
在tensorflow中,需要预先定义各种变量,建立相关的数据流图,在数据流图中创建各种变量之间的计算关系,完成图的定义,需要把运算的输入数据放进去后,才会形成输出值。
图的计算在会话中执行
tensorflow的相关计算在图中进行定义,而图的具体运行坏境在会话(session)中,开启会话后,才能开始计算,关闭会话就不能再进行计算了。
举个例子:
import tensorflow as tf
tf.compat.v1.disable_eager_execution()
a = 3
b = 4
c = 5
y = tf.add(a*b, c)
print(y)
a = tf.constant(3, tf.int32)
b = tf.constant(4, tf.int32)
c = tf.constant