1.常用函数
- 强制tensor转换为该数据类型:tf.cast(张量名,dtype=数据类型)
- 计算张量维度上元素的最小值:tf.reduce_min(张量名)
- 计算张量维度上元素的最大值:tf.reduce_max(张量名)
2.理解axis
在一个二维张量或者数组中,可以通过调整axis等于0或者1控制执行维度。axis=0表示纵向操作,axis=1代表横向操作。
- 计算张量沿着指定维度的平均值:tf.reduce_mean(张量名,axis=操作轴)
- 计算张量沿着指定维度的和:tf.reduce_sum(张量名,axis=操作轴)
3.常用函数
- tf.Variable()将变量标记为“可训练”,被标记的变量会在反向传播中记录梯度信息。神经网络训练中,常用该函数标记待训练参数。tf.Variable(初始值)
例如神经网络初始w,首先生成正态分布的随机数,然后把随机数标记为可训练的。如下所示:
w = tf.Variable(tf.random.normal([2,2],mean = 0, stddev = 1))
4.TensorFlow提供的常用数学运算函数
- 对应元素的四则运算
实现两个张量的对应元素相加:tf.add(张量1,张量2)
实现两个张量的对应元素相减:tf.add(张量1,张量2)
实现两个张量对应元素相乘:tf.multiply(张量1,张量2)
实现两个张量对应的元素相除:tf.divide(张量1,张量2)
注:只有维度相同的张量才可以做四则运算。
- 平方、次方与开方
计算某个张量的平方:tf.square(张量名)
计算某个张量的n次方:tf.pow(张量名,n次方数)
计算某个张量的开方:tf.sqrt(张量名)
- 两个矩阵相乘:tf.matmul(矩阵1,矩阵2)
5.tf.data.Dataset.from_tensor_slices
神经网络训练的时候需要把输入特征和标签配对后放入网络的。TensorFlow给出了特征和标签配对的函数tf.data.Dataset.from_tensor_slices。这个函数不管是numpy格式还是tensor格式都适用。
切分传入张量的第一维度,生成输入特征/标签对,构建数据集:
data = tf.data.Dataset.from_tensor_slices((输入特征,标签))
6.tf.GradientTape
在with结构中适用tf.GradientTape实现某个函数对指定参数的求导运算。配合tf.Variable使得参数可以训练。
with结构记录计算过程,gradient求出张量的梯度。
with tf.GradientTape() as tape:
若干个计算过程
grad = tape.gradient(函数,对谁求导)
7.enumerate
enumerate是枚举的意思,是python的内建函数,它可以遍历每个元素(如列表、元组、或者字符串),组合为:索引、元素,常在for循环中使用。
enumerate(列表名)
8.tf.one_hot
独热编码(one-hot encoding):在分类问题中,常用独热码做标签
标记类别;1表示是,0表示非
(0狗尾草鸢尾 1杂色鸢尾 2弗吉尼亚鸢尾)
独热码:(0 1 0)
tensorflow中提供了tf.one_hot()函数,将待转换数据,转换为one_hot形式的数据输出
tf.one_hot(待转换数据,depth=几分类)
9.tf.nn.softmax
10.assign_sub
该函数常用于函数的自更新,等待更新的参数要先被制定为可训练即为Variable类型。
- 赋值操作,更新参数的值并返回
- 调用assign_sub前,先用tf.Variable定义变量w为可训练(可自更新)
w.assign_sub(w要自更新的内容)
w做自减一操作,由4变为3。
11.tf.argmax
该函数返回张量沿着指定维度最大值的索引,tf.argmax(张量名,axis=操作轴)