          section = "global"
          self.add_section(title=section,
                           info="Options that apply to all models" + ADDITIONAL_INFO)
          self.add_item(section=section, title="mask_type", datatype=str, default="none",
                        choices=get_available_masks(), gui_radio=True,
                        info="The mask to be used for training:"
                             "\n\t none: Doesn't use any mask."
                             "\n\t components: An improved face hull mask using a facehull of 8 "
                             "facial parts"
                             "\n\t dfl_full: An improved face hull mask using a facehull of 3 "
 
</s> remove         """ Set the global options for training """
 </s> add         """
        Set the global options for training

        Loss Documentation
        MAE https://heartbeat.fritz.ai/5-regression-loss-functions-all-machine
            -learners-should-know-4fb140e9d4b0
        MSE https://heartbeat.fritz.ai/5-regression-loss-functions-all-machine
            -learners-should-know-4fb140e9d4b0
        LogCosh https://heartbeat.fritz.ai/5-regression-loss-functions-all-machine
                -learners-should-know-4fb140e9d4b0
        Smooth L1 https://arxiv.org/pdf/1701.03077.pdf
        L_inf_norm https://medium.com/@montjoile/l0-norm-l1-norm-l2-norm-l-infinity
                   -norm-7a7d18a4f40c
        SSIM http://www.cns.nyu.edu/pub/eero/wang03-reprint.pdf
        GMSD https://arxiv.org/ftp/arxiv/papers/1308/1308.3052.pdf
        """ </s> remove             section=section, title="icnr_init", datatype=bool, default=False,
            info="Use ICNR Kernel Initializer for upscaling.\nThis can help reduce the "
                 "'checkerboard effect' when upscaling the image.")
        self.add_item(
            section=section, title="conv_aware_init", datatype=bool, default=False,
            info="Use Convolution Aware Initialization for convolutional layers\nThis can help "
                 "eradicate the vanishing and exploding gradient problem as well as lead to "
                 "higher accuracy, lower loss and faster convergence."
                 "\nNB This can use more VRAM when creating a new model so you may want to lower "
                 "the batch size for the first run. The batch size can be raised again when "
                 "reloading the model."
                 "\nNB: Building the model will likely take several minutes as the caluclations "
                 "for this initialization technique are expensive.")
        self.add_item(
            section=section, title="subpixel_upscaling", datatype=bool, default=False,
            info="Use subpixel upscaling rather than pixel shuffler.\n"
                 "Might increase speed at cost of VRAM")
        self.add_item(
            section=section, title="reflect_padding", datatype=bool, default=False,
            info="Use reflect padding rather than zero padding. Only enable this option if the "
                 "model you are training has a distinct line appearing around the edge of the "
                 "swap area.")
 </s> add             section=section, title="learning_rate", datatype=float, default=5e-5,
            min_max=(1e-6, 1e-4), rounding=6, fixed=False,
            info="Learning rate - how fast your network will learn (how large are "
                 "the modifications to the model weights after one batch of training). "
                 "Values that are too large might result in model crashes and the "
                 "inability of the model to find the best solution. "
                 "Values that are too small might be unable to escape from dead-ends "
                 "and find the best global minimum.") </s> remove         coverage = self.get_coverage(image)
 </s> add         coverage = self.get_coverage(image) // 2 </s> remove                 face_func = PenalizedLoss(mask[0], loss_func)
                logger.debug("final face loss: %s", face_func)
                loss_funcs.append(face_func)
                if not predict and side.lower() == "a":
                    logger.verbose("Penalizing mask for Loss")
 </s> add                 loss_funcs.append(PenalizedLoss(mask[0], loss_dict[img_loss_config]))
                logger.debug("final face loss: %s", img_loss_config) </s> remove             section=section, title="dssim_loss", datatype=bool, default=True,
            info="Use DSSIM for Loss rather than Mean Absolute Error\n"
                 "May increase overall quality.")
        self.add_item(
            section=section, title="penalized_mask_loss", datatype=bool, default=True,
            info="If using a mask, This penalizes the loss for the masked area, to give higher "
                 "priority to the face area. \nShould increase overall quality and speed up "
                 "training. This should probably be left at True")
        logger.debug("Set global config")
 </s> add             section=section, title="coverage", datatype=float, default=68.75,
            min_max=(62.5, 100.0), rounding=2, fixed=True,
            info="How much of the extracted image to train on. A lower coverage will limit the model's "
                 "scope to a zoomed-in central area while higher amounts can include the entire face. "
                 "A trade-off exists between lower amounts given a bit more detail versus higher amounts "
                 "avoiding noticeable swap transitions. Sensible values to use are:"
                 "\n\t62.5%% spans from eyebrow to eyebrow."
                 "\n\t75.0%% spans from temple to temple."
                 "\n\t87.5%% spans from ear to ear."
                 "\n\t100.0%% is a mugshot.")
                      choices=get_available_masks(),
          section = "global"
          self.add_section(title=section,
                           info="Options that apply to all models" + ADDITIONAL_INFO)
          self.add_item(section=section, title="mask_type", datatype=str, default="none",
                      choices=get_available_masks(),
                        info="The mask to be used for training:"
                             "\n\t none: Doesn't use any mask."
                             "\n\t components: An improved face hull mask using a facehull of 8 "
                             "facial parts"
                             "\n\t dfl_full: An improved face hull mask using a facehull of 3 "
keep keep keep keep replace keep keep keep keep keep
 documentation, pep8, style, clarity updates  - Prep for Segmentation (#812)

* documentation, pep8, style, clarity updates

* Update cli.py

* Update _config.py

remove extra mask and coverage

mask type as dropdown

* Update training_data.py

move coverage / LR to global
cut down on loss description

style change
losses working in PR

* simpler logging

* legacy update 
plugins/train/_config.py