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

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


>>> 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和避免此错误的正确方法是什么?


函数式编程
浏览 203回答 1
1回答

动漫人物

看起来您需要为 的axis参数指定一个值expand_dims。默认值None似乎会导致您遇到的错误。这有点奇怪,因为默认参数通常会导致某种合理的默认行为......也许这是一个错误。您的代码应该与y = tf.expand_dims(x, axis=0). 这将导致[1, 3]您的示例中的形状为,允许您之后平铺。另一种选择是y = x[tf.newaxis, :]它还添加了一个轴。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python