def __init__(self, test_mode=False, verbose=True, cfg=None, **args):
        """The abstract model that the other models_art extend.

        Args:
            default_properties: The attributes of an experiment, read from a
            config file
            test_mode: If in the test mode, computation graph for loss will
            not be constructed, config will be saved in the output directory
            verbose: If true, prints debug information
            cfg: Config dictionary
            args: The rest of the arguments which can become object attributes
        """

        # Set attributes either from FLAGS or **args.
        self.cfg = cfg

        # Active session parameter.
        self.active_sess = None

        self.tensorboard_log = True

        # Object attributes.
        default_properties = self.default_properties

        default_properties.extend(["tensorboard_log", "output_dir", "num_gpus"])
        self.initialized = False
        self.verbose = verbose
        self.output_dir = path_locations["output_dir"]

        local_vals = locals()
        args.update(local_vals)
        for attr in default_properties:
            if attr in args.keys():
                self._set_attr(attr, args[attr])
            else:
                self._set_attr(attr, None)

        # Runtime attributes.
        self.saver = None
        self.global_step = tf.train.get_or_create_global_step()
        self.global_step_inc = tf.assign(self.global_step, tf.add(self.global_step, 1))

        # Phase: 1 train 0 test.
        self.is_training = tf.placeholder(dtype=tf.bool)
        self.is_training_enc = tf.placeholder(dtype=tf.bool)
        self.save_vars = {}
        self.save_var_prefixes = []
        self.dataset = None
        self.test_mode = test_mode

        self._set_checkpoint_dir()
        self._build()  # lgtm [py/init-calls-subclass]
        self._gather_variables()  # lgtm [py/init-calls-subclass]
        if not test_mode:
            self._save_cfg_in_ckpt()
            self._loss()  # lgtm [py/init-calls-subclass]
            self._optimizers()  # lgtm [py/init-calls-subclass]

        # summary writer
        self.merged_summary_op = tf.summary.merge_all()
        self._initialize_summary_writer()
The abstract model that the other models_art extend.

        Args:
            default_properties: The attributes of an experiment, read from a
            config file
            test_mode: If in the test mode, computation graph for loss will
            not be constructed, config will be saved in the output directory
            verbose: If true, prints debug information
            cfg: Config dictionary
            args: The rest of the arguments which can become object attributes
        
examples/inverse_gan_author_utils.py