def input_pipeline(filenames, batch_size, num_epochs=None, image_size=142, crop_size=256):
with tf.device('/cpu:0'):
filenames = tf.train.match_filenames_once(filenames)
filename_queue = tf.train.string_input_producer(filenames, num_epochs=num_epochs, shuffle=True)
reader = tf.WholeFileReader()
filename, value = reader.read(filename_queue)
image = tf.image.decode_jpeg(value, channels=3)
processed = tf.image.resize_images(
image,
[image_size, image_size],
tf.image.ResizeMethod.BILINEAR )
processed = tf.image.random_flip_left_right(processed)
processed = tf.random_crop(processed, [crop_size, crop_size, 3] )
# CHANGE TO 'CHW' DATA_FORMAT FOR FASTER GPU PROCESSING
processed = tf.transpose(processed, [2, 0, 1])
processed = (tf.cast(processed, tf.float32) - 128.0) / 128.0
images = tf.train.batch(
[processed],
batch_size = batch_size,
num_threads = NUM_THREADS,
capacity=batch_size * 5)
return images
评论列表
文章目录