2017-05-31 9 views
0

Ich habe vor kurzem angefangen, mit Tensor Flow in Deep Learning zu kommen. Ich habe viele Online-Ressourcen gelesen und einen Udacity-Kurs für Anfänger absolviert. Ich habe viele Grundprinzipien des Deep Learning erworben. Aber eine Sache, um die ich mich gerade bemühe, war nicht das Thema einer dieser Ressourcen. Ich habe keine Ahnung, wie ich meine eigenen etikettierten Daten (CSV-Format) in mein Python-Programm bekommen kann, um mein Netz zu trainieren. Ich bin über this posting gestolpert und habe begonnen, das Input Pipe so zu implementieren, wie es der Post gezeigt hat und es hat so weit funktioniert. Als ich versuchte, mein Modell zu trainieren, indem meine Fütterung Funktionen und Etiketten mitSo erhalten Sie CSV-Daten in TensorFlow

sess.run(optimizer, feed_dict={ 
     x: features, 
     y: labels, 
    }) 

TF wirft einen Fehler

TypeError: The value of a feed cannot be a tf.Tensor object. Acceptable feed values include Python scalars, strings, lists, numpy ndarrays, or TensorHandles. 

X und Y sind als Platzhalter definiert und die Sitzung Aufruf wird (tf.global_variables_initializer)

x = tf.placeholder(tf.float32, shape=[10, batch_size]) 
y = tf.placeholder(tf.float32) 

Aber die von zurückgegebenen Objekte tf.train.shuffle_batch sind Tensors richtig? Sollte/kann ich sie wieder in einen gültigen Datentyp umwandeln wie ein Numpy Array oder gibt es eine andere, effizientere Möglichkeit, meine Daten zu lesen.

+0

Hat meine Antwort das Problem gelöst? – hars

+0

@hars Ja, der erste Ansatz funktioniert jetzt. Ich habe deine zweite Lösung ausprobiert, bin mir aber nicht sicher, wie das funktionieren soll. – MoVo99

Antwort

0

Sie können es auf zwei Arten tun.

  1. Mit feed_dict:

    features_numpy,labels_numpy = sess.run([features,labels]) 
    sess.run(optimizer, feed_dict={ x: features_numpy,y: labels_numpy}) 
    

    die Sitzung starten, numpy Werte für Merkmale und Etiketten bekommen und ihn an das Modell feed_dict verwenden. Dies ist jedoch ineffizient, weil Sie TF-Daten nach Numpy kopieren und sie erneut an TF übergeben. Folgen Sie für einen effizienten Weg.

  2. Vermeiden feed_fict

    Verwenden feed_dict und Platzhalter nicht. Verbinden Sie Features und Beschriftungsknoten direkt mit dem Modell. Oder tut dies

    x = features 
    y = labels 
    

    Do sess.run (model_output/Verlust/Genauigkeit) Prognosen zu bekommen oder das Modell zu trainieren.

Ich hoffe, das hilft.

Verwandte Themen