tf.reduce_mean()
函数以一种 axis 参数中引用的索引的方式对数组的元素求和。
在以下代码中:
import tensorflow as tf
x = tf.Variable([1, 2, 3])
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)
所以对于这行
print(sess.run(tf.reduce_sum(x)))
输出为:6
为了生成相同的输出,我需要以减少列数的方式对所有元素求和。所以我需要设置轴 = 1对吗?
print(sess.run(tf.reduce_sum(x, 1)))
但是我收到了一个错误:
ValueError:1维输入
的缩小维度1无效
但是如果我设置axis = 0,我得到6.为什么会这样?
答案 0 :(得分:2)
您得到的错误是ValueError: Invalid reduction dimension 1 for input with 1 dimensions
。这几乎意味着如果你不能减少一维张量的维数。
对于N x M张量,设置轴= 0将返回1xM张量,设置轴= 1将返回Nx1张量。请考虑tensorflow文档中的以下示例:
# 'x' is [[1, 1, 1]
# [1, 1, 1]]
tf.reduce_sum(x) ==> 6
tf.reduce_sum(x, 0) ==> [2, 2, 2]
tf.reduce_sum(x, 1) ==> [3, 3]
答案 1 :(得分:0)
“请注意,选择张量中最后一个轴的一种方法是使用负索引(axis = -1)”