Мне интересно, в каком порядке подавать данные очереди TensorFlow (в частности, когда у вас есть список тензоров, из которых они питаются).Порядок подачи очереди TensorFlow
Например, в очереди, как это:
fifo_q = tf.FIFOQueue(
capacity=10,
dtypes=[tf.string, tf.string]
shapes=[[], []])
Если я епдиеие эти списки:
sess = tf.Session()
l = [str(i+1) for i in range(10)]
x = tf.constant(l)
y = tf.constant(l)
eq = fifo_q.enqueue_many([x, y])
dq1, dq2 = fifo_q.dequeue()
sess.run(eq)
Я ожидал бы dq1
, dq2
быть '1', '1' на первый запуск, затем «2», «2» и т. д. Но это не то, что происходит. Вместо этого, когда я запускаю следующий код, я получаю «1», «2», а затем «3», «4» и так далее, пока dq2
не достигнет 10, а затем очередь закроется.
for x in range(6):
print('dq1:', sess.run(dq1))
print('dq2:', sess.run(dq2))
Почему это происходит вместо того, что я ожидаю? Я использую это, чтобы сопоставить примеры обучения с ярлыками, но некоторые примеры обучения и ярлыки пропущены/отключены. Является лучшим решением только для чередования имен файлов в одной очереди? В любом случае, я хотел бы понять это поведение.
Любая помощь приветствуется.
Спасибо за четкое объяснение! – mgray