2017-11-23 2 views
2

Ich hatte in den letzten paar Tagen eine Menge Schwierigkeiten beim Versuch, Bilder von meinem Desktop in Tensorflow zu importieren. Ich habe mir die API angeschaut und nach etwas gesucht online tutorials, aber mein Glück war ziemlich niedrig und ich konnte nicht viel von dem verstehen, was ich gelesen habe. Meine Versuche, eine Funktion zum Importieren von Bildern aus dem Wenigen, das ich verstanden habe, zu erstellen, war nicht überraschend erfolglos. Das Folgende habe ich bisher gemacht. Nach dem Ausführen durch einen Debugger sehe ich, dass das Programm in der ersten Zeile hängen bleibt. Die Tensorflow-API sagt, dass ich ein Dateimuster oder einen 1D-Tensor von Dateimustern übergeben muss. Ist das nicht der Dateipfad, dem ich ein Dateimuster gegeben habe?Wie importiere ich mehrere Bilder über Tensorflow Python

def import_data(): 

    image_path = tf.train.match_filenames_once("C:\Users\ratno\Desktop\honest chaos\*.JPG") 
    filename_queue = tf.train.string_input_producer(image_path) 

    reader = tf.WholeFileReader() 

    _, content = reader.read(filename_queue) 
    image = tf.image.decode_jpeg(content, channels=1) 
    cropped_image = tf.image.resize_image_with_crop_or_pad(image, 3000, 3000) 
    reduced_image = tf.image.resize_images(cropped_image, [100, 100]) 
    modified_image = tf.transpose(tf.reshape(reduced_image, [10000, 1])) 

    return modified_image 

Der Code soll in einer Reihe von JPGs aus einem Ordner auf meinem Desktop und wandeln sie von RGB JPGs in Graustufen JPGs nehmen. Anschließend werden die Graustufen-JPGs verwendet und auf 3000x3000 Pixelgrößen zugeschnitten. Mit tf.resize_images können Sie sie weiter auf 100x100 Pixel reduzieren. Schließlich wird alles in Form eines 1x10000 geformten Tensors zurückgegeben.

Vielen Dank im Voraus. Und wenn es Vorschläge für andere Teile des Codes gibt, wäre ich sehr dankbar.

Antwort

0

Um mehrere Bilder in einem einzigen Aufruf von session.run zu lesen, rufen Sie einfach reader.read() mehrmals auf. Alternativ können Sie es einmal aufrufen und tf.train.batch verwenden, sobald Sie fertig sind, um ein Minibatch von Bildern zu erhalten.

Verwandte Themen