MCPcopy Index your code
hub / github.com/OpenGVLab/HumanBench / forward

Method forward

PATH/core/models/necks/simple_fpn.py:576–613  ·  view source on GitHub ↗
(self, input_var)

Source from the content-addressed store, hash-verified

574 nn.init.constant_(proj[0].bias, 0)
575
576 def forward(self, input_var):
577 features = input_var['backbone_output']['Join']['tensor']
578 pos = input_var['backbone_output']['Join']['position_embedding']
579
580 srcs = []
581 masks = []
582
583 if self.num_feature_levels == 1:
584 src, mask = features[-1].decompose()
585 srcs.append(self.input_proj[0](src))
586 masks.append(mask)
587 assert mask is not None
588 else:
589 for l, feat in enumerate(features):
590 src, mask = feat.decompose()
591 srcs.append(self.input_proj[l](src))
592 masks.append(mask)
593 assert mask is not None
594
595 if self.num_feature_levels > len(srcs):
596 _len_srcs = len(srcs)
597 for l in range(_len_srcs, self.num_feature_levels):
598 if l == _len_srcs:
599 src = self.input_proj[l](features[-1].tensors)
600 else:
601 src = self.input_proj[l](srcs[-1])
602 m = input_var['NestedImage'].mask
603 mask = F.interpolate(m[None].float(), size=src.shape[-2:]).to(torch.bool)[0]
604 pos_l = self.backbone[0][1](NestedTensor(src, mask)).to(src.dtype)
605 srcs.append(src)
606 masks.append(mask)
607 pos.append(pos_l)
608
609 neck_output = {}
610 neck_output = {'multi_scale_features': srcs, 'multi_scale_masks': masks, 'multi_scale_pos': pos}
611 input_var.update({'neck_output': neck_output})
612
613 return input_var
614
615
616class PedDetMoreSimpleFPN(SimpleFPN):

Callers

nothing calls this directly

Calls 4

NestedTensorClass · 0.90
decomposeMethod · 0.80
toMethod · 0.45
updateMethod · 0.45

Tested by

no test coverage detected