-
Stzpz authored
* Supported any feature map size for average pool. * Different models may have different feature map size. * Used registry to register keypoint and mask heads. * Passing in/out channels between modules when creating the model. Passing in/out channels between modules when creating the model. This simplifies the code to compute the input channels for feature extractors and makes the predictors independent of the backbone architectures. * Passed in_channels to rpn and head builders. * Set out_channels to model modules including backbone and feature extractors. * Moved cfg.MODEL.BACKBONE.OUT_CHANNELS to cfg.MODEL.RESNETS.BACKBONE_OUT_CHANNELS as it is not used by all architectures. Updated config files accordingly. For new architecture modules, the return module needs to contain a field called 'out_channels' to indicate the output channel size. * Added unit test for box_coder and nms. * Added FBNet architecture. * FBNet is a general architecture definition to support efficient architecture search and MaskRCNN2GO. * Included various efficient building blocks (inverted residual, shuffle, separate dw conv, dw upsampling etc.) * Supported building backbone, rpn, detection, keypoint and mask heads using efficient building blocks. * Architecture could be defined in `fbnet_modeldef.py` or in `cfg.MODEL.FBNET.ARCH_DEF` directly. * A few baseline architectures are included. * Added various unit tests. * build and run backbones. * build and run feature extractors. * build and run predictors. * Added a unit test to verify all config files are loadable.
b23eee0c