张量流:如何创建一个与占位符形状相同的常量张量
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_like
和 tf.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)>
我有一个输入占位符:
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_like
和 tf.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)>