Example #1
0
    def _unl_parser(value):
        """Cifar10 parser."""
        image_size = params.image_size
        value = tf.io.decode_raw(value, tf.uint8)
        image = tf.reshape(value[1:], [3, 32, 32])  # uint8
        image = tf.transpose(image, [1, 2, 0])
        if image_size != 32:
            image = tf.image.resize_bicubic([image],
                                            [image_size, image_size])[0]
        image.set_shape([image_size, image_size, 3])
        image = _flip_and_jitter(image, replace_value=128)
        ori_image = image

        aug = augment.RandAugment(cutout_const=image_size // 8,
                                  translate_const=image_size // 8,
                                  magnitude=params.augment_magnitude)
        aug_image = aug.distort(image)
        aug_image = augment.cutout(aug_image,
                                   pad_size=image_size // 4,
                                   replace=128)
        aug_image = _flip_and_jitter(aug_image, replace_value=128)

        ori_image = convert_and_normalize(params, ori_image)
        aug_image = convert_and_normalize(params, aug_image)
        return {'ori_images': ori_image, 'aug_images': aug_image}
Example #2
0
def _imagenet_parser(params, value, training):
  """ImageNet parser."""
  if training:
    image_size = params.image_size
  else:
    if 'eval_image_size' in params:
      image_size = max(params.image_size, params.eval_image_size)
    else:
      image_size = params.image_size
    logging.info(f'eval_image_size={image_size}')

  keys_to_features = {
      'image/encoded': tf.io.FixedLenFeature((), tf.string),
      'image/class/label': tf.io.FixedLenFeature([], tf.int64),
  }
  features = tf.io.parse_single_example(value, keys_to_features)
  label = tf.cast(features['image/class/label'], tf.int32) - 1
  label = tf.one_hot(label, depth=params.num_classes, dtype=tf.float32)

  if training:
    image = _decode_and_random_crop(features['image/encoded'], image_size)
    image = tf.image.random_flip_left_right(image)
    if params.use_augment:
      aug = augment.RandAugment(magnitude=params.augment_magnitude)
      image = aug.distort(image)
  else:
    image = _decode_and_center_crop(features['image/encoded'], image_size)
  image.set_shape([image_size, image_size, 3])
  image = convert_and_normalize(params, image)
  return image, label
Example #3
0
def _cifar10_parser(params, value, training):
    """Cifar10 parser."""
    image_size = params.image_size
    value = tf.io.decode_raw(value, tf.uint8)
    label = tf.cast(value[0], tf.int32)
    label = tf.one_hot(label, depth=params.num_classes, dtype=tf.float32)
    image = tf.reshape(value[1:], [3, 32, 32])  # uint8
    image = tf.transpose(image, [1, 2, 0])
    if image_size != 32:
        image = tf.image.resize_bicubic([image], [image_size, image_size])[0]
    image.set_shape([image_size, image_size, 3])

    if training:
        if params.use_augment:
            aug = augment.RandAugment(cutout_const=image_size // 8,
                                      translate_const=image_size // 8,
                                      magnitude=params.augment_magnitude)
            image = _flip_and_jitter(image, 128)
            image = aug.distort(image)
            image = augment.cutout(image,
                                   pad_size=image_size // 4,
                                   replace=128)
        else:
            image = _flip_and_jitter(image, 128)
    image = convert_and_normalize(params, image)
    return image, label
Example #4
0
  def _unl_parser(value):
    """ImageNet parser."""
    image_size = params.image_size
    keys_to_features = {
        'image/encoded': tf.io.FixedLenFeature((), tf.string),
    }
    features = tf.io.parse_single_example(value, keys_to_features)
    image = _decode_and_random_crop(features['image/encoded'], image_size)

    ori_image = tf.image.random_flip_left_right(image)
    ori_image.set_shape([image_size, image_size, 3])

    aug_image = tf.image.random_flip_left_right(image)
    aug = augment.RandAugment(magnitude=params.augment_magnitude)
    aug_image = aug.distort(aug_image)
    aug_image.set_shape([image_size, image_size, 3])

    ori_image = convert_and_normalize(params, ori_image)
    aug_image = convert_and_normalize(params, aug_image)
    return {'ori_images': ori_image, 'aug_images': aug_image}