def training_inputs(self):
fps, labels = self._load_training_labelmap()
filepaths = tf.constant(fps)
labels = tf.constant(labels, dtype=tf.int32)
min_num_examples_in_queue = int(FLAGS.min_frac_examples_in_queue * len(fps))
filename_queue = tf.RandomShuffleQueue(len(fps), min_num_examples_in_queue, [tf.string, tf.int32],
name='training_filename_queue')
enqueue_op = filename_queue.enqueue_many([filepaths, labels])
qr = tf.train.QueueRunner(filename_queue, [enqueue_op])
tf.train.add_queue_runner(qr)
example_list = [self._read_and_preprocess_image_for_training(filename_queue) for _ in
xrange(FLAGS.num_consuming_threads)]
image_batch, label_batch = tf.train.shuffle_batch_join(
example_list,
batch_size=FLAGS.batch_size,
capacity=min_num_examples_in_queue + (FLAGS.num_consuming_threads + 2) * FLAGS.batch_size,
min_after_dequeue=min_num_examples_in_queue,
shapes=[[224, 224, 3], []],
name='training_example_queue'
)
return image_batch, util.encode_one_hot(label_batch, self.num_classes)
评论列表
文章目录