2017-06-28 5 views
0

Ich benutze Windows 10 Pro, Visual Studio 10, Python 3.6.2rc1 und Tensorflow. Ich versuche ein Convolutional Neural Network (CNN) aufzubauen, um Bilder von Früchten mit Tensorflow zu klassifizieren. Ich habe nur zwei Früchte, Ananas und Banane. Es ist weniger als eine Woche, ich arbeite mit Python und das ist meine erste Erfahrung.Wie man einen Datensatz von Bildern ausbildet, um tensorflow zu trainieren und zu testen

Ich habe 2 Ordner erstellt, einen für das Training von Bildern mit Bildern derselben Größe im JPG-Format und einen anderen für Testbilder auch im JPG-Format. Ich habe auch zwei Txt für Training und einen für Test. Als ein Beispiel ist, Daten in meinem Trainingssatz wie folgt aus:

image001 banana 

image002 pineapple 

Ich weiß nicht, wie diese Daten in ein Probennetz einspeisen. Ich benutzte das genaue Netzwerk von

https://github.com/tensorflow/tensorflow/blob/r1.2/tensorflow/examples/tutorials/layers/cnn_mnist.py

und das Tutorial an tensorflow für beide Lesen von Daten lesen und die Erklärung des obigen Codes an:

https://www.tensorflow.org/tutorials/layers

Mein größtes Problem ist, ich don‘ Ich verstehe, wie MNIST in dieses Netzwerk eingespeist wird und konnte nicht wirklich herausfinden, was man in programmers_guide/reading_data an der Tensorflow-Site schreibt.

Ich würde mich sehr freuen, wenn Sie mir konkretere Anweisungen geben können, was ich tun muss, um die Bilder dieser beiden Ordner und die beiden Textdateien in das oben genannte Netzwerk zu leiten. Auch da ich noch ziemlich neu bei Python bin, bin ich noch nicht sehr damit vertraut, zu wissen, was ich dafür importieren muss. Vielen Dank im Voraus.

Antwort

0

Dies sind die Zeilen, in denen die MNIST Daten eingespeist wird:

# Load training and eval data 
mnist = learn.datasets.load_dataset("mnist") 
train_data = mnist.train.images # Returns np.array 
train_labels = np.asarray(mnist.train.labels, dtype=np.int32) 
eval_data = mnist.test.images # Returns np.array 
eval_labels = np.asarray(mnist.test.labels, dtype=np.int32) 

Die learn.datasets.load_dataset ist eine Komfortfunktion, die die MNIST Daten in die notwendigen Variablen lädt, die dann für die Ausbildung hier verwendet:

mnist_classifier.fit(
    x=train_data, 
    y=train_labels, 
    batch_size=100, 
    steps=20000, 
    monitors=[logging_hook]) 

Sie müssen den ersten Codeblock anpassen, um Ihre Bilder in train_data und die entsprechenden Etiketten zu train_labels laden.

Nur eine Empfehlung: Beginnen Sie mit Keras als High-Level-API oben auf Tensorflow. Es ist viel einfacher (meiner Meinung nach) und viel flexibler.

Dieses Tutorial von dem Hersteller von Keras könnte ein sehr guter Ausgangspunkt für Sie sein: https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html

Es ist genau über zwei Klassen von Bildern (Katzen vs Hunden) zu klassifizieren.

Verwandte Themen