| 23 | |
| 24 | |
| 25 | def get_args_parser(): |
| 26 | parser = argparse.ArgumentParser('Deformable DETR Detector', add_help=False) |
| 27 | parser.add_argument('--lr', default=2e-4, type=float) |
| 28 | parser.add_argument('--lr_backbone_names', default=["backbone.0"], type=str, nargs='+') |
| 29 | parser.add_argument('--lr_backbone', default=2e-5, type=float) |
| 30 | parser.add_argument('--lr_linear_proj_names', default=['reference_points', 'sampling_offsets'], type=str, nargs='+') |
| 31 | parser.add_argument('--lr_linear_proj_mult', default=0.1, type=float) |
| 32 | parser.add_argument('--batch_size', default=2, type=int) |
| 33 | parser.add_argument('--weight_decay', default=1e-4, type=float) |
| 34 | parser.add_argument('--epochs', default=50, type=int) |
| 35 | parser.add_argument('--lr_drop', default=40, type=int) |
| 36 | parser.add_argument('--lr_drop_epochs', default=None, type=int, nargs='+') |
| 37 | parser.add_argument('--clip_max_norm', default=0.1, type=float, |
| 38 | help='gradient clipping max norm') |
| 39 | |
| 40 | |
| 41 | parser.add_argument('--sgd', action='store_true') |
| 42 | |
| 43 | # Variants of Deformable DETR |
| 44 | parser.add_argument('--with_box_refine', default=False, action='store_true') |
| 45 | parser.add_argument('--two_stage', default=False, action='store_true') |
| 46 | |
| 47 | # Model parameters |
| 48 | parser.add_argument('--frozen_weights', type=str, default=None, |
| 49 | help="Path to the pretrained model. If set, only the mask head will be trained") |
| 50 | |
| 51 | # * Backbone |
| 52 | parser.add_argument('--backbone', default='resnet50', type=str, |
| 53 | help="Name of the convolutional backbone to use") |
| 54 | parser.add_argument('--dilation', action='store_true', |
| 55 | help="If true, we replace stride with dilation in the last convolutional block (DC5)") |
| 56 | parser.add_argument('--position_embedding', default='sine', type=str, choices=('sine', 'learned'), |
| 57 | help="Type of positional embedding to use on top of the image features") |
| 58 | parser.add_argument('--position_embedding_scale', default=2 * np.pi, type=float, |
| 59 | help="position / size * scale") |
| 60 | parser.add_argument('--num_feature_levels', default=4, type=int, help='number of feature levels') |
| 61 | |
| 62 | # * Transformer |
| 63 | parser.add_argument('--enc_layers', default=6, type=int, |
| 64 | help="Number of encoding layers in the transformer") |
| 65 | parser.add_argument('--dec_layers', default=6, type=int, |
| 66 | help="Number of decoding layers in the transformer") |
| 67 | parser.add_argument('--dim_feedforward', default=1024, type=int, |
| 68 | help="Intermediate size of the feedforward layers in the transformer blocks") |
| 69 | parser.add_argument('--hidden_dim', default=256, type=int, |
| 70 | help="Size of the embeddings (dimension of the transformer)") |
| 71 | parser.add_argument('--dropout', default=0.1, type=float, |
| 72 | help="Dropout applied in the transformer") |
| 73 | parser.add_argument('--nheads', default=8, type=int, |
| 74 | help="Number of attention heads inside the transformer's attentions") |
| 75 | parser.add_argument('--num_queries', default=500, type=int, |
| 76 | help="Number of query slots") |
| 77 | parser.add_argument('--dec_n_points', default=4, type=int) |
| 78 | parser.add_argument('--enc_n_points', default=4, type=int) |
| 79 | |
| 80 | # * Segmentation |
| 81 | parser.add_argument('--masks', action='store_true', |
| 82 | help="Train segmentation head if the flag is provided") |