Tensorflow常用函数

常用函数

1
2
3
tf.cast(张量名,dtype=数据类型) # 强制转换
tf.reduce_min(张量名) # 找最小值
tf.reduce_max(张量名) # 找最大值

axis 参数

如在一个二维张量中,可以通过调整axis的值来操找各个维度

axis=0时表示对跨行操作,axis=1时表示跨列操作

1
2
tf.reduce_mean(张量名,axis=操作轴) # 沿着指定张量求均值
tf.reduce_sum(张量名,axis=操作轴) # 沿指定维度求和

可训练标记Variable

1
tf.Variable(初始值) # 将变量标记为可训练的

四则运算

1
2
3
4
tf.add(张量1, 张量2) # 张量相加
tf.subtract(张量1, 张量2) # 张量相减
tf.multiply(张量1,张量2) # 张量相乘
tf.divide(张量1,张量2) # 张量消除

只有维度相同才可进行四则运算

平方、次方、开方

1
2
3
tf.square(张量名) # 计算张量平方
tf.pow(张量名,n次幂) # 幂次运算
tf.sqrt(张量名) # 开方运算

矩阵乘法

1
tf.matmul(矩阵1,矩阵2)

特征与标签配对

1
data = tf.data.Dataset.form_tensor_slices((输入特征,标签))

求导

某个函数对指定参数的求导运算

with结构记录计算过程,gradient求出张量梯度

1
2
with tf.GradientTape() as tape:
grad = tape.gradient(函数,对谁求导)

结果

GradientTape 可理解为“ 梯度流磁带”

在求导阶段:通过搜索 source node 到 target node 的路径,进而计算出偏微分

assign_sub

赋值操作,更新参数值并返回。

调用函数时,必须使用tf.Variable 定义变量w为可训练(可自更新)。

w.assign_sub(w要自减的内容)

1
2
3
w = tf.Variable(4)
w.assign_sub(1)
print(W)

tf.argmax

返回指定维度最大值元素的索引

1
2
3
4
5
6
import numpy as np
test = np.array([[1,2,3],[2,3,4],[5,4,3],[8,7,2]])
print(test)
print(tf.argmax(test,axis=0))
print(tf.argmax(test,axis=0))

![image-20220406160808636](周科任-第3周-学习笔记/image-20220406160808636.png)