使用expand_dims时“尝试将'dim'转换为张量并失败”

时间:2018-12-09 01:11:15

标签: python tensorflow

我希望以下代码产生相应的张量

>>> A = tf.range(3)
>>> B = tf.tile(tf.expand_dims(A), [4,1])
>>> print(tf.Session().run(B))

[[0,1,2],
 [0,1,2],
 [0,1,2],
 [0,1,2]]

但是,这将导致ValueError。下面是重现该问题的一种简便方法

>>> import tensorflow as tf
>>> x = tf.constant([0,1,2])
>>> y = tf.expand_dims(x)

ValueError: Tried to convert 'dim' to a tensor and failed. Error: None values not supported.

使用expand_dims并避免此错误的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

看起来您需要为axis的{​​{1}}参数指定一个值。默认值为expand_dims,这似乎会导致您收到错误。这有点奇怪,因为默认参数通常应该导致某种合理的默认行为……也许这是一个错误。

您的代码应与None一起使用。在您的示例中,这将导致形状为y = tf.expand_dims(x, axis=0),然后允许您平铺。另一个选择是[1, 3],它还会添加一个轴。