四时宝库

程序员的知识宝库

无人驾驶系列——深度学习笔记:Tensorflow基本概念

随着无人驾驶的火爆,深度学习在无人驾驶中的应用受到广泛关注,我在工作中对此有所接触,因此进行了相关学习和整理,给大家大家可以参考。

TensorFlow深度学习框架

TensorFlow基本概念

1.TensorFlow计算模型——计算图

  • Tensor:张量,可以简单理解为多维数组

  • flow:流,张量间通过计算相互转化过程

  • TensorFlow是一个通过

    计算图

    形式来描述编程的系统。每一个计算都是计算图上的一个节点,节点之间的边描述了计算间的依赖关系。

计算图的使用

Tensorflow程序分为两个阶段:

  1. 定义计算图中的所有计算

  2. 执行计算

系统会自动维护一个默认的计算图,通过tf.get_default_graph函数获取当前默认的计算图

2.TensorFlow数据模型——张量

张量是Tensorflow管理数据的形式,功能上可以理解为多维数组。

  • 0阶张量:标量(scalar)也就是一个数

  • 第一阶张量:向量(vector),也就是一维数组

  • 第n阶张量:n维数组。

张量中并未保存真正的数组,其保存如何计算这些数字的计算过程。例如:

一个张量主要保存3个属性:

  • 名字(name):一个张量的唯一标识,同时给出张量如何计算的。通过

    node:src_output

    形式给出。node为节点名称,srcoutput为当前张量来为节点的第几个输出。例如:add:0表示result张量是计算节点add输出的第一个结果

  • 维度(shape):shape=(2,)说明以为数组,数组长度为2

  • 类型(type):每个张量会有唯一的类型

3.TensorFlow运行模型——会话

TensorFlow通过会话(Session)的方式执行定义好的运算,拥有并管理运行时的所有资源。 会话使用模式2种:

  1. 明确调用会话生成函数和关闭会话函数:

2.通过上下文管理器使用会话:

Tensorflow不会自动生成默认会话,需要手动指定

sess = tf.Session()with sess.as_default():
 print(result.eval()

tf.Tensor.eval()函数计算一个张量的取值

4.神经网络参数和Tensorflow变量

tf.Variable(): 保存和更新网络中的参数

weights = tf.Variable(tf.random_normal([2,3], stddev=2)) 生成2x3矩阵,元素是均值为0,标准差为2的随机数

  • TensorFlow随机数生成函数

  • TensorFlow常数生成函数

tf.initialize_all_variables()函数初始化所有变量

小结

  1. 计算图是Tensorflow的计算模型,所有程序都会通过计算图的形式展现;

  2. 计算图每一个节点都是一个运算,计算图的边表示运算间的数据传递关系;

  3. 计算图保存运行每个运算的设备信息(CPU?GPU)以及运算间的依赖关系;

  4. 张量是TensorFlow的数据模型,所有运算的输入、输出都是张量;

  5. 张量本身不存储任何数据,只是对运算结果的引用

  6. 会话是Tensorflow的运算模型,其管理程序拥有的系统资源,所有的运算都通过会话执行

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接