'Initializes instance of AttacksOutput class.
Args:
dataset_dir: location of the dataset.
attacks_output_dir: where to write results of attacks.
targeted_attacks_output_dir: where to write results of targeted attacks.
all_adv_examples_dir: directory to copy all adversarial examples from
all attacks.
epsilon: maximum allowed size of adversarial perturbation.'

def __init__(self, dataset_dir, attacks_output_dir, targeted_attacks_output_dir, all_adv_examples_dir, epsilon):

    self.attacks_output_dir = attacks_output_dir
    self.targeted_attacks_output_dir = targeted_attacks_output_dir
    self.all_adv_examples_dir = all_adv_examples_dir
    self._load_dataset_clipping(dataset_dir, epsilon)
    self._output_image_idx = 0
    self._output_to_attack_mapping = {}
    self._attack_image_count = 0
    self._targeted_attack_image_count = 0
    self._attack_names = set()
    self._targeted_attack_names = set()
