TensorFlow高阶操作2-数据统计和比较
重点函数
求范数:
参数 ord 指定为 1,2 时计算 L1, L2 范数,指定为 np.inf 时计算∞ −范数。
参数 axis ,指定维度。
tf.norm(x, ord, axis)
最大值
tf.reduce_max(x, axis)
最小值
tf.reduce_min(x, axis)
均值
tf.reduce_mean(x, axis)
和
tf.reduce_sum(x, axis)
当不指定 axis 参数时,tf.reduce_* 函数会求解出全局元素的最大、最小、均值、和。
在 axis 轴上,x 的最大值、最小值所在的索引号
tf.argmax(x, axis)
tf.argmin(x, axis)
唯一元素。
y, idx = unique(x)
5.2 数据统计
5.2.1 向量范数
❑ L1 范数,定义为向量𝒙的所有元素绝对值之和
❑ L2 范数,定义为向量𝒙的所有元素的平方和,再开根号
❑ ∞ −范数,定义为向量𝒙的所有元素绝对值的最大值
在 TensorFlow 中,可以通过 tf.norm(x, ord, axis)
求解张量的 L1, L2, ∞等范数,其中参数 ord 指定为 1,2 时计算 L1, L2 范数,指定为 np.inf 时计算∞ −范数。
5.2.2 最大最小值、均值、和
通过 tf.reduce_max
, tf.reduce_min
, tf.reduce_mean
, tf.reduce_sum
可以求解张量在某个维度上的最大、最小、均值、和,也可以求全局最大、最小、均值、和 信息。
当不指定 axis 参数时,tf.reduce_* 函数会求解出全局元素的最大、最小、均值、和。
在求解误差函数时,通过 TensorFlow 的 MSE 误差函数可以求得每个样本的误差,需要计算样本的平均误差,此时可以通过 tf.reduce_mean
在样本数维度上计算均值
out = tf.random.normal([4,10]) # 网络预测输出
y = tf.constant([1,2,2,0]) # 真实标签
y = tf.one_hot(y,depth=10) # one-hot 编码
loss = keras.loss es.mse(y,out) # 计算每个样本的误差
loss = tf.reduce_mean(loss) # 平均误差
通过 tf.argmax(x, axis)
,tf.argmin(x, axis)
可以求解在 axis 轴上,x 的最大值、最小值所在的索引号。
5.3 张量比较
通过 tf.equal(a, b)
(或 tf.math.equal(a, b)
)函数可以比较这 2 个张量是否相等。
tf.equal()
函数返回布尔型的张量比较结果,只需要统计张量中 True 元素的个数,即可知道预测正确的个数。
表格 5.1 常用比较函数
函数 | 常用比较函数 |
---|---|
tf.math.greater | 𝑎 > 𝑏 |
tf.math.less | 𝑎 < 𝑏 |
tf.math.greater_equal | 𝑎 ≥ 𝑏 |
tf.math.less_equal | 𝑎 ≤ 𝑏 |
tf.math.not_equal | 𝑎 ≠ 𝑏 |
tf.math.is_nan | 𝑎 = 𝑛𝑎𝑛 |
tf.unique(x)
在一维张量中找到唯一的元素。
y, idx = unique(x)