def setup_test_inputs(sess, filenames, image_size=None, capacity_factor=3):
if image_size is None:
image_size = FLAGS.sampleSize
# Read each JPEG file
reader = tf.WholeFileReader()
filename_queue = tf.train.string_input_producer(filenames)
key, value = reader.read(filename_queue)
channels = 3
image = tf.image.decode_jpeg(value, channels=channels, name="dataset_image")
image.set_shape([None, None, channels])
crop_size = 128
image = tf.random_crop(image, [crop_size, crop_size, 3])
image = tf.reshape(image, [1, crop_size, crop_size, 3])
image = tf.cast(image, tf.float32) / 255.0
if crop_size != image_size:
image = tf.image.resize_area(image, [image_size, image_size])
# The feature is simply a Kx downscaled version
K = 4
downsampled = tf.image.resize_area(image, [image_size // K, image_size // K])
feature = tf.reshape(downsampled, [image_size // K, image_size // K, 3])
label = tf.reshape(image, [image_size, image_size, 3])
# Using asynchronous queues
features, labels = tf.train.batch([feature, label],
batch_size=FLAGS.batch_test_size,
num_threads=4,
capacity=capacity_factor * FLAGS.batch_test_size,
name='labels_and_features')
tf.train.start_queue_runners(sess=sess)
return features, labels
评论列表
文章目录