(
self,
decoder_layer,
num_layers,
norm=None,
return_intermediate=False,
d_model=256,
query_dim=4,
modulate_hw_attn=False,
num_feature_levels=1,
deformable_decoder=False,
dec_layer_number=None, # number of queries each layer in decoder
dec_layer_share=False,
dec_layer_dropout_prob=None,
num_box_decoder_layers=2,
num_hand_face_decoder_layers=4,
num_body_points=0,
num_hand_points=0,
num_face_points=0,
num_dn=100,
num_group=100)
| 1631 | |
| 1632 | class TransformerDecoder_Box(nn.Module): |
| 1633 | def __init__( |
| 1634 | self, |
| 1635 | decoder_layer, |
| 1636 | num_layers, |
| 1637 | norm=None, |
| 1638 | return_intermediate=False, |
| 1639 | d_model=256, |
| 1640 | query_dim=4, |
| 1641 | modulate_hw_attn=False, |
| 1642 | num_feature_levels=1, |
| 1643 | deformable_decoder=False, |
| 1644 | dec_layer_number=None, # number of queries each layer in decoder |
| 1645 | dec_layer_share=False, |
| 1646 | dec_layer_dropout_prob=None, |
| 1647 | num_box_decoder_layers=2, |
| 1648 | num_hand_face_decoder_layers=4, |
| 1649 | num_body_points=0, |
| 1650 | num_hand_points=0, |
| 1651 | num_face_points=0, |
| 1652 | num_dn=100, |
| 1653 | num_group=100): |
| 1654 | super().__init__() |
| 1655 | # pdb.set_trace() |
| 1656 | if num_layers > 0: |
| 1657 | self.layers = _get_clones(decoder_layer, |
| 1658 | num_layers, |
| 1659 | layer_share=dec_layer_share) |
| 1660 | else: |
| 1661 | self.layers = [] |
| 1662 | self.num_layers = num_layers |
| 1663 | self.norm = norm |
| 1664 | self.return_intermediate = return_intermediate # True |
| 1665 | assert return_intermediate, 'support return_intermediate only' |
| 1666 | self.query_dim = query_dim # 4 |
| 1667 | assert query_dim in [ |
| 1668 | 2, 4 |
| 1669 | ], 'query_dim should be 2/4 but {}'.format(query_dim) |
| 1670 | self.num_feature_levels = num_feature_levels # 4 |
| 1671 | |
| 1672 | self.ref_point_head = MLP(query_dim // 2 * d_model, d_model, d_model, |
| 1673 | 2) # 4//2 * 256, 256, 256, 2 |
| 1674 | if not deformable_decoder: |
| 1675 | self.query_pos_sine_scale = MLP(d_model, d_model, d_model, 2) |
| 1676 | else: |
| 1677 | self.query_pos_sine_scale = None |
| 1678 | |
| 1679 | self.num_body_points = 0 |
| 1680 | self.num_hand_points = 0 |
| 1681 | self.num_face_points = 0 |
| 1682 | self.query_scale = None |
| 1683 | |
| 1684 | # aios kp |
| 1685 | self.bbox_embed = None |
| 1686 | self.class_embed = None |
| 1687 | |
| 1688 | self.bbox_hand_embed = None |
| 1689 | self.bbox_hand_hw_embed = None |
| 1690 |
nothing calls this directly
no test coverage detected