⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计3077字,阅读大概需要3分钟
🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号:不懂开发的程序猿
个人网站:https://jerry-jy.co/
TensorFlow进阶一(张量的范数、最值、均值、和函数、张量的比较)
TensorFlow进阶一
一、任务需求
在介绍完张量的基本操作后,我们来进一步学习张量的进阶操作,如张量的合并与分割、范数统计、张量填充、张量限幅等,本节需要完成张量的合并(包括拼接和堆叠),张量的分割、向量范数、最值、均值、和,张量的比较等功能。
二、任务目标
1、掌握张量的合并
2、掌握张量的分割
3、掌握张量的最值、均值、和函数
4、掌握张量的比较
三、任务环境
1、python3.6
2、tensorflow2.4
3、jupyter
四、任务实施过程
(三)、向量范数
12、在 TensorFlow 中,可以通过 tf.norm(x, ord)求解张量的 L1、L2、∞等范数,其中参数ord 指定为 1、2 时计算 L1、L2 范数,指定为 np.inf 时计算∞ −范数
x = tf.ones([2,2])
tf.norm(x,ord=1) #计算L1范数
tf.norm(x,ord=2) #计算L2范数
<tf.Tensor: shape=(), dtype=float32, numpy=2.0>
import numpy as np
tf.norm(x,ord=np.inf) # 计算∞范数
(四)、最值、均值、和
13、考虑 shape 为[4,10]的张量,其中,第一个维度代表样本数量,第二个维度代表了当前样本分别属于10个类别的概率,需要求出每个样本的概率最大值,可以通过tf.reduce_max 函数实现
x = tf.random.normal([4,10]) # 模型生成概率
tf.reduce_max(x,axis=1) # 统计概率维度上的最大值
<tf.Tensor: shape=(4,), dtype=float32, numpy=array([1.8075018, 1.8042752, 1.0641811, 1.9087783], dtype=float32)>
14、返回长度为 4 的向量,分别代表了每个样本的最大概率值。同样求出每个样本概率的最小值
tf.reduce_min(x,axis=1)
<tf.Tensor: shape=(4,), dtype=float32, numpy=array([-0.4287228, -0.5215661, -1.9173664, -1.5540869], dtype=float32)>
15、求出每个样本的概率的均值
tf.reduce_mean(x,axis=1)
<tf.Tensor: shape=(4,), dtype=float32, numpy=array([ 0.4275422 , 0.2606017 , -0.19171332, 0.38828874], dtype=float32)>
16、当不指定 axis 参数时,tf.reduce_*函数会求解出全局元素的最大、最小、均值、和等数据。
x = tf.random.normal([4,10])
tf.reduce_max(x),tf.reduce_min(x),tf.reduce_mean(x)
17、在求解误差函数时,通过 TensorFlow 的 MSE 误差函数可以求得每个样本的误差,需要计算样本的平均误差,此时可以通过 tf.reduce_mean 在样本数维度上计算均值
out = tf.random.normal([