ValueError:具有1个维度的输入的缩减维度1无效

2024-04-24 04:08:23 发布

您现在位置:Python中文网/ 问答频道 /正文

函数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: Invalid reduction dimension 1 for input with 1 dimensions

但如果我把轴设为0,我得到6。这是为什么?


Tags: 函数run代码元素reduce参数inittf
1条回答
网友
1楼 · 发布于 2024-04-24 04:08:23

您得到的错误是ValueError: Invalid reduction dimension 1 for input with 1 dimensions。这几乎意味着如果你不能降低一维张量的维数。

对于N x M张量,设置axis=0将返回1xM张量,设置axis=1将返回N x 1张量。请考虑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]

相关问题 更多 >