我有一个输入的占位符:
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)
答案 0 :(得分:6)
在另一篇文章中找到答案 tensorflow-constant-with-variable-size
zero = tf.fill(tf.shape(Y), 0.0)
答案 1 :(得分:1)
如果要用零或一填充张量,则可以使用tf.zeros_like
和tf.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))
我认为因为占位符没有提供任何数据,这就是您收到错误的原因