关于reduce有一系列的函数,为什么加了个reduce呢?
reduce翻译过来是归约,其效果也就相当于降维,比如二维矩阵按行求和,结果就是一个向量,少了一维,也就是会掉一层方括号。
Keepdims,这个参数会使其不掉那一层方括号,也就是保持维度数目,尤其适合操作结束要和其他同维度数据相加。
a = [[[1,2], [3,4], [5,6],[7,8]]]
with tf.Session() as session:
print(session.run(tf.reduce_sum(a)))
print(session.run(tf.reduce_sum(a, axis=0)))
print(session.run(tf.reduce_sum(a, axis=0, keep_dims=True)))
print(session.run(tf.reduce_sum(a, axis=1)))
print(session.run(tf.reduce_sum(a, axis=1, keep_dims=True)))
print(session.run(tf.reduce_sum(a, axis=2)))
print(session.run(tf.reduce_sum(a, axis=2, keep_dims=True)))
36
[[1 2]
[3 4]
[5 6]
[7 8]]
[[[1 2]
[3 4]
[5 6]
[7 8]]]
[[16 20]]
[[[16 20]]]
[[ 3 7 11 15]]
[[[ 3]
[ 7]
[11]
[15]]]