tensorflow:如何创建与占位符相同形状的const张量

时间:2017-12-06 12:43:17

标签: python tensorflow tensor

我有一个输入的占位符:

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

现在我想创建一个与Y:

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

错误返回:

__index__ returned non-int (type NoneType)

3 个答案:

答案 0 :(得分:6)

在另一篇文章中找到答案 tensorflow-constant-with-variable-size

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

答案 1 :(得分:1)

如果要用零或一填充张量,则可以使用tf.zeros_liketf.ones_like方法作为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)>

答案 2 :(得分:0)

为什么不用与占位符相同的形状来构建常量,这样的事情应该有效。

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

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