tensorflow基础概念(计算图、张量、操作)

1.tensorflow的概念
TensorFlow=Tensor + Flow
Tensor(张量)

  • 数据结构:多维数组
    Flow(流)
  • 计算模型:张量之间通过计算而转换的过程
    TensorFlow是一个通过计算图的形式表述计算的编程系统,每一个计算都是计算图上的一个节点,节点之间的边描述了计算之间的关系
    2.计算图(数据流图)的概念
    计算图是一个有向图,由以下内容构成:
  • 一组节点,每个节点都代表一个操作,一种运算
  • 一组有向边,每条边打标节点之间的关系(数据传递和控制依赖)
    TensorFlow有两种边
  • 常规边(实线):代表数据依赖关系。一个节点的运算输出成为另一个节点的输入,两个节点之间有tensor流动(值传递)
  • 特殊边(虚线):不携带值,表示两个节点之间的控制相关性。比如,happens-before关系,源节点必须在目的节点执行前完成执行
    在这里插入图片描述
    数据流图优势
    (1)并行计算快
    (2)分布式计算快
    (3)预编译优化(XLA)
    (4)可移植性好
    一个简单的计算图
    在这里插入图片描述
    生成的计算图如下:
    在这里插入图片描述
    3.张量的概念
    在TensorFlow中,所有的数据都通过张量的形式来表示
  • 从功能的角度,张量可以简单理解为多维数组
    零阶张量表示标量(scalar),也就是一个数;
    一阶张量为向量(vector),也就是一维数组;
    n阶张量可以理解为一个n维数组;
  • 张量并没有真正保存数字,它保存的是计算过程

张量的属性
在这里插入图片描述
名字(name):
“node:srv_output”:node 节点名称,src_output 来自节点的第几个输出
形状(shape):
张量的维度信息,shape=(),表示是标量
类型(type):
每一个张量会有一个唯一的类型
TensorFlow会对参与运算的所有张量进行类型的检查,发现类型不匹配时会报错

张量的形状
三个术语描述张量的维度:阶(rank)、形状(shape)、维数(dimension number)
在这里插入图片描述
在这里插入图片描述
张量的阶
张量的阶(rank)表示了张量的维度
在这里插入图片描述
获取张量的元素
阶为1的张量等价于向量;
阶为2的张量等价于矩阵,通过t[i,j]获取元素;
阶为3的张量,通过t[i,j,k]获取元素
注意:下标从0开始
在这里插入图片描述
张量的类型
TensorFlow支持14种不同的类型
实数 tf.float32,tf.float64
整数 tf.int8,tf.int16,tf.int32,tf.int64,tf.uint8
布尔 tf.bool
复数 tf.complex64,tf.complex128

默认类型:
不带小数点的数会被默认为int32
带小数点的会被默认为float32
4.操作

  • 计算机中的节点就是操作(Operation)
    一次加法是一个操作
    一次乘法也是一个操作
    构建一些变量的初始值也是一个操作
  • 每个运算操作都有属性,它在构建图的时候需要确定下来
  • 操作可以和计算设备绑定,指定操作在某个设备上执行
  • 操作之间存在顺序关系,这些操作之间的依赖就是“边”
  • 如果操作A的输入是操作B执行的结果,那么这个操作A就依赖于操作B

在使用tensorflow搭建深度模型基本步骤包括
定义tensorflow输入节点
定义学习的参数变量
定义运算
优化函数及优化目标
初始化所有变量
迭代更新参数
测试模型
使用模型

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值