          group="faceswap encoder configuration",
          fixed=True),
  
      # MobileNet
      mobilenet_width=dict(
          default=1.0,
          info="The width multiplier for mobilenet encoders. Controls the width of the "
               "network. Values less than 1.0 proportionally decrease the number of filters within "
               "each layer. Values greater than 1.0 proportionally increase the number of filters "
               "within each layer. 1.0 is the default number of layers used within the paper.\n"
               "NB: This option is ignored for any non-mobilenet encoders.\n"
               "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
               "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
               "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
               "of '0.75' or '1.0' can be selected",
          datatype=float,
          min_max=(0.1, 2.0),
          rounding=2,
          group="mobilenet encoder configuration",
          fixed=True),
      mobilenet_depth=dict(
          default=1,
          info="The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
               "for depthwise convolution (known as the resolution multiplier within the original "
               "paper).\n"
               "NB: This option is only used for MobilenetV1 and is ignored for all other "
               "encoders.\n"
               "NB: If loading ImageNet weights, this must be set to 1.",
          datatype=int,
          min_max=(1, 10),
          rounding=1,
          group="mobilenet encoder configuration",
          fixed=True),
      mobilenet_dropout=dict(
          default=0.001,
          info="The dropout rate for MobilenetV1 encoder.\n"
               "NB: This option is only used for MobilenetV1 and is ignored for all other "
               "encoders.",
          datatype=float,
          min_max=(0.001, 2.0),
          rounding=3,
          group="mobilenet encoder configuration",
          fixed=True),
      mobilenet_minimalistic=dict(
          default=False,
          info="Use a minimilist version of MobilenetV3.\n"
               "In addition to large and small models MobilenetV3 also contains so-called "
               "minimalistic models, these models have the same per-layer dimensions characteristic "
               "as MobilenetV3 however, they don't utilize any of the advanced blocks "
               "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
               "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
               "NB: This option is only used for MobilenetV3 and is ignored for all other "
               "encoders.\n",
          datatype=bool,
          group="mobilenet encoder configuration",
          fixed=True),
      )
 
</s> remove     fs_original_depth=dict(
        default=4,
        info="Faceswap Encoder only: The number of convolutions to perform within the encoder.",
        datatype=int,
        min_max=(2, 10),
        rounding=1,
        group="faceswap encoder configuration",
        fixed=True),
    fs_original_min_filters=dict(
        default=128,
        info="Faceswap Encoder only: The minumum number of filters to use for encoder "
             "convolutions. (i.e. the number of filters to use for the first encoder layer).",
        datatype=int,
        min_max=(16, 2048),
        rounding=64,
        group="faceswap encoder configuration",
        fixed=True),
    fs_original_max_filters=dict(
        default=1024,
        info="Faceswap Encoder only: The maximum number of filters to use for encoder "
             "convolutions. (i.e. the number of filters to use for the final encoder layer).",
        datatype=int,
        min_max=(256, 8192),
        rounding=128,
        group="faceswap encoder configuration",
        fixed=True),
    fs_original_use_alt=dict(
        default=False,
        info="Use a slightly alternate version of the Faceswap Encoder."
             "\n\tTrue - Use the alternate variation of the Faceswap Encoder."
             "\n\tFalse - Use the original Faceswap Encoder.",
        datatype=bool,
        group="faceswap encoder configuration",
        fixed=True),
 </s> add     "fs_original_depth": {
        "default": 4,
        "info": "Faceswap Encoder only: The number of convolutions to perform within the encoder.",
        "datatype": int,
        "min_max": (2, 10),
        "rounding": 1,
        "group": "faceswap encoder configuration",
        "fixed": True},
    "fs_original_min_filters": {
        "default": 128,
        "info": (
            "Faceswap Encoder only: The minumum number of filters to use for encoder "
            "convolutions. (i.e. the number of filters to use for the first encoder layer)."),
        "datatype": int,
        "min_max": (16, 2048),
        "rounding": 64,
        "group": "faceswap encoder configuration",
        "fixed": True},
    "fs_original_max_filters": {
        "default": 1024,
        "info": (
            "Faceswap Encoder only: The maximum number of filters to use for encoder "
            "convolutions. (i.e. the number of filters to use for the final encoder layer)."),
        "datatype": int,
        "min_max": (256, 8192),
        "rounding": 128,
        "group": "faceswap encoder configuration",
        "fixed": True},
    "fs_original_use_alt": {
        "default": False,
        "info": (
            "Use a slightly alternate version of the Faceswap Encoder."
            "\n\tTrue - Use the alternate variation of the Faceswap Encoder."
            "\n\tFalse - Use the original Faceswap Encoder."),
        "datatype": bool,
        "group": "faceswap encoder configuration",
        "fixed": True}, </s> remove     fc_depth=dict(
        default=1,
        info="The number of consecutive Dense (fully connected) layers to include in each side's "
             "intermediate layer.",
        datatype=int,
        rounding=1,
        min_max=(0, 16),
        group="hidden layers",
        fixed=True),
    fc_min_filters=dict(
        default=1024,
        info="The number of filters to use for the initial fully connected layer. The number of "
             "nodes actually used is: fc_min_filters x fc_dimensions x fc_dimensions.\nNB: This "
             "value may be scaled down, depending on output resolution.",
        datatype=int,
        rounding=16,
        min_max=(16, 5120),
        group="hidden layers",
        fixed=True),
    fc_max_filters=dict(
        default=1024,
        info="This is the number of filters to be used in the final reshape layer at the end of "
             "the fully connected layers. The actual number of nodes used for the final fully "
             "connected layer is: fc_min_filters x fc_dimensions x fc_dimensions.\nNB: This value "
             "may be scaled down, depending on output resolution.",
        datatype=int,
        rounding=64,
        min_max=(128, 5120),
        group="hidden layers",
        fixed=True),
    fc_dimensions=dict(
        default=4,
        info="The height and width dimension for the final reshape layer at the end of the fully "
             "connected layers.\nNB: The total number of nodes within the final fully connected "
             "layer will be: fc_dimensions x fc_dimensions x fc_max_filters.",
        datatype=int,
        rounding=1,
        min_max=(1, 16),
        group="hidden layers",
        fixed=True),
    fc_filter_slope=dict(
        default=-0.5,
        info="The rate that the filters move from the minimum number of filters to the maximum "
             "number of filters. EG:\n"
             "Negative numbers will change the number of filters quicker at first and slow down "
             "each layer.\n"
             "Positive numbers will change the number of filters slower at first but then speed "
             "up each layer.\n"
             "0.0 - This will change at a linear rate (i.e. the same number of filters will be "
             "changed at each layer).",
        datatype=float,
        min_max=(-.99, .99),
        rounding=2,
        group="hidden layers",
        fixed=True),
    fc_dropout=dict(
        default=0.0,
        info="Dropout is a form of regularization that can prevent a model from over-fitting and "
             "help to keep neurons 'alive'. 0.5 will dropout half the connections between each "
             "fully connected layer, 0.25 will dropout a quarter of the connections etc. Set to "
             "0.0 to disable.",
        datatype=float,
        rounding=2,
        min_max=(0.0, 0.99),
        group="hidden layers",
        fixed=False),
    fc_upsampler=dict(
        default="upsample2d",
        info="The type of dimensional upsampling to perform at the end of the fully connected "
             "layers, if upsamples > 0. The number of filters used for the upscale layers will be "
             "the value given in 'fc_upsample_filters'."
             "\n\tupsample2d - A lightweight and VRAM friendly method. 'quick and dirty' but does "
             "not learn any parameters"
             "\n\tsubpixel - Sub-pixel upscaler using depth-to-space which may require more "
             "VRAM."
             "\n\tresize_images - Uses the Keras resize_image function to save about half as much "
             "vram as the heaviest methods."
             "\n\tupscale_fast - Developed by Andenixa. Focusses on speed to upscale, but "
             "requires more VRAM."
             "\n\tupscale_hybrid - Developed by Andenixa. Uses a combination of PixelShuffler and "
             "Upsampling2D to upscale, saving about 1/3rd of VRAM of the heaviest methods.",
        datatype=str,
        choices=["resize_images", "subpixel", "upscale_fast", "upscale_hybrid", "upsample2d"],
        group="hidden layers",
        gui_radio=False,
        fixed=True),
    fc_upsamples=dict(
        default=1,
        info="Some upsampling can occur within the Fully Connected layers rather than in the "
             "Decoder to increase the dimensional space. Set how many upscale layers should occur "
             "within the Fully Connected layers.",
        datatype=int,
        min_max=(0, 4),
        rounding=1,
        group="hidden layers",
        fixed=True),
    fc_upsample_filters=dict(
        default=512,
        info="If you have selected an upsampler which requires filters (i.e. any upsampler with "
             "the exception of Upsampling2D), then this is the number of filters to be used for "
             "the upsamplers within the fully connected layers,  NB: This value may be scaled "
             "down, depending on output resolution. Also note, that this figure will dictate the "
             "number of filters used for the G-Block, if selected.",
        datatype=int,
        rounding=64,
        min_max=(128, 5120),
        group="hidden layers",
        fixed=True),
 </s> add     "fc_depth": {
        "default": 1,
        "info": (
            "The number of consecutive Dense (fully connected) layers to include in each "
            "side's intermediate layer."),
        "datatype": int,
        "rounding": 1,
        "min_max": (0, 16),
        "group": "hidden layers",
        "fixed": True},
    "fc_min_filters": {
        "default": 1024,
        "info": (
            "The number of filters to use for the initial fully connected layer. The number of "
            "nodes actually used is: fc_min_filters x fc_dimensions x fc_dimensions.\nNB: This "
            "value may be scaled down, depending on output resolution."),
        "datatype": int,
        "rounding": 16,
        "min_max": (16, 5120),
        "group": "hidden layers",
        "fixed": True},
    "fc_max_filters": {
        "default": 1024,
        "info": (
            "This is the number of filters to be used in the final reshape layer at the end of "
            "the fully connected layers. The actual number of nodes used for the final fully "
            "connected layer is: fc_min_filters x fc_dimensions x fc_dimensions.\nNB: This value "
            "may be scaled down, depending on output resolution."),
        "datatype": int,
        "rounding": 64,
        "min_max": (128, 5120),
        "group": "hidden layers",
        "fixed": True},
    "fc_dimensions": {
        "default": 4,
        "info": (
            "The height and width dimension for the final reshape layer at the end of the "
            "fully connected layers.\nNB: The total number of nodes within the final fully "
            "connected layer will be: fc_dimensions x fc_dimensions x fc_max_filters."),
        "datatype": int,
        "rounding": 1,
        "min_max": (1, 16),
        "group": "hidden layers",
        "fixed": True},
    "fc_filter_slope": {
        "default": -0.5,
        "info": (
            "The rate that the filters move from the minimum number of filters to the maximum "
            "number of filters. EG:\n"
            "Negative numbers will change the number of filters quicker at first and slow down "
            "each layer.\n"
            "Positive numbers will change the number of filters slower at first but then speed "
            "up each layer.\n"
            "0.0 - This will change at a linear rate (i.e. the same number of filters will be "
            "changed at each layer)."),
        "datatype": float,
        "min_max": (-.99, .99),
        "rounding": 2,
        "group": "hidden layers",
        "fixed": True},
    "fc_dropout": {
        "default": 0.0,
        "info": (
            "Dropout is a form of regularization that can prevent a model from over-fitting "
            "and help to keep neurons 'alive'. 0.5 will dropout half the connections between each "
            "fully connected layer, 0.25 will dropout a quarter of the connections etc. Set to "
            "0.0 to disable."),
        "datatype": float,
        "rounding": 2,
        "min_max": (0.0, 0.99),
        "group": "hidden layers",
        "fixed": False},
    "fc_upsampler": {
        "default": "upsample2d",
        "info": (
            "The type of dimensional upsampling to perform at the end of the fully connected "
            "layers, if upsamples > 0. The number of filters used for the upscale layers will be "
            "the value given in 'fc_upsample_filters'."
            "\n\tupsample2d - A lightweight and VRAM friendly method. 'quick and dirty' but does "
            "not learn any parameters"
            "\n\tsubpixel - Sub-pixel upscaler using depth-to-space which may require more "
            "VRAM."
            "\n\tresize_images - Uses the Keras resize_image function to save about half as much "
            "vram as the heaviest methods."
            "\n\tupscale_fast - Developed by Andenixa. Focusses on speed to upscale, but "
            "requires more VRAM."
            "\n\tupscale_hybrid - Developed by Andenixa. Uses a combination of PixelShuffler and "
            "Upsampling2D to upscale, saving about 1/3rd of VRAM of the heaviest methods."),
        "datatype": str,
        "choices": ["resize_images", "subpixel", "upscale_fast", "upscale_hybrid", "upsample2d"],
        "group": "hidden layers",
        "gui_radio": False,
        "fixed": True},
    "fc_upsamples": {
        "default": 1,
        "info": (
            "Some upsampling can occur within the Fully Connected layers rather than in the "
            "Decoder to increase the dimensional space. Set how many upscale layers should occur "
            "within the Fully Connected layers."),
        "datatype": int,
        "min_max": (0, 4),
        "rounding": 1,
        "group": "hidden layers",
        "fixed": True},
    "fc_upsample_filters": {
        "default": 512,
        "info": (
            "If you have selected an upsampler which requires filters (i.e. any upsampler with "
            "the exception of Upsampling2D), then this is the number of filters to be used for "
            "the upsamplers within the fully connected layers,  NB: This value may be scaled "
            "down, depending on output resolution. Also note, that this figure will dictate the "
            "number of filters used for the G-Block, if selected."),
        "datatype": int,
        "rounding": 64,
        "min_max": (128, 5120),
        "group": "hidden layers",
        "fixed": True}, </s> remove         datatype:  [required] A python type class. This limits the type of data that can be
                   provided in the .ini file and ensures that the value is returned in the
                   correct type to faceswap. Valid data types are: <class 'int'>, <class 'float'>,
                   <class 'str'>, <class 'bool'>.
        default:   [required] The default value for this option.
        info:      [required] A string describing what this option does.
        choices:   [optional] If this option's datatype is of <class 'str'> then valid
                   selections can be defined here. This validates the option and also enables
                   a combobox / radio option in the GUI.
        gui_radio: [optional] If <choices> are defined, this indicates that the GUI should use
                   radio buttons rather than a combobox to display this option.
        min_max:   [partial] For <class 'int'> and <class 'float'> data types this is required
                   otherwise it is ignored. Should be a tuple of min and max accepted values.
                   This is used for controlling the GUI slider range. Values are not enforced.
        rounding:  [partial] For <class 'int'> and <class 'float'> data types this is
                   required otherwise it is ignored. Used for the GUI slider. For floats, this
                   is the number of decimal places to display. For ints this is the step size.
        fixed:     [optional] [train only]. Training configurations are fixed when the model is
                   created, and then reloaded from the state file. Marking an item as fixed=False
                   indicates that this value can be changed for existing models, and will override
                   the value saved in the state file with the updated value in config. If not
                   provided this will default to True.
 </s> add         "datatype:  [required] A python type class. This limits the type of data that can be
               "   provided in the .ini file and ensures that the value is returned in the
               "   correct type to faceswap. Valid data types are: <class 'int'>, <class 'float'>,
               "   <class 'str'>, <class 'bool'>.
        "default:   [required] The default value for this option.
        "info:      [required] A string describing what this option does.
        "choices:   [optional] If this option's datatype is of <class 'str'> then valid
               "   selections can be defined here. This validates the option and also enables
               "   a combobox / radio option in the GUI.
        "gui_radio: [optional] If <choices> are defined, this indicates that the GUI should use
               "   radio buttons rather than a combobox to display this option.
        "min_max:   [partial] For <class 'int'> and <class 'float'> data types this is required
               "   otherwise it is ignored. Should be a tuple of min and max accepted values.
               "   This is used for controlling the GUI slider range. Values are not enforced.
        "rounding:  [partial] For <class 'int'> and <class 'float'> data types this is
               "   required otherwise it is ignored. Used for the GUI slider. For floats, this
               "   is the number of decimal places to display. For ints this is the step size.
        "fixed:     [optional] [train only]. Training configurations are fixed when the model is
               "   created, and then reloaded from the state file. Marking an item as fixed=False
               "   indicates that this value can be changed for existing models, and will override
               "   the value saved in the state file with the updated value in config. If not
               "   provided this will default to True. </s> remove     enc_architecture=dict(
        default="fs_original",
        info="The encoder architecture to use. See the relevant config sections for specific "
             "architecture tweaking.\nNB: For keras based pre-built models, the global "
             "initializers and padding options will be ignored for the selected encoder."
             "\n\n\tdensenet: (32px -224px). Ref: Densely Connected Convolutional Networks "
             "(2016): https://arxiv.org/abs/1608.06993?source=post_page"
             "\n\n\tefficientnet: [Tensorflow 2.3+ only] EfficientNet has numerous variants (B0 - "
             "B8) that increases the model width, depth and dimensional space at each step. The "
             "minimum input resolution is 32px for all variants. The maximum input resolution for "
             "each variant is: b0: 224px, b1: 240px, b2: 260px, b3: 300px, b4: 380px, b5: 456px, "
             "b6: 528px, b7 600px. Ref: Rethinking Model Scaling for Convolutional Neural "
             "Networks (2020): https://arxiv.org/abs/1905.11946"
             "\n\n\tefficientnet_v2: [Tensorflow 2.8+ only] EfficientNetV2 is the follow up to "
             "efficientnet. It has numerous variants (B0 - B3 and Small, Medium and Large) that "
             "increases the model width, depth and dimensional space at each step. The minimum "
             "input resolution is 32px for all variants. The maximum input resolution for each "
             "variant is: b0: 224px, b1: 240px, b2: 260px, b3: 300px, s: 384px, m: 480px, l: "
             "480px. Ref: EfficientNetV2: Smaller Models and Faster Training (2021): "
             "https://arxiv.org/abs/2104.00298"
             "\n\n\tfs_original: (32px - 1024px). A configurable variant of the original facewap "
             "encoder. ImageNet weights cannot be loaded for this model. Additional parameters "
             "can be configured with the 'fs_enc' options. A version of this encoder is used in "
             "the following models: Original, Original (lowmem), Dfaker, DFL-H128, DFL-SAE, IAE, "
             "Lightweight."
             "\n\n\tinception_resnet_v2: (75px - 299px). Ref: Inception-ResNet and the Impact of "
             "Residual Connections on Learning (2016): https://arxiv.org/abs/1602.07261"
             "\n\n\tinceptionV3: (75px - 299px). Ref: Rethinking the Inception Architecture for "
             "Computer Vision (2015): https://arxiv.org/abs/1512.00567"
             "\n\n\tmobilenet: (32px - 224px). Additional MobileNet parameters can be set with "
             "the 'mobilenet' options. Ref: MobileNets: Efficient Convolutional Neural Networks "
             "for Mobile Vision Applications (2017): https://arxiv.org/abs/1704.04861"
             "\n\n\tmobilenet_v2: (32px - 224px). Additional MobileNet parameters can be set with "
             "the 'mobilenet' options. Ref: MobileNetV2: Inverted Residuals and Linear "
             "Bottlenecks (2018): https://arxiv.org/abs/1801.04381"
             "\n\n\tmobilenet_v3: (32px - 224px). Additional MobileNet parameters can be set with "
             "the 'mobilenet' options. Ref: Searching for MobileNetV3 (2019): "
             "https://arxiv.org/pdf/1905.02244.pdf"
             "\n\n\tnasnet: (32px - 331px (large) or 224px (mobile)). Ref: Learning Transferable "
             "Architectures for Scalable Image Recognition (2017): "
             "https://arxiv.org/abs/1707.07012"
             "\n\n\tresnet: (32px - 224px). Deep Residual Learning for Image Recognition (2015): "
             "https://arxiv.org/abs/1512.03385"
             "\n\n\tvgg: (32px - 224px). Very Deep Convolutional Networks for Large-Scale Image "
             "Recognition (2014): https://arxiv.org/abs/1409.1556"
             "\n\n\txception: (71px - 229px). Ref: Deep Learning with Depthwise Separable "
             "Convolutions (2017): https://arxiv.org/abs/1409.1556.\n",
        datatype=str,
        choices=_ENCODERS,
        gui_radio=False,
        group="encoder",
        fixed=True),
    enc_scaling=dict(
        default=7,
        info="Input scaling for the encoder. Some of the encoders have large input sizes, which "
             "often are not helpful for Faceswap. This setting scales the dimensional space that "
             "the encoder works in. For example an encoder with a maximum input size of 224px "
             "will be input an image of 112px at 50%% scaling. See the Architecture tooltip for "
             "the minimum and maximum sizes for each encoder. NB: The input size will be rounded "
             "down to the nearest 16 pixels.",
        datatype=int,
        min_max=(0, 100),
        rounding=1,
        group="encoder",
        fixed=True),
    enc_load_weights=dict(
        default=True,
        info="Load pre-trained weights trained on ImageNet data. Only available for non-Faceswap "
             "encoders (i.e. those not beginning with 'fs'). NB: If you use the global 'load "
             "weights' option and have selected to load weights from a previous model's 'encoder' "
             "or 'keras_encoder' then the weights loaded here will be replaced by the weights "
             "loaded from your saved model.",
        datatype=bool,
        group="encoder",
        fixed=True),
 </s> add     "enc_architecture": {
        "default": "fs_original",
        "info": (
            "The encoder architecture to use. See the relevant config sections for specific "
            "architecture tweaking.\nNB: For keras based pre-built models, the global "
            "initializers and padding options will be ignored for the selected encoder."
            "\n\n\tdensenet: (32px -224px). Ref: Densely Connected Convolutional Networks "
            "(2016): https://arxiv.org/abs/1608.06993?source=post_page"
            "\n\n\tefficientnet: [Tensorflow 2.3+ only] EfficientNet has numerous variants (B0 - "
            "B8) that increases the model width, depth and dimensional space at each step. The "
            "minimum input resolution is 32px for all variants. The maximum input resolution for "
            "each variant is: b0: 224px, b1: 240px, b2: 260px, b3: 300px, b4: 380px, b5: 456px, "
            "b6: 528px, b7 600px. Ref: Rethinking Model Scaling for Convolutional Neural "
            "Networks (2020): https://arxiv.org/abs/1905.11946"
            "\n\n\tefficientnet_v2: [Tensorflow 2.8+ only] EfficientNetV2 is the follow up to "
            "efficientnet. It has numerous variants (B0 - B3 and Small, Medium and Large) that "
            "increases the model width, depth and dimensional space at each step. The minimum "
            "input resolution is 32px for all variants. The maximum input resolution for each "
            "variant is: b0: 224px, b1: 240px, b2: 260px, b3: 300px, s: 384px, m: 480px, l: "
            "480px. Ref: EfficientNetV2: Smaller Models and Faster Training (2021): "
            "https://arxiv.org/abs/2104.00298"
            "\n\n\tfs_original: (32px - 1024px). A configurable variant of the original facewap "
            "encoder. ImageNet weights cannot be loaded for this model. Additional parameters "
            "can be configured with the 'fs_enc' options. A version of this encoder is used in "
            "the following models: Original, Original (lowmem), Dfaker, DFL-H128, DFL-SAE, IAE, "
            "Lightweight."
            "\n\n\tinception_resnet_v2: (75px - 299px). Ref: Inception-ResNet and the Impact of "
            "Residual Connections on Learning (2016): https://arxiv.org/abs/1602.07261"
            "\n\n\tinceptionV3: (75px - 299px). Ref: Rethinking the Inception Architecture for "
            "Computer Vision (2015): https://arxiv.org/abs/1512.00567"
            "\n\n\tmobilenet: (32px - 224px). Additional MobileNet parameters can be set with "
            "the 'mobilenet' options. Ref: MobileNets: Efficient Convolutional Neural Networks "
            "for Mobile Vision Applications (2017): https://arxiv.org/abs/1704.04861"
            "\n\n\tmobilenet_v2: (32px - 224px). Additional MobileNet parameters can be set with "
            "the 'mobilenet' options. Ref: MobileNetV2: Inverted Residuals and Linear "
            "Bottlenecks (2018): https://arxiv.org/abs/1801.04381"
            "\n\n\tmobilenet_v3: (32px - 224px). Additional MobileNet parameters can be set with "
            "the 'mobilenet' options. Ref: Searching for MobileNetV3 (2019): "
            "https://arxiv.org/pdf/1905.02244.pdf"
            "\n\n\tnasnet: (32px - 331px (large) or 224px (mobile)). Ref: Learning Transferable "
            "Architectures for Scalable Image Recognition (2017): "
            "https://arxiv.org/abs/1707.07012"
            "\n\n\tresnet: (32px - 224px). Deep Residual Learning for Image Recognition (2015): "
            "https://arxiv.org/abs/1512.03385"
            "\n\n\tvgg: (32px - 224px). Very Deep Convolutional Networks for Large-Scale Image "
            "Recognition (2014): https://arxiv.org/abs/1409.1556"
            "\n\n\txception: (71px - 229px). Ref: Deep Learning with Depthwise Separable "
            "Convolutions (2017): https://arxiv.org/abs/1409.1556.\n"),
        "datatype": str,
        "choices": _ENCODERS,
        "gui_radio": False,
        "group": "encoder",
        "fixed": True},
    "enc_scaling": {
        "default": 7,
        "info": (
            "Input scaling for the encoder. Some of the encoders have large input sizes, which "
            "often are not helpful for Faceswap. This setting scales the dimensional space that "
            "the encoder works in. For example an encoder with a maximum input size of 224px "
            "will be input an image of 112px at 50%% scaling. See the Architecture tooltip for "
            "the minimum and maximum sizes for each encoder. NB: The input size will be rounded "
            "down to the nearest 16 pixels."),
        "datatype": int,
        "min_max": (0, 100),
        "rounding": 1,
        "group": "encoder",
        "fixed": True},
    "enc_load_weights": {
        "default": True,
        "info": (
            "Load pre-trained weights trained on ImageNet data. Only available for non-"
            "Faceswap encoders (i.e. those not beginning with 'fs'). NB: If you use the global "
            "'load weights' option and have selected to load weights from a previous model's "
            "'encoder' or 'keras_encoder' then the weights loaded here will be replaced by the "
            "weights loaded from your saved model."),
        "datatype": bool,
        "group": "encoder",
        "fixed": True}, </s> remove     fc_gblock_depth=dict(
        default=3,
        info="The number of consecutive Dense (fully connected) layers to include in the G-Block "
             "shared layer.",
        datatype=int,
        rounding=1,
        min_max=(1, 16),
        group="g-block hidden layers",
        fixed=True),
    fc_gblock_min_nodes=dict(
        default=512,
        info="The number of nodes to use for the initial G-Block shared fully connected layer.",
        datatype=int,
        rounding=64,
        min_max=(128, 5120),
        group="g-block hidden layers",
        fixed=True),
    fc_gblock_max_nodes=dict(
        default=512,
        info="The number of nodes to use for the final G-Block shared fully connected layer.",
        datatype=int,
        rounding=64,
        min_max=(128, 5120),
        group="g-block hidden layers",
        fixed=True),
    fc_gblock_filter_slope=dict(
        default=-0.5,
        info="The rate that the filters move from the minimum number of filters to the maximum "
             "number of filters for the G-Block shared layers. EG:\n"
             "Negative numbers will change the number of filters quicker at first and slow down "
             "each layer.\n"
             "Positive numbers will change the number of filters slower at first but then speed "
             "up each layer.\n"
             "0.0 - This will change at a linear rate (i.e. the same number of filters will be "
             "changed at each layer).",
        datatype=float,
        min_max=(-.99, .99),
        rounding=2,
        group="g-block hidden layers",
        fixed=True),
    fc_gblock_dropout=dict(
        default=0.0,
        info="Dropout is a regularization technique that can prevent a model from over-fitting "
             "and help to keep neurons 'alive'. 0.5 will dropout half the connections between "
             "each fully connected layer, 0.25 will dropout a quarter of the connections etc. Set "
             "to 0.0 to disable.",
        datatype=float,
        rounding=2,
        min_max=(0.0, 0.99),
        group="g-block hidden layers",
        fixed=False),
 </s> add     "fc_gblock_depth": {
        "default": 3,
        "info": (
            "The number of consecutive Dense (fully connected) layers to include in the "
            "G-Block shared layer."),
        "datatype": int,
        "rounding": 1,
        "min_max": (1, 16),
        "group": "g-block hidden layers",
        "fixed": True},
    "fc_gblock_min_nodes": {
        "default": 512,
        "info": "The number of nodes to use for the initial G-Block shared fully connected layer.",
        "datatype": int,
        "rounding": 64,
        "min_max": (128, 5120),
        "group": "g-block hidden layers",
        "fixed": True},
    "fc_gblock_max_nodes": {
        "default": 512,
        "info": "The number of nodes to use for the final G-Block shared fully connected layer.",
        "datatype": int,
        "rounding": 64,
        "min_max": (128, 5120),
        "group": "g-block hidden layers",
        "fixed": True},
    "fc_gblock_filter_slope": {
        "default": -0.5,
        "info": (
            "The rate that the filters move from the minimum number of filters to the maximum "
            "number of filters for the G-Block shared layers. EG:\n"
            "Negative numbers will change the number of filters quicker at first and slow down "
            "each layer.\n"
            "Positive numbers will change the number of filters slower at first but then speed "
            "up each layer.\n"
            "0.0 - This will change at a linear rate (i.e. the same number of filters will be "
            "changed at each layer)."),
        "datatype": float,
        "min_max": (-.99, .99),
        "rounding": 2,
        "group": "g-block hidden layers",
        "fixed": True},
    "fc_gblock_dropout": {
        "default": 0.0,
        "info": (
            "Dropout is a regularization technique that can prevent a model from over-fitting "
            "and help to keep neurons 'alive'. 0.5 will dropout half the connections between "
            "each fully connected layer, 0.25 will dropout a quarter of the connections etc. Set "
            "to 0.0 to disable."),
        "datatype": float,
        "rounding": 2,
        "min_max": (0.0, 0.99),
        "group": "g-block hidden layers",
        "fixed": False},
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
          group="faceswap encoder configuration",
          fixed=True),
  
      # MobileNet
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
    "mobilenet_width": {
        "default": 1.0,
        "info": (
            "The width multiplier for mobilenet encoders. Controls the width of the "
            "network. Values less than 1.0 proportionally decrease the number of filters within "
            "each layer. Values greater than 1.0 proportionally increase the number of filters "
            "within each layer. 1.0 is the default number of layers used within the paper.\n"
            "NB: This option is ignored for any non-mobilenet encoders.\n"
            "NB: If loading ImageNet weights, then for MobilenetV1 only values of '0.25', "
            "'0.5', '0.75' or '1.0 can be selected. For MobilenetV2 only values of '0.35', "
            "'0.50', '0.75', '1.0', '1.3' or '1.4' can be selected. For mobilenet_v3 only values "
            "of '0.75' or '1.0' can be selected"),
        "datatype": float,
        "min_max": (0.1, 2.0),
        "rounding": 2,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_depth": {
        "default": 1,
        "info": (
            "The depth multiplier for MobilenetV1 encoder. This is the depth multiplier "
            "for depthwise convolution (known as the resolution multiplier within the original "
            "paper).\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders.\n"
            "NB: If loading ImageNet weights, this must be set to 1."),
        "datatype": int,
        "min_max": (1, 10),
        "rounding": 1,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_dropout": {
        "default": 0.001,
        "info": (
            "The dropout rate for MobilenetV1 encoder.\n"
            "NB: This option is only used for MobilenetV1 and is ignored for all other "
            "encoders."),
        "datatype": float,
        "min_max": (0.001, 2.0),
        "rounding": 3,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    "mobilenet_minimalistic": {
        "default": False,
        "info": (
            "Use a minimilist version of MobilenetV3.\n"
            "In addition to large and small models MobilenetV3 also contains so-called "
            "minimalistic models, these models have the same per-layer dimensions characteristic "
            "as MobilenetV3 however, they don't utilize any of the advanced blocks "
            "(squeeze-and-excite units, hard-swish, and 5x5 convolutions). While these models "
            "are less efficient on CPU, they are much more performant on GPU/DSP.\n"
            "NB: This option is only used for MobilenetV3 and is ignored for all other "
            "encoders.\n"),
        "datatype": bool,
        "group": "mobilenet encoder configuration",
        "fixed": True},
    }
keep keep keep keep replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace
 Remove plaidML support (#1325)

* Remove PlaidML reference from readme files

* Remove AMD option from installers

* remove amd requirements and update setup.py

* remove plaidml test from CI workflow

* gpustats: remove plaidml backend

* plaid removals:
  - faceswap.py - python version check
  - setup.cfg - plaidml typing ignore
  - lib.keras_utils - All plaid code
  - lib.launcher.py - All plaidml checks and configuration

* remove tf2.2 specific code from GUI event reader

* lib.model - remove all plaidml implementations

* plugins.extract - remove plaidml code

* plugins.train remove plaidml code

* lib.convert - remove plaidml code

* tools.model: remove plaidml code

* Remove plaidML tests from unit tests

* remove plaidml_utils and docsting cleanups

* Remove plaidML refs from configs

* fix keras imports 
plugins/train/model/phaze_a_defaults.py