(
self,
encoder_layer,
num_layers,
norm=None,
d_model=256,
num_queries=300,
deformable_encoder=False,
enc_layer_share=False,
enc_layer_dropout_prob=None,
two_stage_type='no',
)
| 500 | |
| 501 | class TransformerEncoder(nn.Module): |
| 502 | def __init__( |
| 503 | self, |
| 504 | encoder_layer, |
| 505 | num_layers, |
| 506 | norm=None, |
| 507 | d_model=256, |
| 508 | num_queries=300, |
| 509 | deformable_encoder=False, |
| 510 | enc_layer_share=False, |
| 511 | enc_layer_dropout_prob=None, |
| 512 | two_stage_type='no', |
| 513 | ): |
| 514 | super().__init__() |
| 515 | # pdb.set_trace() |
| 516 | # prepare layers |
| 517 | if num_layers > 0: # 6 |
| 518 | self.layers = _get_clones( |
| 519 | encoder_layer, num_layers, |
| 520 | layer_share=enc_layer_share) # enc_layer_share false |
| 521 | else: |
| 522 | self.layers = [] |
| 523 | del encoder_layer |
| 524 | |
| 525 | self.query_scale = None |
| 526 | self.num_queries = num_queries # 900 |
| 527 | self.deformable_encoder = deformable_encoder |
| 528 | self.num_layers = num_layers # 6 |
| 529 | self.norm = norm |
| 530 | self.d_model = d_model |
| 531 | |
| 532 | self.enc_layer_dropout_prob = enc_layer_dropout_prob |
| 533 | if enc_layer_dropout_prob is not None: |
| 534 | assert isinstance(enc_layer_dropout_prob, list) |
| 535 | assert len(enc_layer_dropout_prob) == num_layers |
| 536 | for i in enc_layer_dropout_prob: |
| 537 | assert 0.0 <= i <= 1.0 |
| 538 | |
| 539 | self.two_stage_type = two_stage_type |
| 540 | if two_stage_type in ['enceachlayer', 'enclayer1']: |
| 541 | _proj_layer = nn.Linear(d_model, d_model) |
| 542 | _norm_layer = nn.LayerNorm(d_model) |
| 543 | if two_stage_type == 'enclayer1': |
| 544 | self.enc_norm = nn.ModuleList([_norm_layer]) |
| 545 | self.enc_proj = nn.ModuleList([_proj_layer]) |
| 546 | else: |
| 547 | self.enc_norm = nn.ModuleList([ |
| 548 | copy.deepcopy(_norm_layer) for i in range(num_layers - 1) |
| 549 | ]) |
| 550 | self.enc_proj = nn.ModuleList([ |
| 551 | copy.deepcopy(_proj_layer) for i in range(num_layers - 1) |
| 552 | ]) |
| 553 | |
| 554 | @staticmethod |
| 555 | def get_reference_points(spatial_shapes, valid_ratios, device): |
nothing calls this directly
no test coverage detected