resnet_variant.py 844 B

1234567891011121314151617181920212223
  1. from paddle.nn import Conv2D
  2. from paddlex.ppcls.arch.backbone.legendary_models.resnet import ResNet50, MODEL_URLS, _load_pretrained
  3. __all__ = ["ResNet50_last_stage_stride1"]
  4. def ResNet50_last_stage_stride1(pretrained=False, use_ssld=False, **kwargs):
  5. def replace_function(conv):
  6. new_conv = Conv2D(
  7. in_channels=conv._in_channels,
  8. out_channels=conv._out_channels,
  9. kernel_size=conv._kernel_size,
  10. stride=1,
  11. padding=conv._padding,
  12. groups=conv._groups,
  13. bias_attr=conv._bias_attr)
  14. return new_conv
  15. match_re = "conv2d_4[4|6]"
  16. model = ResNet50(pretrained=False, use_ssld=use_ssld, **kwargs)
  17. model.replace_sub(match_re, replace_function, True)
  18. _load_pretrained(pretrained, model, MODEL_URLS["ResNet50"], use_ssld)
  19. return model