笔者今天学习自定义损失函数的时候,遇到了tf.reduce_mean,然后去tensorflow的官方手册中查了一下,发现在tf.math下面,其实不止有tf.reduce_mean,还有一系列tf.reduce_xxx
1. tf.reduce_xxx简介
以tf.reduce_mean 为例,该函数用于计算张量tensor沿着指定的数轴(tensor的某一维度)上的的平均值,主要用作降维或者计算tensor(图像)的平均值。
其实除了平均值外,还有很多优化过程中要用的类似函数:
这里是官方手册中所有reduce_类的函数,根据需求选择即可
2.tf.reduce_mean详解
tf.math.reduce_mean(
input_tensor, axis=None, keepdims=False, name=None
)
- 第一个参数input_tensor: 输入的待降维的tensor;
- 第二个参数axis: 指定的轴,如果不指定,则计算所有元素的均值;
- 第三个参数keepdims:是否降维度,设置为True,输出的结果保持输入tensor的形状,设置为False,输出结果会降低维度;
- 第四个参数name: 操作的名称。
来,举个例子:
x = tf.constant([[1., 1.], [2., 2.]])
print(tf.reduce_mean(x))
print(tf.reduce_mean(x, 0))
print(tf.reduce_mean(x, 1))
结果:
tf.Tensor(1.5, shape=(), dtype=float32)
tf.Tensor([1.5 1.5], shape=(2,), dtype=float32)
tf.Tensor([1. 2.], shape=(2,), dtype=float32)
3. 用途
这一类函数,主要用于在神经网络中定义损失函数的时候用,比如:
def customized_mse(y_true,y_test):
return tf.reduce_mean(tf.square(y_true - y_test))
详细的应用可见:TensorFlow2.0入门到进阶中的3.5