1
我對Tensorflow非常陌生,所以我的問題聽起來很愚蠢,但我無法真正找到正確的解釋,所以在此處詢問。 我需要你的幫助,以瞭解在分佈式Tensorflow程序中如何進行數據的批處理或分配。在分佈式Tensorflow中批量處理數據
由於我們執行多個客戶端,基本具有相同的代碼,以獲得下一批:
batch_xs, batch_ys = mnist.train.next_batch(FLAGS.batch_size)
我不明白怎麼會變成這樣確保唯一一批非常工人。對我來說,好像將相同的數據發送給所有工作人員一樣。
在這裏,對我們閱讀next_batch因爲我們正在運行的兩個客戶JOB_TYPE =工人每次迭代這個示例腳本,無論是工人會看到相同的next_batch代碼。在這種情況下,請幫助我理解數據並行性如何工作。
with sv.prepare_or_wait_for_session(server.target, config=sess_config) as sess:
print("Worker %d: Session initialization complete." % FLAGS.task_index)
# Loop until the supervisor shuts down or 1000000 steps have completed.
step = 0
while not sv.should_stop() and step < 1000000:
# Run a training step asynchronously.
batch_xs, batch_ys = mnist.train.next_batch(FLAGS.batch_size)
print("FETCHING NEXT BATCH %d" % FLAGS.batch_size)
train_feed = {x: batch_xs, y_: batch_ys}
_, step = sess.run([train_op, global_step], feed_dict=train_feed)
if step % 100 == 0:
print("Done step %d" % step)
# Ask for all the services to stop.
sv.stop()
期待您的幫助。
非常感謝你的回覆。是的,我明白你的意思,但我不認爲這是數據並行,它結束時,我真的沒有看到通過分配我的工作負載的增益。相反,如果我可以給不同批次它們(這是保證跨工人不重複),我可以節省一些時間,因此一些好處。你同意還是我在這裏錯過了一些東西? – Gladiator