After defining your MyEncoder class, you must register it in the smp.encoders.encoders dictionary so it can be used via the encoder_name parameter in model constructors.
Register the encoder with its pretrained_settings (optional) and any initialization params.
# Register the encoder
smp.encoders.encoders["my_awesome_encoder"] = {
"encoder": MyEncoder, # encoder class here
"pretrained_settings": {
"imagenet": {
"mean": [0.485, 0.456, 0.406],
"std": [0.229, 0.224, 0.225],
"url": "https://some-url.com/my-model-weights",
"input_space": "RGB",
"input_range": [0, 1],
},
},
"params": {
# init params for encoder if any
},
}
# Use the encoder
model = smp.Unet(encoder_name="my_awesome_encoder")