У меня возникла проблема с чтением изображений tensorflow при использовании очереди. Пожалуйста, дайте мне знать, какую ошибку я делаю. Ниже приведен код.OutOfRangeError (см. Выше для отслеживания): FIFOQueue '_1_batch/fifo_queue' закрыт и имеет недостаточные элементы (запрошенный 32, текущий размер 0)
import tensorflow as tf
slim = tf.contrib.slim
from tensorflow.python.framework import ops
import glob
filelist = glob.glob("/*.png")
filelist[0]
imagelist = ops.convert_to_tensor(filelist)
#Makes an input queue
input_queue = tf.train.slice_input_producer([imagelist],num_epochs = 2, shuffle = True, capacity = 64*3072)
Я использовал разные значения емкости, но ни один из них работал
def read_images_from_disk(input_queue):
file_contents = tf.read_file(input_queue[0])
example = tf.image.decode_png(file_contents, channels=3)
return example
image = read_images_from_disk(input_queue)
image.set_shape([28,28,3])
image_batch = tf.train.batch([image],batch_size = 32)
with tf.Session() as sess:
sess.run(tf.initialize_all_variables())
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(coord=coord)
for i in range(20):
print (sess.run(image_batch))
coord.request_stop()
coord.join(threads)
sess.close()
OutOfRangeError (see above for traceback): FIFOQueue '_1_batch/fifo_queue'
is closed and has insufficient elements (requested 32, current size 0)
Пожалуйста, помогите мне
Не могли бы вы попытаться запустить очереди за пределами сеанса? – drpng
Нет. Это приводит к следующей ошибке. ValueError: не удается запустить очередь очередей: сеанс по умолчанию не зарегистрирован. Используйте 'с sess.as_default()' или передайте явный сеанс в tf.start_queue_runners (sess = sess). –
Извините, я должен спросить - вам нужно как минимум 32 изображения, чтобы иметь полную 32 партии. У вас достаточно изображений в этом каталоге? – drpng