张量流:如何创建一个与占位符形状相同的常量张量

tensorflow: how create an const tensor the same shape as a placeholder

我有一个输入占位符:

Y = tf.placeholder(dtype=tf.float32, shape=(None, n_outputs))

现在我想创建一个与 Y:

形状相同的常量
w = Y.get_shape()
zero = tf.constant(np.zeros(w), dtype=tf.float32)

错误return:

__index__ returned non-int (type NoneType)

为什么不直接构建与占位符形状相同的常量,这样应该可以。

zero = tf.constant(0, dtype=tf.float32, shape(none, n_outputs))

我认为是因为占位符没有提供任何数据,这就是您收到错误的原因

在另一个post中找到了答案

zero = tf.fill(tf.shape(Y), 0.0)

如果你想用零或一填充你的张量,你可以使用 tf.zeros_liketf.ones_like 方法作为 shorthand for tf.fill.

a = tf.constant([0, 1, 2, 3, 4])

a_zeros = tf.zeros_like(a)
a_zeros
>>> <tf.Tensor: shape=(5,), dtype=int32, numpy=array([0, 0, 0, 0, 0], dtype=int32)>