2016-07-13 37 views
1

我想讀取存儲在另一個目錄('all_image_dir')內的子目錄中的所有jpg。子目錄的名稱是像「001」,「002」等Tensorflow:閱讀各種目錄中的jpg

這不是閱讀所有的JPG文件在某個目錄中的問題,例如「all_image_dir/001,使用:

filename_queue = tf.train.string_input_producer(tf.train.match_filenames_once('all_image_dir/001/*.jpg')) 

要訪問所有的JPG文件中的所有目錄,我想是這樣的:

filename_queue = tf.train.string_input_producer(tf.train.match_filenames_once('all_image_dir/*/*.JPG')) 

但是,這是不工作... - 我該怎麼辦呢?

回答

2

pattern模式參數tf.train.match_filenames_once是相當有限的。對於您的特定情況,假設您的子目錄是001,002,... 020。你可以做到以下幾點,以實現爲'all_image_dir/*/*.JPG'同樣的效果:

在終端

ln -s folder1 1 
ln -s folder2 2 
... 
ln -s folder20 20 

獲取文件001,002等分別然後:

all_files = [tf.train.match_filenames_once(
    'all_image_dir/%03d/*' % x) for x in range(20)] 
# Concatenate the list of all the files before passing to string_input_producer 
filename_queue = tf.train.string_input_producer(tf.concat(0, all_files)] 
+0

非常感謝!這工作得很好... – meridius

0

同時,我進一步發現(子目錄)目錄:例如'all_image_dir/101/various_name_dir/*。jpg。不幸的是,這些目錄沒有以簡單的方式命名(分別枚舉),但有不同的名稱... - 是否有一種通用的方法來處理這種情況?

+0

只想提及,我已經通過使用ubuntu終端將所有jpg移動到一個目錄。實際上,問題解決了... – meridius

+0

如果您沒有足夠的圖像溢出基礎FS的文件/文件夾的容量...否則,它不會工作... –