批處理看起來比feed_dicts更清潔,所以我想了解Tensorflow中的批處理。Tensorflow批處理參數
下面的代碼塊是否會在批處理中創建32個相同的圖像,然後將其送入隊列?
# Creates batches of 32 images and 32 labels.
image_batch, label_batch = tf.train.shuffle_batch(
[single_image, single_label],
batch_size=32,
num_threads=4,
capacity=50000,
min_after_dequeue=10000)
一點上下文:我目前有一個文件包含大約5萬行。我使用tf.train.string_input_producer
和tf.decode_csv
來讀取CSV行,但很困惑,如何提供給tf.train.shuffle_batch
作爲參數,各行或包含從文件讀取的所有行的張量。
感謝您的回覆;我仍然對'tf.train.shuffle_batch()'從哪裏繪製32個不同的圖像感到困惑。在原始文章的代碼片段中,根據提供給'tf.train.shuffle_batch()'的參數判斷,我沒有看到它能夠訪問'single_image'之外的數據。 – Eweler
會發生什麼事是,TensorFlow評估'single_image'和'single_label'多次(在一個單獨的線程,通過'tf.train.start_queue_runners()'創建),並增加了這些來這裏面'tf.train.shuffle_batch創建隊列( )'。因此,如果'single_image'和'single_label'在每次評估時都有不同的值(例如,因爲它們是'ReaderBase.read()'op)的結果),那麼結果中會得到不同的圖像。如果'single_image'總是評估爲相同的值(例如,因爲它是一個常量),那麼您將獲得同一圖像的32份副本。 – mrry