У меня проблема при списании предметов.Вот мой код:
input_queue = data_flow_ops.FIFOQueue(capacity=10000 ,
dtypes=[tf.string, tf.int64],
shapes=[(3,), (3,)],
shared_name=None, name=None)
enqueue_op = input_queue.enqueue_many([image_paths_placeholder, labels_placeholder])
filenames_image, label_image = input_queue.dequeue()
pfi = tf.Print(filenames_image, data=[input_queue.size(), filenames_image], message='This is how many items are left in q1: ')
filenames_sound, label_sound = input_queue.dequeue()
pfs = tf.Print(filenames_sound, data=[input_queue.size(), filenames_sound], message='This is how many items are left in q2: ')
В сеансе "image" и "son" представляют собой список путей (строка):
while h < 50 :
sess.run(enqueue_op, {image_paths_placeholder: image, labels_placeholder: labelI})
sess.run(enqueue_op, {image_paths_placeholder: son, labels_placeholder: labelS}
filename_i,filename_s,_,_,=sess.run([filenames_image,filenames_sound,pfi,pfs],feed_dict=feed_dict)
А иногда я незнаю почему, как и когда, очередь не делает то, что я хочу.
Я хочу
This is how many items are left in q2: [1][I1,I2,I3]
This is how many items are left in q1: [0][S1,S2,S3]
Но я часто получаю другие вещи,
This is how many items are left in q2: [2][S1,S2,S3]
This is how many items are left in q1: [2][I1,I2,I3]
Или даже
This is how many items are left in q2: [2][I1,I2,I3]
This is how many items are left in q1: [0][S1,S2,S3]
This is how many items are left in q2: [1][S1,S2,S3]
This is how many items are left in q1: [1][I1,I2,I3]
Если бы кто-то мог объяснить, как работает очередь и почему не работает мой код, это было бы здорово!
Заранее спасибо.