前言
熟悉 TensorFlow 的同学都知道, TensorFlow 中有两个经常用到的函数:
- tf.reduce_mean
- tf.reduce_sum
那么,二者有何区别?训练时目标函数应该使用哪一个?
tf.reduce_sum
我们先看函数定义:
tf.reduce_sum(input_tensor, axis=None, keepdims=None, name=None,
reduction_indices=None, keep_dims=None)
主要是三个参数:
input_tensor
:输入的张量数组axis
:求和的维度keepdims
:是否保持维度不变
其余reduction_indices
和keep_dims
是为了保持和旧版本兼容,现已废弃。
从字面上理解,这是一个降维求和函数,对于给定的输入input_tensor
,对其维度axis
进行降维求和(不指定则默认对整个数组求和),并且返回求和后的结果张量。直接看样例:
>>> tensor = tf.constant(np.array([[1., 2.],[3., 4.]]))
>>> tensor.eval()
array([[1., 2.],
[3., 4.]])
>>> tf.reduce_sum(tensor).eval() # 全部求和
10.0
>>> tf.reduce_sum(tensor, axis=