2017-10-15 92 views
0

我想用Tensorflow建立一個簡單的CNN。問題是我無法讀取一個簡單的.png文件來提供CNN。閱讀PNG文件並喂一個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> 

正如你可以看到上面的代碼。 tf.image.decode_png(image_string)返回未知形狀的張量。

謝謝vladimir-bystricky!我知道了。這是它可以幫助別人的代碼。

>>> 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] 

回答

1

這是正確的行爲,因爲在你的代碼,你只創建一個圖表,TF並不真的讀這一步PNG文件,但只創建操作,這將做到這一點,當你啓動圖會議。手術結果是未知形狀的張量(在這一刻)。您可以調整大小或將其裁剪爲預定義大小。