Tensorflow2.0(二):常用函数记录

√ 强制tensor转换为该数据类型

tf.cast(张量名,dtype=数据类型)

√ 计算张量维度上元素的最小值

tf.reduce_min(张量名)

√ 计算张量维度上元素的最大值

tf.reduce_max(张量名)

√ axis
在一个二维张量或数组中,可以通过调整axis等于0或者1控制执行维度、
axis = 0 代表跨行(经度,down,表示对第一个纬度进行操作),而axis =1 代表跨列 (纬度,across,表示对第二个纬度进行操作)
如果不指定axis,则所有元素参与计算:
Tensorflow2.0(二):常用函数记录_第1张图片
扩展:比如计算张量维度上元素的最大值、最小值,平均值、总数,可以添加axis进行对具体操作轴;

√ tf.Variable()将变量标记为“可训练”, 被标记的变量会在反向传播中记录梯度信息。
神经网络训练中,常用该函数标记待训练参数
例如:

w = tf.Variable(tf.random.normal([2,2],mean=0,stddev=1))
//这样就可以通过梯度下降更新参数w了

√ 对应元素的四则运算:tf.add, tf.subtract, tf.multiply, tf.divide分别代表加、减、乘、除;
例子:tf.add(张量1, 张量2)
注意:只有维度相同的张量才可以进行四则运算
√ 平方、次方与开方:tf.square, tf.pow, tf.sqrt;
√ 矩阵乘法:tf.matmul;

神经网络在训练时,是把输入特征和标签配对后喂入网络的,使用的是from_tensor_slices()函数。
√ 切片传入张量的第一维度,生成输入特征/标签对,构建数据集:

data = tf.data.Dataset.from_tensor_slices((输入特征, 标签))
//Numpy和Tensor格式都可以用该语句读入数据
features = tf.constant([12,23,10,17])
labes = tf.constant([0,1,1,0])

√ tf.GradientTape
在with结构中使用GradientTape实现某个函数对指定参数的求导运算,配合Variable函数可以实现损失函数loss对参数w的求导计算(with结构记录计算过程,gradient求助张量的梯度)
例子:

with tf.GradientTape() as tape:
	w = tf.Variable(tf.constant(3.0))
	loss = tf.pow(w,2)
grad = tape.gradient(loss,w)
print(grad)

√ enumerate
枚举的意思,可以枚举出每一个元素,并在元素前配上对应的索引号;组合为 索引 元素 、常在for循环中使用
举例:

seq = ['one', 'two','three']
for i,element enumerate(seq):
	print(i,element)

√ onehot编码
在分类问题中,常用独热码做标签,掐浦口;标记类别:1表示是,0表示非;
tf.one_hot(待转换数据, depth = 几分类)

classes =3 
labels = tf.constant([1,0,2])
output = tf.one_hot(labels,depth=classes)
// 010/100/001

√ tf.nn.softmax
对于分类问题,神经网络完成前向传播,计算了每种类型的可能性大小,这些数字只有符合概率分布后,才可以与独热码的标签作比较
Tensorflow2.0(二):常用函数记录_第2张图片
上述的和为1,后面为概率
在这里插入图片描述
√ assing_sub
常用于参数的自更新
赋值操作,更新参数的值并返回;调用assign_sub前,先用tf.Variable定义w为可训练的
Tensorflow2.0(二):常用函数记录_第3张图片
√ tf.argmax
返回张量沿指定维度最大值的索引
tf.argmax(张量名, axis=操作轴)

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))//返回每一列最大值的索引

你可能感兴趣的:(tensorflow,python)