培训网络,希望能够将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)
,这也不起作用,同样的错误。
有什么想法吗?
答案 0 :(得分:2)
只需为占位符赋予形状[]
,因为它是常量:
self.beta1 = tf.placeholder(tf.float32, shape=[])