Spaces:
Runtime error
Runtime error
# coding=utf-8 | |
# Copyright 2021 The Deeplab2 Authors. | |
# | |
# Licensed under the Apache License, Version 2.0 (the "License"); | |
# you may not use this file except in compliance with the License. | |
# You may obtain a copy of the License at | |
# | |
# http://www.apache.org/licenses/LICENSE-2.0 | |
# | |
# Unless required by applicable law or agreed to in writing, software | |
# distributed under the License is distributed on an "AS IS" BASIS, | |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
# See the License for the specific language governing permissions and | |
# limitations under the License. | |
"""AutoAugment policy file. | |
This file contains found auto-augment policy. | |
Please cite or refer to the following papers for details: | |
- Ekin D Cubuk, Barret Zoph, Dandelion Mane, Vijay Vasudevan, and Quoc V Le. | |
"Autoaugment: Learning augmentation policies from data." In CVPR, 2019. | |
- Ekin D Cubuk, Barret Zoph, Jonathon Shlens, and Quoc V Le. | |
"Randaugment: Practical automated data augmentation with a reduced search | |
space." In CVPR, 2020. | |
""" | |
# Reduced augmentation operation space. | |
augmentation_reduced_operations = ( | |
'AutoContrast', 'Equalize', 'Invert', 'Posterize', | |
'Solarize', 'Color', 'Contrast', 'Brightness', 'Sharpness') | |
augmentation_probabilities = [0.0, 0.2, 0.4, 0.6, 0.8, 1.0] | |
def convert_policy(policy, | |
search_space=augmentation_reduced_operations, | |
probability_scale=1.0, | |
magnitude_scale=1): | |
"""Converts policy from a list of numbers.""" | |
if len(policy) % 6: | |
raise ValueError('Policy length must be a multiple of 6.') | |
num_policies = len(policy) // 6 | |
policy_list = [[] for _ in range(num_policies)] | |
for n in range(num_policies): | |
for i in range(2): | |
operation_id, prob_id, magnitude = ( | |
policy[6 * n + i * 3 : 6 * n + (i + 1) * 3]) | |
policy_name = search_space[operation_id] | |
policy_prob = ( | |
augmentation_probabilities[prob_id] * probability_scale) | |
policy_list[n].append((policy_name, | |
policy_prob, | |
magnitude * magnitude_scale)) | |
return policy_list | |
simple_classification_policy = [8, 2, 7, 7, 1, 10, | |
1, 0, 9, 6, 1, 10, | |
8, 1, 9, 5, 1, 9, | |
4, 1, 7, 1, 3, 9, | |
8, 1, 1, 1, 1, 7] | |
# All available policies. | |
available_policies = { | |
'simple_classification_policy_magnitude_scale_0.2': convert_policy( | |
simple_classification_policy, | |
augmentation_reduced_operations, | |
magnitude_scale=0.2), | |
'simple_classification_policy': convert_policy( | |
simple_classification_policy, | |
augmentation_reduced_operations, | |
magnitude_scale=1), | |
} | |