为优化器传递占位符会导致错误“initial_value必须指定形状”

时间:2016-11-27 22:55:31

标签: tensorflow placeholder

培训网络,希望能够将beta1参数作为参数传递,从而使其成为占位符

self.beta1 = tf.placeholder(tf.float32)

几行之后,此行发生错误

self.train_adam = tf.train.AdamOptimizer(self.eta, beta1=self.beta1, epsilon=1e-15).minimize(self.cost_m)

错误: ValueError: initial_value must have a shape specified: Tensor("Placeholder_5:0", dtype=float32)

beta1=self.beta1结果导致错误消失,因此错误必须与此有关。

我不知道为什么会发生这种情况,因为placeholders不需要指定形状。我已经尝试使用self.beta1 = tf.placeholder(tf.float32, shape=None),这也不起作用,同样的错误。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

只需为占位符赋予形状[],因为它是常量:

self.beta1 = tf.placeholder(tf.float32, shape=[])