版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hawkcici160/article/details/80988606
tf.reduce_sum、tf.reduce_mean这两个函数分别是对输入Tensor的某几维求和 和 求均值。
参数列表为
reduce_sum(
input_tensor,
axis=None,
keep_dims=False,
name=None,
reduction_indices=None)
其中第二个参数可以为列表类型,例如:
输入一个三维Tensor, m是对其[0, 1]维求和,m_是对其第0维求和后再对该结果的第一维求和(keep_dim=True)
import tensorflow as tf
x = tf.constant([[[1., 5., 9.],
[2., 6., 8.]],
[[3., 7., 7.],
[4., 8., 6.]]]) # [2,2,3]
m0 = tf.reduce_sum(x, 0, True)
m = tf.reduce_sum(x, [0, 1], True)
m_ = tf.reduce_sum(m0, 1, True)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print(sess.run(m0))
print(sess.run(m))
print(sess.run(m_))
运行结果为:
由此可见,当第三个参数keep_dim=True时,对三维Tensor的[0, 1]维进行tf.reduce_sum或tf.reduce_mean操作,等价于对其第0维操作后再对得到的结果的第1维进行操作。
另:
若keep_dim=False,则等价于对对其第0维操作后再对得到的结果的第0维进行操作。