Example #1
0
def inputs(eval_data):
    """Construct input for CIFAR evaluation using the Reader ops.
	Args:
		eval_data: bool, indicating if one should use the train or eval data set.
	Raises:
		ValueError: if no data_dir
	Returns:
		images: Images. 4D tensor of [batch_size, IMAGE_SIZE, IMAGE_SIZE, 3] size.
		labels: Labels. 1D tensor of [batch_size] size.
	"""
    filename = os.path.join("data", "test.tfrecords")

    num_examples_per_epoch = NUM_EXAMPLES_PER_EPOCH_FOR_EVAL

    # Create a queue that produces the filenames to read.
    filename_queue = tf.train.string_input_producer([filenames])
    # Read examples from files in the filename queue.
    image, label = cifar10_input.read_and_decode(filename_queue)
    reshaped_image = tf.cast(image, tf.float32)

    height = IMAGE_SIZE
    width = IMAGE_SIZE
    # Image processing for evaluation.
    # Crop the central [height, width] of the image.
    resized_image = tf.image.resize_image_with_crop_or_pad(reshaped_image, width, height)

    # Subtract off the mean and divide by the variance of the pixels.
    float_image = tf.image.per_image_whitening(resized_image)
    # Ensure that the random shuffling has good mixing properties.
    min_fraction_of_examples_in_queue = 0.4
    min_queue_examples = int(num_examples_per_epoch * min_fraction_of_examples_in_queue)
    # Generate a batch of images and labels by building up a queue of examples.

    return _generate_image_and_label_batch(float_image, label, min_queue_examples)
Example #2
0
def distorted_inputs():
	"""Construct distorted input for CIFAR training using the Reader ops.
	Raises:
		ValueError: if no data_dir
	Returns:
		images: Images. 4D tensor of [batch_size, IMAGE_SIZE, IMAGE_SIZE, 3] size.
		labels: Labels. 1D tensor of [batch_size] size.
	"""
	filename = os.path.join('data', 'train.tfrecords')
	# Create a queue that produces the filenames to read.
	filename_queue = tf.train.string_input_producer([filename])

	# Read examples from files in the filename queue.
	image, label = cifar10_input.read_and_decode(filename_queue)
	reshaped_image = tf.cast(image, tf.float32)
	height = IMAGE_SIZE
	width = IMAGE_SIZE

	# Image processing for training the network. Note the many random
	# distortions applied to the image.
	# Randomly crop a [height, width] section of the image.
	distorted_image = tf.image.random_crop(reshaped_image, [height, width])

	# Randomly flip the image horizontally.
	distorted_image = tf.image.random_flip_left_right(distorted_image)
	# Because these operations are not commutative, consider randomizing
	# randomize the order their operation.
	distorted_image = tf.image.random_brightness(distorted_image,
											   max_delta=63)
	distorted_image = tf.image.random_contrast(distorted_image,
											 lower=0.2, upper=1.8)
	# Subtract off the mean and divide by the variance of the pixels.
	float_image = tf.image.per_image_whitening(distorted_image)
	# Ensure that the random shuffling has good mixing properties.
	min_fraction_of_examples_in_queue = 0.4
	min_queue_examples = int(NUM_EXAMPLES_PER_EPOCH_FOR_TRAIN *
						   min_fraction_of_examples_in_queue)

	print ('Filling queue with %d CIFAR images before starting to train. '
		 'This will take a few minutes.' % min_queue_examples)
	# Generate a batch of images and labels by building up a queue of examples.
	return _generate_image_and_label_batch(float_image, label,
										 min_queue_examples)
Example #3
0
def distorted_inputs():
    """Construct distorted input for CIFAR training using the Reader ops.
	Raises:
		ValueError: if no data_dir
	Returns:
		images: Images. 4D tensor of [batch_size, IMAGE_SIZE, IMAGE_SIZE, 3] size.
		labels: Labels. 1D tensor of [batch_size] size.
	"""
    filename = os.path.join('data', 'train.tfrecords')
    # Create a queue that produces the filenames to read.
    filename_queue = tf.train.string_input_producer([filename])

    # Read examples from files in the filename queue.
    image, label = cifar10_input.read_and_decode(filename_queue)
    reshaped_image = tf.cast(image, tf.float32)
    height = IMAGE_SIZE
    width = IMAGE_SIZE

    # Image processing for training the network. Note the many random
    # distortions applied to the image.
    # Randomly crop a [height, width] section of the image.
    distorted_image = tf.image.random_crop(reshaped_image, [height, width])

    # Randomly flip the image horizontally.
    distorted_image = tf.image.random_flip_left_right(distorted_image)
    # Because these operations are not commutative, consider randomizing
    # randomize the order their operation.
    distorted_image = tf.image.random_brightness(distorted_image, max_delta=63)
    distorted_image = tf.image.random_contrast(distorted_image,
                                               lower=0.2,
                                               upper=1.8)
    # Subtract off the mean and divide by the variance of the pixels.
    float_image = tf.image.per_image_whitening(distorted_image)
    # Ensure that the random shuffling has good mixing properties.
    min_fraction_of_examples_in_queue = 0.4
    min_queue_examples = int(NUM_EXAMPLES_PER_EPOCH_FOR_TRAIN *
                             min_fraction_of_examples_in_queue)

    print('Filling queue with %d CIFAR images before starting to train. '
          'This will take a few minutes.' % min_queue_examples)
    # Generate a batch of images and labels by building up a queue of examples.
    return _generate_image_and_label_batch(float_image, label,
                                           min_queue_examples)
Example #4
0
def inputs(eval_data):
    """Construct input for CIFAR evaluation using the Reader ops.
	Args:
		eval_data: bool, indicating if one should use the train or eval data set.
	Raises:
		ValueError: if no data_dir
	Returns:
		images: Images. 4D tensor of [batch_size, IMAGE_SIZE, IMAGE_SIZE, 3] size.
		labels: Labels. 1D tensor of [batch_size] size.
	"""
    filename = os.path.join('data', 'test.tfrecords')

    num_examples_per_epoch = NUM_EXAMPLES_PER_EPOCH_FOR_EVAL

    # Create a queue that produces the filenames to read.
    filename_queue = tf.train.string_input_producer([filenames])
    # Read examples from files in the filename queue.
    image, label = cifar10_input.read_and_decode(filename_queue)
    reshaped_image = tf.cast(image, tf.float32)

    height = IMAGE_SIZE
    width = IMAGE_SIZE
    # Image processing for evaluation.
    # Crop the central [height, width] of the image.
    resized_image = tf.image.resize_image_with_crop_or_pad(
        reshaped_image, width, height)

    # Subtract off the mean and divide by the variance of the pixels.
    float_image = tf.image.per_image_whitening(resized_image)
    # Ensure that the random shuffling has good mixing properties.
    min_fraction_of_examples_in_queue = 0.4
    min_queue_examples = int(num_examples_per_epoch *
                             min_fraction_of_examples_in_queue)
    # Generate a batch of images and labels by building up a queue of examples.

    return _generate_image_and_label_batch(float_image, label,
                                           min_queue_examples)