2016-11-27 2 views
1

네트워크 훈련 "initial_value 지정한 모양이 있어야합니다"인수로 베타 매개 변수를 통과 할 수 있기를 원하기 때문에 그것에게 자리를 만들어

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)을 사용해 보았습니다. 그 오류는 작동하지 않습니다. 동일한 오류가 발생합니다.

아이디어가 있으십니까?

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

년 동안 나중에 저도 같은 문제가 발생하고 내가 전에 그것에 대해 요청했습니다 기억 : 그것은 상수이기 때문에 – Nimitz14

답변

2

그냥, 당신의 자리에 모양 []을 제공합니다. 기괴한 디자인 결정.
+0

감사합니다. – Nimitz14

+1

덧붙여 말하자면,'shape = None'을 추가하는 것은 효과가 없습니다. 왜냐하면 인수가 지정되지 않았을 때 파이썬은 이미'shape'을'None'으로 가정하기 때문입니다. –

+0

물론. 그러나'placeholder '가 모양으로 선언 될 필요가 없기 때문에 그것은 처음부터 불평해서는 안된다. 나는 단지 그것을하려고 노력했다. – Nimitz14