2017-08-24 3 views
1

Fütterung habe ich diesen Platzhalter:TensorFlow InvalidArgumentError wenn ein Platzhalter

__y = tf.placeholder(tf.int32) 

Und dann verwende ich es in den folgenden Code:

self.session.run(tf.global_variables_initializer()) 
self.cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=self.__y, logits=self.super_source)) 
opt = tf.train.GradientDescentOptimizer(0.1).minimize(self.cost) 
not_important, c = self.session.run(opt, feed_dict={labels: label}) 

Und ich bekomme diese Fehlermeldung:

InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'Placeholder' with dtype int32 
    [[Node: Placeholder = Placeholder[dtype=DT_INT32, shape=<unknown>, _device="/job:localhost/replica:0/task:0/gpu:0"]()]] 

Ich verstehe nicht den Fehler, den ich bekomme und so kann ich mein Problem nicht lösen. Kann mir jemand wenigstens erklären, was passiert?

Antwort

0

Das Problem war dumm, ich war nicht füttern __y:

not_important, c = self.session.run([optimizer, self.cost], feed_dict={self.__labels: label, self.__y: 3.0}) 
0

Wenn ich Ihr Beispiel umschreiben als:

import tensorflow as tf 

__y = tf.placeholder(tf.int32) 

with tf.Session() as session: 
    session.run(__y) 

ich den gleichen Fehler erreichen:

InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'Placeholder' with dtype int32 
    [[Node: Placeholder = Placeholder[dtype=DT_INT32, shape=<unknown>, _device="/job:localhost/replica:0/task:0/cpu:0"]()]] 

hier Das Problem ist, dass, wie Sie keinen expliziten Namen für ‚__y‘ hat, ist vorsah bekam den Standardnamen 'Placeholder', so sollte es wie folgt zugeführt werden:

Verwandte Themen