【发布时间】:2017-04-11 14:50:24
【问题描述】:
训练网络,希望能够将 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),还是不行,同样的错误。
有什么想法吗?
【问题讨论】:
-
一年多后,我遇到了同样的问题,然后记得我以前问过这个问题。多么奇怪的设计决定。