Je reçois cette erreur pour le code mentionné ci-dessous. Merci de m'aider avec ça. Ce code imprime les variables nombre de lots chaque fois que j'exécute ce code. Je suis incapable de comprendre l'erreur.Erreur dans le pipeline d'entrée utilisant des files d'attente dans tensorflow
OutOfRangeError (voir ci-dessus pour traceback): FIFOQueue '_2_batch/fifo_queue' est fermée et présente des éléments insuffisants (demande 15, la taille actuelle 0) [[Noeud: lot = QueueDequeueManyV2 [component_types = [DT_FLOAT] , timeout_ms = -1, _device = "/ job: localhost/réplique: 0/tâche: 0/cpu: 0"] (lot/fifo_queue, lot/n)]]
import tensorflow as tf
import numpy as np
import os
batch_size = 16
min_queue = 256
def load_image():
length = calculate_size("./Coco_subset_5356")
names = tf.train.match_filenames_once("./Coco_subset_5356/*.jpg")
# Extracted names from the file
filename_queue = tf.train.string_input_producer(names)
#Initialised the File reader
reader = tf.WholeFileReader()
key, value = reader.read(filename_queue)
my_img = tf.image.decode_jpeg(value, channels = 3)
my_img = tf.image.resize_images(my_img, [256,256])
my_img.set_shape((256,256,3))
print(length)
images = tf.train.batch(
[my_img],
batch_size=batch_size,
num_threads=1,
capacity=min_queue + 3*batch_size)
print(images)
with tf.Session() as sess:
#sess.run(init_op)
tf.local_variables_initializer().run()
#print(tf.get_collection(tf.GraphKeys.LOCAL_VARIABLES))
#For coordination between queue runner and the reader
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(coord = coord)
for j in range(length/batch_size):
#optimizer.run(feed_dict={input_batch: images[i])
x = sess.run(images)
print(j)
print(x.shape)
coord.request_stop()
coord.join(threads)
def calculate_size(img_dir):
file = []
for subdir, dirs, files in os.walk(img_dir):
for i in files:
i = os.path.join(img_dir, i)
file.append(i)
length = len(file)
return length
load_image()
J'ai eu un problème similaire et dans mon cas, certaines images n'étaient pas correctement décodées (dans mon jeu de données j'avais des images 1x1 pixels qui ont réussi à passer à travers le processus de filtrage ..). Êtes-vous certain * tous * que vos images peuvent être correctement ouvertes et décodées en tant que fichiers jpg? (Ils ne doivent pas non plus être tronqués, le tensorflow par défaut produira une erreur lors du traitement des images tronquées) – GPhilo
Quel est le nombre de fichiers * .jpg dans le répertoire? Est-ce un multiple de 15? Que faire si vous définissez 'allow_smaller_final_batch = True' dans la méthode' tf.train.batch'? – npf
Aussi, cela vous dérangerait-il d'éditer votre question pour rendre l'erreur plus lisible (par exemple en utilisant la marque>)? – npf