Exemple #1
0
 def add_argument(
         cls, group: argparse._ArgumentGroup) -> argparse._ArgumentGroup:
     super().add_argument(group)
     group.add_argument('--adv_train',
                        dest='adv_train',
                        action='store_true',
                        help='enable adversarial training.')
     group.add_argument(
         '--adv_train_alpha',
         dest='adv_train_alpha',
         type=float,
         help='adversarial training PGD alpha, defaults to 2/255.')
     group.add_argument(
         '--adv_train_epsilon',
         dest='adv_train_epsilon',
         type=float,
         help='adversarial training PGD epsilon, defaults to 8/255.')
     group.add_argument(
         '--adv_train_valid_epsilon',
         dest='adv_train_valid_epsilon',
         type=float,
         help='adversarial training PGD epsilon, defaults to 8/255.')
     group.add_argument(
         '--adv_train_iter',
         dest='adv_train_iter',
         type=int,
         help='adversarial training PGD iteration, defaults to 7.')
 def add_argument(cls, group: argparse._ArgumentGroup):
     super().add_argument(group)
     group.add_argument(
         '--original',
         dest='original',
         action='store_true',
         help='load original clean model, defaults to False.')
Exemple #3
0
 def add_argument(cls, group: argparse._ArgumentGroup):
     super().add_argument(group)
     group.add_argument('--cutout', action='store_true', help='use cutout')
     group.add_argument('--cutout_length',
                        type=int,
                        default=16,
                        help='cutout length')
Exemple #4
0
 def add_argument(cls, group: argparse._ArgumentGroup):
     super().add_argument(group)
     group.add_argument('--tabor_hyperparams',
                        type=list,
                        help='list of weights for regularization terms '
                        '(default: [1e-6, 1e-5, 1e-7, 1e-8, 0, 1e-2])')
     return group
Exemple #5
0
 def add_argument(cls, group: argparse._ArgumentGroup):
     super().add_argument(group)
     group.add_argument('--poison_percent', type=float,
                        help='malicious training data injection probability for each batch, defaults to 0.01')
     group.add_argument('--train_mode', choices=['batch', 'dataset'],
                        help='target class of backdoor, defaults to \'batch\'')
     return group
Exemple #6
0
def add_encoder_general_arguments(group: _ArgumentGroup) -> _ArgumentGroup:
    """Define general arguments for encoder."""
    group.add_argument(
        "--etype",
        default="blstmp",
        type=str,
        choices=[
            "custom",
            "lstm",
            "blstm",
            "lstmp",
            "blstmp",
            "vgglstmp",
            "vggblstmp",
            "vgglstm",
            "vggblstm",
            "gru",
            "bgru",
            "grup",
            "bgrup",
            "vgggrup",
            "vggbgrup",
            "vgggru",
            "vggbgru",
        ],
        help="Type of encoder network architecture",
    )
    group.add_argument(
        "--dropout-rate",
        default=0.0,
        type=float,
        help="Dropout rate for the encoder",
    )

    return group
Exemple #7
0
 def add_argument(cls, group: argparse._ArgumentGroup):
     super().add_argument(group)
     group.add_argument('--attack_source',
                        help='attack source (default: "badnet")')
     group.add_argument('--mark_source',
                        help='mark source (default: "attack")')
     return group
Exemple #8
0
    def _add_argument(cls, ap: argparse._ArgumentGroup, field: Field) -> None:
        assert cls._is_argument_field(field)
        assert not isinstance(
            field.type, ForwardRef), "rework class to not have forward ref"

        target_type = field.type
        if hasattr(field.type, "__args__"):
            target_type = field.type.__args__[0]

        argparse_type = target_type
        metavar = target_type.__name__

        if issubclass(target_type, Enum):
            argparse_type = common.argparse_choices_pre_type(
                [m.name for m in target_type],
                lambda s: target_type[s],
            )
            metavar = f"[{','.join(m.name for m in target_type)}]"

        help = "[missing] Add a help annotation on the config class!"
        if field.metadata:
            metavar = field.metadata.get("metavar", metavar)
            help = field.metadata.get("help", help)

        ap.add_argument(
            f"--{field.name.replace('_', '-')}",
            type=argparse_type,
            metavar=metavar,
            required=field.default is MISSING
            and field.default_factory is MISSING,  # type: ignore
            help=help,
        )
Exemple #9
0
    def registerArgparse(self, group: ArgumentGroup):
        enables = [x for x in self.options if x[0] != "!"]
        disables = [x[1:] for x in self.options if x[0] == "!"]

        group.add_argument(*enables, dest=self.name, help=self.description + formatDefault(self.value), action='store_true', default=None)
        if disables:
            group.add_argument(*disables, dest=self.name, help=self.description + formatDefault(self.value), action='store_false', default=None)
Exemple #10
0
 def add_argument(cls, group: argparse._ArgumentGroup):
     super().add_argument(group)
     group.add_argument('--original',
                        action='store_true',
                        help='whether to load original clean model '
                        '(default: False)')
     return group
Exemple #11
0
 def add_argument(cls, group: argparse._ArgumentGroup):
     super().add_argument(group)
     group.add_argument(
         '--prune_ratio',
         type=float,
         help='the ratio of neuron number to prune (default: 0.95)')
     return group
Exemple #12
0
 def add_argument(cls, group: argparse._ArgumentGroup):
     super().add_argument(group)
     group.add_argument(
         '--preprocess_layer',
         help=
         'the chosen layer used to extract feature representation, defaults to ``flatten``'
     )
     group.add_argument(
         '--poison_image_num',
         type=int,
         help=
         'the number of sampled poison image to train the model initially, defaults to 50'
     )
     group.add_argument(
         '--clean_image_num',
         type=int,
         help=
         'the number of sampled clean image to train the model initially, defaults to 500'
     )
     group.add_argument(
         '--epsilon',
         type=int,
         help=
         'the number of examples to remove from each class, defaults to 5')
     group.add_argument(
         '--retrain_epoch',
         type=int,
         help=
         'the epoch to retrain the model on clean image dataset, defaults to 5'
     )
     return group
Exemple #13
0
 def add_argument(cls, group: argparse._ArgumentGroup):
     super().add_argument(group)
     group.add_argument('--attack_source',
                        help='attack source, defaults to ``badnet``')
     group.add_argument('--mark_source',
                        help='mark source, defaults to ``attack``')
     return group
def _add_custom_limits(parser: argparse._ArgumentGroup) -> None:
    def minmax_type(string: str) -> float:
        value = float(string)
        if value < 0 or value > 8:
            raise argparse.ArgumentTypeError(
                f'{string} must be between 0.0 and 8.0', )

        return value

    high_entropy_help_text = (
        'Sets the entropy limit for high entropy strings. '
        'Value must be between 0.0 and 8.0,')

    # NOTE: This doesn't have explicit default values since we want to be able to determine
    # the difference between a value set by default, and an explicitly set value (which happens
    # to be the same as the default value). This distinction plays an important role when doing
    # precedence calculation (default value < baseline config < CLI explicit value)
    parser.add_argument(
        '--base64-limit',
        type=minmax_type,
        nargs='?',
        help=high_entropy_help_text + ' defaults to 4.5.',
    )
    parser.add_argument(
        '--hex-limit',
        type=minmax_type,
        nargs='?',
        help=high_entropy_help_text + ' defaults to 3.0.',
    )
Exemple #15
0
 def add_argument(cls, group: argparse._ArgumentGroup):
     super().add_argument(group)
     group.add_argument(
         '--class_sample_num',
         type=int,
         help=
         'the number of sampled images per class, defaults to config[latent_backdoor][class_sample_num][dataset]=100'
     )
     group.add_argument(
         '--mse_weight',
         type=float,
         help=
         'the weight of mse loss during retraining, defaults to config[latent_backdoor][mse_weight][dataset]=100'
     )
     group.add_argument(
         '--preprocess_layer',
         help=
         'the chosen feature layer patched by trigger, defaults to \'features\''
     )
     group.add_argument('--preprocess_epoch',
                        type=int,
                        help='preprocess optimization epoch')
     group.add_argument('--preprocess_lr',
                        type=float,
                        help='preprocess learning rate')
     return group
Exemple #16
0
 def add_argument(cls, group: argparse._ArgumentGroup):
     super().add_argument(group)
     group.add_argument('--defense_input_num',
                        type=int,
                        help='the number of training inputs to evaluate '
                        '(default: None)')
     return group
Exemple #17
0
 def add_argument(cls, group: argparse._ArgumentGroup):
     super().add_argument(group)
     group.add_argument(
         '--data_format',
         dest='data_format',
         type=str,
         help='folder, zip or numpy. (zip is using ZIP_STOREED)')
Exemple #18
0
 def add_argument(cls, group: argparse._ArgumentGroup):
     super().add_argument(group)
     group.add_argument('--seed_num',
                        dest='seed_num',
                        type=int,
                        help='ABS seed number, defaults to -5.')
     group.add_argument(
         '--max_troj_size',
         dest='max_troj_size',
         type=int,
         help='ABS max trojan trigger size (pixel number), defaults to 64.')
     group.add_argument('--remask_epoch',
                        dest='remask_epoch',
                        type=int,
                        help='ABS optimizing epoch, defaults to 1000.')
     group.add_argument(
         '--remask_lr',
         dest='remask_lr',
         type=float,
         help='ABS optimization learning rate, defaults to 0.1.')
     group.add_argument(
         '--remask_weight',
         dest='remask_weight',
         type=float,
         help='ABS optimization remask loss weight, defaults to 0.1.')
Exemple #19
0
def consumer_set_id_arg(req_args: _ArgumentGroup,
                        opt_args: _ArgumentGroup) -> None:
    req_args.add_argument(
        "--consumer-set-id",
        type=str,
        help="The identifier of the consumer set",
        required=True,
    )
Exemple #20
0
def env_arg(opt_args: _ArgumentGroup) -> None:
    opt_args.add_argument(
        "--env",
        choices=["prod", "dev", "local"],
        default=None,
        type=str,
        help="Switches auth context.",
    )
Exemple #21
0
 def add_argument(cls, group: argparse._ArgumentGroup):
     super().add_argument(group)
     group.add_argument('--model_index', type=int, required=True)
     group.add_argument('--model_seed', type=int)
     group.add_argument('--nats_path')
     group.add_argument('--autodl_path')
     group.add_argument('--search_space')
     return group
Exemple #22
0
def output_fmt_arg(req_args: _ArgumentGroup, opt_args: _ArgumentGroup) -> None:
    opt_args.add_argument(
        "-o",
        "--output-fmt",
        choices=["table", "json"],
        type=str,
        help="Switches output format.",
    )
Exemple #23
0
def _add_disable_flag(parser: argparse._ArgumentGroup) -> None:
    parser.add_argument(
        '--disable-filter',
        type=str,
        nargs=1,
        action='append',  # so we can support multiple flags with same value
        help=
        'Specify filter to disable. e.g. detect_secrets.filters.common.is_invalid_file',
    )
Exemple #24
0
def org_plan_type_arg(req_args: _ArgumentGroup,
                      opt_args: _ArgumentGroup) -> None:
    req_args.add_argument(
        "--plan-type",
        choices=[1, 2, 3, 4, 5, 6],
        type=int,
        help="Plan type for organization.",
        required=True,
    )
Exemple #25
0
def no_org_arg(req_args: _ArgumentGroup, opt_args: _ArgumentGroup) -> None:
    opt_args.add_argument(
        "--no-org",
        nargs="?",
        default=False,
        const=True,
        type=bool,
        help="Only show users that are not part of any organization.",
    )
Exemple #26
0
def args_addr(argument_group: argparse._ArgumentGroup) -> None:  # pylint: disable=protected-access
    """Create addr positional argumenmt."""
    argument_group.add_argument(
        "addr",
        type=str,
        help="""Address to listen or connect to.

""",
    )
Exemple #27
0
 def configure_parser(cls, arg_group: _ArgumentGroup) -> None:
     arg_group.add_argument(
         '--force-beam-block-number',
         type=int,
         help="Force beam sync to activate on a specific block number (for testing)",
         default=None,
     )
     add_disable_backfill_arg(arg_group)
     add_sync_from_checkpoint_arg(arg_group)
Exemple #28
0
 def add_argument(cls, group: argparse._ArgumentGroup):
     super().add_argument(group)
     group.add_argument(
         '--prune_ratio',
         dest='prune_ratio',
         type=float,
         help=
         'the ratio of neuron number to prune, defaults to config[fine_pruning][prune_ratio]=0.95'
     )
Exemple #29
0
def args_quick(argument_group: argparse._ArgumentGroup) -> None:  # pylint: disable=protected-access
    """Create -q/--quick argumenmt."""
    argument_group.add_argument(
        "-q",
        "--quick",
        action="store_true",
        help="""Show quick payload results (less detail).

""",
    )
Exemple #30
0
 def add_argument(cls, group: argparse._ArgumentGroup):
     super().add_argument(group)
     group.add_argument(
         '--data_format',
         choices=['folder', 'tar', 'zip'],
         help='file format of dataset. (zip is using ZIP_STORED)')
     group.add_argument('--memory',
                        action='store_true',
                        help='put all dataset into memory initialization.')
     return group