2017-10-15 3 views
0

Ich versuche, eine einfache CNN mit Tensorflow zu bauen. Das Problem ist, dass ich nicht in der Lage bin, eine einfache PNG-Datei zu lesen, um das CNN zu füttern.Lesen Sie eine PNG-Datei und Feed ein CNN Tensorflow

>>> filename = tf.constant("training/a1.png") 
>>> filename 
<tf.Tensor 'Const_1:0' shape=() dtype=string> 
>>> image_string = tf.read_file(filename) 
>>> image_string 
<tf.Tensor 'ReadFile_1:0' shape=() dtype=string> 
>>> image_decoded = tf.image.decode_png(image_string) 


>>> image_decoded 
<tf.Tensor 'DecodePng_1:0' shape=(?, ?, ?) dtype=uint8> 

Wie Sie auf dem obigen Code sehen können. Der tf.image.decode_png (image_string) gibt einen Tensor der Form unknow zurück.

Danke vladimir-bystricky! Ich hab es geschafft. Hier ist der Code, der anderen Leuten helfen kann.

>>> import tensorflow as tf 
>>> filename = tf.constant("training/a1.png") 
>>> image_string = tf.read_file(filename) 
>>> image_decoded = tf.image.decode_png(image_string) 
>>> shape = tf.shape(image_decoded) 
>>> sess = tf.Session() 
>>> print(sess.run(shape)) 
[360 360 4] 

Antwort

1

Es ist richtig, Verhalten, weil in Ihrem Code erstellen Sie nur eine Grafik, und TF wirklich nicht die PNG-Datei zu diesem Schritt lesen, aber nur schafft Operation, die es tun, wenn Sie Graph starten in die Sitzung. Ergebnisse der Operation ist Tensor mit unbekannter Form (in diesem Moment). Sie können die Größe in vordefinierten Größen ändern oder zuschneiden.

Verwandte Themen