我有一個圖像目錄和一個單獨的文件,將圖像文件名匹配到標籤。所以圖像的目錄中有像「火車/ 001.JPG」和標記文件看起來像文件:從張量流中的文件隊列訪問文件名
train/001.jpg 1
train/002.jpg 2
...
我可以很容易地通過創建從一個文件名加載開fileQueue從張量流圖像目錄圖片:
filequeue = tf.train.string_input_producer(filenames)
reader = tf.WholeFileReader()
img = reader.read(filequeue)
但我不知道如何將這些文件與標籤文件中的標籤結合在一起。看來我需要在每一步訪問隊列中的文件名。有沒有辦法讓他們?此外,一旦我有文件名,我需要能夠查找由文件名鍵入的標籤。這看起來像一個標準的Python字典不會工作,因爲這些計算需要發生在圖中的每一步。
好吧,那正是我所需要的!我沒有想過只是在python中匹配這兩個,並事先對它進行了洗牌 - 我只是試圖使用加載該文件的CIFAR教程中的代碼,然後再進行洗牌。 – bschreck
其實我只是試了一下,我覺得我的文件名列表太大了。使用此代碼只會掛起,但在減少列表中元素的數量時起作用。順便提一下,有87,000個文件。 – bschreck
有趣 - 它不應該掛,真的。你有沒有增加randomshufflequeue max到足夠大來處理你放入它的東西的數量?我會告誡說,我從來沒有嘗試過一個很大的隨機洗牌隊列。 :)如果您想節省內存,您可以將文件重寫爲csv,使用傳送到csv解碼器的textlinereader,然後將它們放入隊列中,使用queuerunner保持運行。儘管只有大約1MB的文件名,但很多工作。 – dga