强制数据类型的转换:
tf.cast(张量名,dtype=数据类型)
此外,还有打印张量维度上元素进行处理的函数。如,最大值最小值的函数。
axis=0 沿着经度方向操作,axis=1沿着纬度方向操作。
tf.reduce_min(张量名,axis=操作轴)#打印张量一个方向上的上元素的最小值
tf.reduce_max(张量名,axis=1)#打印张量精度方向上元素的最大值,所有维度上的最大值。
tf.reduce_mean(张量名,axis=操作轴)#计算张量沿着指定维度上的均值
tf.reduce_sum(张量名,axis=操作轴)#计算张量沿着指定维度上的和。
tf.Variablle()函数可以将变量标记为“可训练”**,被标记的变量会在反向传播过程中记录梯度信息。
神经网络中,常用该函数来标记带训练的参数。
w=tf.Variable(tf.random.normal([2,2],mean=0,stddev=1)
张量的四则运算,要求维度相同。
tf.add(张量1,张量2)
tf.subtract(张量1,张量2)
tf.multiply(张量1,张量2)
tf.divide(张量1,张量2)
平方、次方、开方
tf.square(张量名)
tf.pow(张量名,n次方)#其实可以一个pow走天下,n可以为任意浮点类型的数据
tf.sqrt(张量名)
矩阵的乘法
tf.matmul(矩阵1,矩阵2)
神经网络在训练时,是把输入特征和标签配对后喂入网络的。
tensorflow中把标签和数据配对的函数为:
data=tf.data.Dataset.from_tensor_slices((输入特征,标签))#(numpy和tensor格式均可以用于语句读入数据)
求偏导运算:
梯度带:tf.GradientTape
with tf.GradientTape() as tape:
若干的计算过程
grad=tape.gradient(函数,对谁求导)
比如下面的例子:
enumerate
用于建立元素与索引之间的关系,常在for循环中使用。
enumerate(列表名)
tf.one_hot 独热码:
用于表示每种元素的概率的一个编码方式。
tf.ont_hot(带转换数据,depth=几分类)
使 n分类n个输出的数值符合概率分布的函数:
tf.nn.softmax(x)
参数的自更新:
assign_sub
在调用这个自减操作时,首先要对其用Variable定义,使其能够做到自更新
w=tf.Variable(4)
w.assign_sub(1)
print(w)
返回张量沿着指定维度最大值的索引号:
tf.argmax(张量名,axis=操作轴)
import numpy as np
import tensorflow as tf
test = np.array([[1, 2, 3], [2, 3, 4], [5, 4, 3], [8, 7, 2]])
print("test:\n", test)
print("每一列的最大值的索引:", tf.argmax(test, axis=0)) # 返回每一列最大值的索引
print("每一行的最大值的索引", tf.argmax(test, axis=1)) # 返回每一行最大值的索引