基于tf2的dl编程学习(一)

主要介绍tensorflow的基础部分的核心概念与机制,总结tensorflow作为通用计算框架的一些知识点。主要分为张量和计算图两个部分。Tensorflow是一个通过计算图的形式来描述计算的编程系统,节点为定义的数学计算,而连接节点的边即为张量。张量在计算图中流动,进出节点完成计算,最终流到终点得到结果。

张量

张量(Tensor)是tensorflow中基础的数据结构,就像Ndarray之于Numpy一样。二者的行为特性也十分相似,都是描述多维数组,操作,类型也都有通用的地方。

常量

常量即值不可改变的张量,在计算图中不可被重新赋值。常量一般用于存储不变的数值如超参数等。初始化方法包括数据转换和直接生成:

a = tf.constant(data)  # 使用constant函数,data可为python基础数据类型和ndarray
a = tf.zeros(shape)
a = tf.zeros(shape)  # 直接初始化为0/1张量
a = tf.eye(x,y)  # 单位矩阵
a = tf.linalg.diag(list)  # 对角矩阵,list为对角线上元素
a = tf.fill(shape, data)  # data为标量,填充shape大小的张量
a = tf.linspace(start, end, n)  # 插值,生成长度为n的均匀分布一维张量
a = tf.range(start, end, step)  # 相当于把range函数结果转换为张量
a = tf.random.uniform(shape, minval=a, maxval=b)  # 均匀分布
a = tf.random.normal(shape, mean=a, stddev=b)  # 正态分布
a = tf.random.shuffle(data)  # 随机打乱

变量

变量即值可变的张量,一般用于存储模型中需要被训练的参数。初始化与改变变量值的方法包括:

a = tf.Variable(data)  # 使用Variable函数,data可为python基础数据类型,ndarray和Tensorflow常量
a.assign_add(data)  # 变量加上data,注意形状应保持一致,除非data为标量
a.assign(data)  # 变量的重新赋值

张量操作

对张量的操作主要分为结构操作和数值运算

结构操作
切片索引

张量的切片索引方式和numpy中ndarray的操作几乎完全一样

t[2,4]  # 索引
t[1:4, :4:2]  # 切片
# tensorflow还支持不规则切片(只抽取元素而不改变原张量)
y = tf.gather(t,[a,b,c], axis=1)  # 按axis抽取第a,b,c个元素组成,其他维度不变
y = tf.gather_nd(t, indices=[indice_1, indice_2, ...])  # 按坐标indice抽取元素
y 
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值