用于在某个维度求和
reduce_sum(
input_tensor,
axis=None,
keep_dims=False,
name=None,
reduction_indices=None
)
input_tensor:表示输入
axis:表示在那个维度进行sum操作。
keep_dims:表示是否保留原始数据的维度,False相当于执行完后原始数据就会少一个维度。
reduction_indices:为了跟旧版本的兼容,现在已经不使用了。
例子:
import tensorflow as tf
import numpy as np
a = [[[1,2], [3,4], [5,6],[7,8]]]
with tf.Session() as session:
print("========在所有维度求和===================")
print(session.run(tf.reduce_sum(a)))
print("========在0维求和========================")
print(session.run(tf.reduce_sum(a, axis=0)))
print("========在0维求和,不降维================")
print(session.run(tf.reduce_sum(a, axis=0, keepdims=True)))
print("========在1维求和========================")
print(session.run(tf.reduce_sum(a, axis=1)))
print("========在1维求和,不降维================")
print(session.run(tf.reduce_sum(a, axis=1, keepdims=True)))
print("========在2维求和========================")
print(session.run(tf.reduce_sum(a, axis=2)))
print("========在2维求和,不降维================")
print(session.run(tf.reduce_sum(a, axis=2, keepdims=True)))
输出:
========在所有维度求和===================
36
========在0维求和========================
[[1 2]
[3 4]
[5 6]
[7 8]]
========在0维求和,不降维================
[[[1 2]
[3 4]
[5 6]
[7 8]]]
========在1维求和========================
[[16 20]]
========在1维求和,不降维================
[[[16 20]]]
========在2维求和========================
[[ 3 7 11 15]]
========在2维求和,不降维================
[[[ 3]
[ 7]
[11]
[15]]]
结合例子和输出我们说明下。a是一个三维向量。
在第0维,只有一个元素,这个元素是一个二维向量
[[1 2]
[3 4]
[5 6]
[7 8]]
所以在第0维求和,就是这个元素本身。
在第1维,有四个元素,每个元素是一维向量,分别是
[1,2], [3,4], [5,6],[7,8]
所以在第1维求和,对应位置相加,就是
[[16 20]]
所谓降维与不降维可以简单的理解为去不去掉一个括号(维度)