2016-11-07 5 views
6

Ich arbeite an einem einfachen Spielzeug-Beispiel in TensorFlow und ich bin in einen seltsamen Fehler geraten. Ich habe zwei Platzhalter wie folgt definiert:Wie füttere ich Tensorflow Platzhalter mit numpy Arrays?

x = tf.placeholder(tf.float32, shape=[None,2]) [two-parameter input] 

y_ = tf.placeholder(tf.float32, shape=[None,2]) [one-hot labels] 

Ich versuche später diese Platzhalter mit einem feed_dict wie definiert zu füttern:

feed_dict={x: batch[0].astype(np.float32), y_: batch[1].astype(np.float32)} 

Wo batch[0] und batch[1] sind beide numpy ndarrays der Größe (100,2) [verifiziert durch ihre jeweiligen Größen ausdrucken]

Wenn ich versuche, um das Modell zu laufen lasse, erhalte ich die Fehlermeldung:

"InvalidArgumentError: You must feed a value for placeholder tensor 'Placeholder' with dtype float"

verursacht durch meinen Platzhalter "x" wie oben definiert

Kann jemand sagen, was ich falsch mache? Ich habe online einige Beispiele durchgesehen und es scheint, als ob das funktionieren sollte ... Gibt es eine andere Möglichkeit, Platzhalter mit Werten aus numpigen Arrays zu versorgen?

Wenn es hilft, arbeite ich in Ubuntu, SCL und Python 2.7, und ich habe alle Standard-Numpy und Tensorflow-Pakete installiert.

+0

Um beim Debuggen zu helfen, können Sie allen Tensoren und Operationen einen Namen geben, z. indem du 'x = tf.placeholder (..., name = 'x')' tust. Die Fehlermeldungen sind dann viel weniger kryptisch. – sunside

+0

Ihr Code hätte funktionieren sollen, ich habe dasselbe in meiner Maschine gemacht, d. H. "Tf.placeholder" mit 'numpy.darray' vom gleichen Typ (' float32') füttern. Es würde helfen, wenn Sie die ganze Fehlermeldung geben würden. –

Antwort

4

Ohne Ihren gesamten Code ist es schwer, präzise zu beantworten. Ich habe versucht, das zu reproduzieren, was Sie in einem Spielzeugbeispiel beschrieben haben, und es hat funktioniert.

import tensorflow as tf 
import numpy as np 

x = tf.placeholder(tf.float32, shape=[None, 2]) 
y_ = tf.placeholder(tf.float32, shape=[None, 2]) 
loss = tf.reduce_sum(tf.abs(tf.sub(x, y_)))#Function chosen arbitrarily 
input_x=np.random.randn(100, 2)#Random generation of variable x 
input_y=np.random.randn(100, 2)#Random generation of variable y 

with tf.Session() as sess: 
    print(sess.run(loss, feed_dict={x: input_x, y_: input_y})) 
Verwandte Themen