2016-08-16 3 views
0

Ich bin ein Anfänger in Tensorflow. Ich habe einen Datensatz mit 43 Eingängen und einem Ausgang. Ich werde einen Mini-Batch der Daten erstellen, um Deep Learning zu betreiben.Batching für einen Nicht-Bilddatensatz mit Tensorflow

Hier sind meine Eingaben:

x = tf.placeholder(tf.float32, shape=[None, 43]) 
y_ = tf.placeholder(tf.float32, shape=[None]) 

, das ich sie aus einer Matlab-Datei bin Fütterung suchen:

train_mat = train_mat["binary_train"].value 
feed_dict={x:Train[0:100,0:43] , y_:Train[0:100,43]} 

Ich bin Gonna Zufall Charge hat stattdessen 0 von Aufrufen: 100 Datensätze. Ich sah

tf.train.batch 

aber, ich konnte nicht erkennen, wie es funktioniert. Könnten Sie mir bitte sagen, wie ich das machen kann?

Danke, Afshin

Antwort

0

Die tf.train.batch und andere sind ähnliche Verfahren, die auf Warteschlangen, die asynchron beste Lösung in parallele Laden riesige Menge an Proben. Das Dokument here beschreibt die grundlegende Verwendung von Warteschlangen in TensorFlow. Es gibt auch einen anderen Blog, der how to read data from files beschreibt.

Wenn Sie Warteschlangen verwenden möchten, ist placeholder und feed_dict nicht erforderlich.

Für Ihre speziellen Fall vielleicht die mögliche Lösung wie folgt aussehen:

from tensorflow.python.training import queue_runner 

# capacity and min_after_dequeue could be set according to your case 
q = tf.RandomShuffleQueue(1000, 500, tf.float32) 
enq = q.enqueue_many(train_mat) 
queue_runner.add_queue_runner(queue_runner.QueueRunner(q, [enq])) 

deq = q.dequeue() 
input = deq[:, 0:43] 
label = deq[:, 43] 

x, y_ = tf.train.batch([input, label], 100) 

# then you can use x and y_ directly in inference and train process. 

oben-Code auf einige Hypothese beruht, weil fraglichen Informationen zur Verfügung gestellt nicht ausreichend ist. Ich hoffe jedoch, dass der Code Sie auf irgendeine Weise inspirieren könnte.

+0

Es gibt thw Fehler: AttributeError: 'Modul' Objekt hat kein Attribut 'Zug'. Eine Frage, warum hast du 1000 und 500 in RandomShuffleQueue ausgewählt? –

+0

Entschuldigung für den Tippfehler. Es sollte "tf.nn.batch" statt "tf.nn.train" sein. –

+0

Agian sagt, dass AttributeError: 'Modul' Objekt hat kein Attribut 'Batch'. –

Verwandte Themen