**
如何创建一个张量
**
-
创建全为0的张量 tf.zeros(纬度)
-
创建全为1的张量 tf.ones(纬度)
-
创建全为指定值的张量 tf.fill(纬度)
-
维度:
-
一维 直接写个数
-
二维 用[行,列]
-
多维 用[n,m,j,k……]
-
生成正态分布的随机数,默认均值为0,标准差为1
tf.random.normal(纬度,mean=均值,stddev=标准差) -
生成截断式正态分布的随机数
tf.random.truncated_normal(纬度,mean=均值,stddev=标准差) 生成的数据在(均值±2mean) -
均匀分布随机数
-
tf.random.uniform(纬度,minval=最小值,maxval=最大值)
常用函数
-
tf.cast(张量名,dtype=数据类型)
强制将tensor转换为其他数据类型 -
tf.reduce_min(张量名)
计算张量纬度上元素的最小值 -
tf.reduce_max(张量名)
计算张量纬度上元素的最大值 -
tf.reduce_mean(张量名,axis=操作轴)
计算张量沿指定纬度的平均值 -
tf.reduce_sum(张量名,axis=操作轴)
计算张量沿指定纬度的和
axis=0 纵向 列
axis=1 横向 行 -
tf.Variable()
将变量标记为“可训练”,被标记的变量会在反向传播中记录梯度信息,常用于训练参数。
张量内元素作四则运算和平方、次方、开方 -
tf.matmul(矩阵1,矩阵2)
两个矩阵的相乘 -
tf.data.Dataset.from_tensor_slices(输入特征,标签)
-切分传入张量的第一纬度,生成输入特征标签对 -
with tf.GradientTape() as tape:
w=tf.Variable(tf.constant(3.0))
loss=tf.pow(w,2)
grad=tape.gradient(函数loss,对谁求导w) -
enumerate
可遍历每个元素(如列表、元组或字符串)组合为:索引 元素 常在for循环中使用
enumerate(列表名)
例:
seq = [‘one’,‘two’,‘three’]
for I,element in enumerate(seq):
print(I,element)
运行结果:
0 one
1 two
2 three -
tf.one_hot
独热码 1 是 0 非 -
tf.nn.softmax(yi)
使用softmax函数实现概率分布
-
w.assign_sub (数值)更新参数值并返回
调用assign_sub前,先用tf.Variable定义变量w为可训练 -
tf.argmax(张量名,axis=操作轴)
返回张量沿指定纬度最大值的索引 -
tf.where(条件语句,真返回A,假返回B)
条件语句真返回A,条件语句假返回B,张量中的元素一一做条件语句 -
np.random.Randomstate.rand(纬度)
纬度为空,返回一个随机标量
np.random.Randomstate.rand(seed=1)
seed=常数每次生成的随机数相同**?** -
np.vstack()将两个数组按垂直方向叠加
-
np.mgrid[起始值:结束值:步长,起始值:结束值:步长,……]
[起始值,结束值) -
x.ravel() 将x变为一维数组
-
np.c_[数组1,数组2,……]将返回的间隔数值点配对
-