Make the Flexible U-Net easily extensible for new backbones
Is your feature request related to a problem? Please describe. Currently, the FlexibleUNet structure only supports the efficient-net series as the backbone and it is hard to extend to other network structures. A more extensible and convenient way to add more benchmark or user defined backbones will make it more flexible.
Describe the solution you'd like
-
A base backbone/encoder class that defines interfaces like the number of output feature maps, a list of output feature map channels, string names of backbones and so on.
-
A register who can add and update backbones informations to a dict.
With these two components, users can implement their own backbones class derived from the base backbone class and regist them to the backbone dict. Then Flexible U-Net will use this dict to generate backbones/encoders.