Browse Source

Merge branch 'develop' into official_datasets

Bobholamovic 2 years ago
parent
commit
d1af166263
70 changed files with 72 additions and 66 deletions
  1. 1 1
      README.md
  2. 1 1
      docs/README.md
  3. 3 3
      docs/apis/model_zoo.md
  4. 1 1
      paddlers/datasets/voc.py
  5. 2 2
      paddlers/deploy/predictor.py
  6. 1 1
      paddlers/rs_models/__init__.py
  7. 0 0
      paddlers/rs_models/cd/__init__.py
  8. 0 0
      paddlers/rs_models/cd/backbones/__init__.py
  9. 0 0
      paddlers/rs_models/cd/backbones/resnet.py
  10. 0 0
      paddlers/rs_models/cd/bit.py
  11. 0 0
      paddlers/rs_models/cd/cdnet.py
  12. 1 1
      paddlers/rs_models/cd/changestar.py
  13. 0 0
      paddlers/rs_models/cd/dsamnet.py
  14. 0 0
      paddlers/rs_models/cd/dsifn.py
  15. 0 0
      paddlers/rs_models/cd/fc_ef.py
  16. 0 0
      paddlers/rs_models/cd/fc_siam_conc.py
  17. 0 0
      paddlers/rs_models/cd/fc_siam_diff.py
  18. 0 0
      paddlers/rs_models/cd/layers/__init__.py
  19. 0 0
      paddlers/rs_models/cd/layers/attention.py
  20. 0 0
      paddlers/rs_models/cd/layers/blocks.py
  21. 1 1
      paddlers/rs_models/cd/param_init.py
  22. 0 0
      paddlers/rs_models/cd/snunet.py
  23. 0 0
      paddlers/rs_models/cd/stanet.py
  24. 0 0
      paddlers/rs_models/clas/__init__.py
  25. 0 0
      paddlers/rs_models/clas/condensenet_v2.py
  26. 0 0
      paddlers/rs_models/det/__init__.py
  27. 0 0
      paddlers/rs_models/res/__init__.py
  28. 0 0
      paddlers/rs_models/res/generators/__init__.py
  29. 0 0
      paddlers/rs_models/res/generators/builder.py
  30. 0 0
      paddlers/rs_models/res/generators/rcan.py
  31. 0 0
      paddlers/rs_models/res/rcan_model.py
  32. 0 0
      paddlers/rs_models/seg/__init__.py
  33. 0 0
      paddlers/rs_models/seg/farseg.py
  34. 0 0
      paddlers/rs_models/seg/layers/__init__.py
  35. 0 0
      paddlers/rs_models/seg/layers/layers_lib.py
  36. 0 0
      paddlers/rs_models/seg/layers/param_init.py
  37. 5 5
      paddlers/tasks/__init__.py
  38. 1 1
      paddlers/tasks/base.py
  39. 3 3
      paddlers/tasks/change_detector.py
  40. 1 1
      paddlers/tasks/classifier.py
  41. 8 6
      paddlers/tasks/load_model.py
  42. 1 1
      paddlers/tasks/object_detector.py
  43. 2 2
      paddlers/tasks/segmenter.py
  44. 1 1
      paddlers/tasks/utils/infer_nets.py
  45. 1 1
      paddlers/transforms/operators.py
  46. 10 10
      tests/rs_models/test_cd_models.py
  47. 1 1
      tests/rs_models/test_seg_models.py
  48. 4 1
      tests/transforms/test_operators.py
  49. 1 1
      tutorials/train/change_detection/bit.py
  50. 1 1
      tutorials/train/change_detection/cdnet.py
  51. 1 1
      tutorials/train/change_detection/dsamnet.py
  52. 1 1
      tutorials/train/change_detection/dsifn.py
  53. 1 1
      tutorials/train/change_detection/fc_ef.py
  54. 1 1
      tutorials/train/change_detection/fc_siam_conc.py
  55. 1 1
      tutorials/train/change_detection/fc_siam_diff.py
  56. 1 1
      tutorials/train/change_detection/snunet.py
  57. 1 1
      tutorials/train/change_detection/stanet.py
  58. 1 1
      tutorials/train/classification/hrnet.py
  59. 2 1
      tutorials/train/classification/mobilenetv3.py
  60. 1 1
      tutorials/train/classification/resnet50_vd.py
  61. 1 1
      tutorials/train/image_restoration/drn_train.py
  62. 1 1
      tutorials/train/image_restoration/esrgan_train.py
  63. 1 1
      tutorials/train/image_restoration/lesrcnn_train.py
  64. 1 1
      tutorials/train/object_detection/faster_rcnn.py
  65. 1 1
      tutorials/train/object_detection/ppyolo.py
  66. 1 1
      tutorials/train/object_detection/ppyolotiny.py
  67. 1 1
      tutorials/train/object_detection/ppyolov2.py
  68. 1 1
      tutorials/train/object_detection/yolov3.py
  69. 1 1
      tutorials/train/semantic_segmentation/deeplabv3p.py
  70. 1 1
      tutorials/train/semantic_segmentation/unet.py

+ 1 - 1
README.md

@@ -159,7 +159,7 @@ PaddleRS是遥感科研院所、相关高校共同基于飞桨开发的遥感处
 ├── deploy               # 部署相关的文档和脚本
 ├── docs                 # 整个项目文档及图片
 ├── paddlers  
-│     ├── custom_models  # 自定义网络模型代码
+│     ├── rs_models      # 遥感专用网络模型代码
 │     ├── datasets       # 数据加载相关代码
 │     ├── models         # 套件网络模型代码
 │     ├── tasks          # 相关任务代码

+ 1 - 1
docs/README.md

@@ -1,3 +1,3 @@
 # 开发规范
 请注意,paddlers/models/ppxxx系列除了修改import路径和支持多通道模型外,不要增删改任何代码。
-新增的模型需放在paddlers/models/下的seg、det、cls、cd目录下。
+新增的模型需放在paddlers/models/下的seg、det、clas、cd目录下。

+ 3 - 3
docs/apis/model_zoo.md

@@ -2,7 +2,7 @@
 
 PaddleRS的基础模型库来自[PaddleClas](https://github.com/PaddlePaddle/PaddleClas/blob/release/2.3/docs/zh_CN/algorithm_introduction/ImageNet_models.md)、[PaddleSeg](https://github.com/PaddlePaddle/PaddleSeg/blob/release/2.4/docs/model_zoo_overview_cn.md)、[PaddleDetection](https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.3/README_cn.md#模型库)以及[PaddleGAN](https://github.com/PaddlePaddle/PaddleGAN/blob/develop/README_cn.md#模型库),可以通过相关的链接进行查看。而在此之外,PaddleRS也针对遥感任务添加了一些特有的模型库,可用于遥感图像语义分割、遥感变化检测等。
 
-## 自定义模型库
+## 遥感专用模型库
 
 | 模型名称        | 用途     |
 | --------------- | -------- |
@@ -20,7 +20,7 @@ PaddleRS的基础模型库来自[PaddleClas](https://github.com/PaddlePaddle/Pad
 
 ## 如何导入
 
-模型均位于`paddlers/models`和`paddlers/custom_models`中,对于套件中的模型可以通过如下方法进行使用
+模型均位于`paddlers/models`和`paddlers/rs_models`中,对于套件中的模型可以通过如下方法进行使用
 
 ```python
 from paddlers.models import xxxx
@@ -29,5 +29,5 @@ from paddlers.models import xxxx
 而PaddleRS所特有的模型可以通过如下方法调用
 
 ```python
-from paddlers.custom_models import xxxx
+from paddlers.rs_models import xxxx
 ```

+ 1 - 1
paddlers/datasets/voc.py

@@ -186,7 +186,7 @@ class VOCDetection(BaseDataset):
                     box_tag = pattern.findall(str(ET.tostringlist(obj)))
                     if len(box_tag) == 0:
                         logging.warning(
-                            "There's no field '<bndbox>' in one of object, "
+                            "There is no field '<bndbox>' in the object, "
                             "so this object will be ignored. xml file: {}".
                             format(xml_file))
                         continue

+ 2 - 2
paddlers/deploy/predictor.py

@@ -157,7 +157,7 @@ class Predictor(object):
             }
         elif self._model.model_type == 'detector':
             pass
-        elif self._model.model_type == 'changedetector':
+        elif self._model.model_type == 'change_detector':
             preprocessed_samples = {
                 'image': preprocessed_samples[0],
                 'image2': preprocessed_samples[1],
@@ -186,7 +186,7 @@ class Predictor(object):
                 'scores_map': s,
                 'label_names_map': n,
             } for l, s, n in zip(class_ids, scores, label_names)]
-        elif self._model.model_type in ('segmenter', 'changedetector'):
+        elif self._model.model_type in ('segmenter', 'change_detector'):
             label_map, score_map = self._model._postprocess(
                 net_outputs,
                 batch_origin_shape=ori_shape,

+ 1 - 1
paddlers/custom_models/__init__.py → paddlers/rs_models/__init__.py

@@ -12,4 +12,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-from . import cls, det, seg, gan, cd
+from . import clas, det, seg, res, cd

+ 0 - 0
paddlers/custom_models/cd/__init__.py → paddlers/rs_models/cd/__init__.py


+ 0 - 0
paddlers/custom_models/cd/backbones/__init__.py → paddlers/rs_models/cd/backbones/__init__.py


+ 0 - 0
paddlers/custom_models/cd/backbones/resnet.py → paddlers/rs_models/cd/backbones/resnet.py


+ 0 - 0
paddlers/custom_models/cd/bit.py → paddlers/rs_models/cd/bit.py


+ 0 - 0
paddlers/custom_models/cd/cdnet.py → paddlers/rs_models/cd/cdnet.py


+ 1 - 1
paddlers/custom_models/cd/changestar.py → paddlers/rs_models/cd/changestar.py

@@ -17,7 +17,7 @@ import paddle.nn as nn
 import paddle.nn.functional as F
 
 from paddlers.datasets.cd_dataset import MaskType
-from paddlers.custom_models.seg import FarSeg
+from paddlers.rs_models.seg import FarSeg
 from .layers import Conv3x3, Identity
 
 

+ 0 - 0
paddlers/custom_models/cd/dsamnet.py → paddlers/rs_models/cd/dsamnet.py


+ 0 - 0
paddlers/custom_models/cd/dsifn.py → paddlers/rs_models/cd/dsifn.py


+ 0 - 0
paddlers/custom_models/cd/fc_ef.py → paddlers/rs_models/cd/fc_ef.py


+ 0 - 0
paddlers/custom_models/cd/fc_siam_conc.py → paddlers/rs_models/cd/fc_siam_conc.py


+ 0 - 0
paddlers/custom_models/cd/fc_siam_diff.py → paddlers/rs_models/cd/fc_siam_diff.py


+ 0 - 0
paddlers/custom_models/cd/layers/__init__.py → paddlers/rs_models/cd/layers/__init__.py


+ 0 - 0
paddlers/custom_models/cd/layers/attention.py → paddlers/rs_models/cd/layers/attention.py


+ 0 - 0
paddlers/custom_models/cd/layers/blocks.py → paddlers/rs_models/cd/layers/blocks.py


+ 1 - 1
paddlers/custom_models/cd/param_init.py → paddlers/rs_models/cd/param_init.py

@@ -67,7 +67,7 @@ class KaimingInitMixin:
 
     Examples:
 
-        from paddlers.custom_models.cd.models.param_init import KaimingInitMixin
+        from paddlers.rs_models.cd.models.param_init import KaimingInitMixin
 
         class CustomNet(nn.Layer, KaimingInitMixin):
             def __init__(self, num_channels, num_classes):

+ 0 - 0
paddlers/custom_models/cd/snunet.py → paddlers/rs_models/cd/snunet.py


+ 0 - 0
paddlers/custom_models/cd/stanet.py → paddlers/rs_models/cd/stanet.py


+ 0 - 0
paddlers/custom_models/cls/__init__.py → paddlers/rs_models/clas/__init__.py


+ 0 - 0
paddlers/custom_models/cls/condensenet_v2.py → paddlers/rs_models/clas/condensenet_v2.py


+ 0 - 0
paddlers/custom_models/det/__init__.py → paddlers/rs_models/det/__init__.py


+ 0 - 0
paddlers/custom_models/gan/__init__.py → paddlers/rs_models/res/__init__.py


+ 0 - 0
paddlers/custom_models/gan/generators/__init__.py → paddlers/rs_models/res/generators/__init__.py


+ 0 - 0
paddlers/custom_models/gan/generators/builder.py → paddlers/rs_models/res/generators/builder.py


+ 0 - 0
paddlers/custom_models/gan/generators/rcan.py → paddlers/rs_models/res/generators/rcan.py


+ 0 - 0
paddlers/custom_models/gan/rcan_model.py → paddlers/rs_models/res/rcan_model.py


+ 0 - 0
paddlers/custom_models/seg/__init__.py → paddlers/rs_models/seg/__init__.py


+ 0 - 0
paddlers/custom_models/seg/farseg.py → paddlers/rs_models/seg/farseg.py


+ 0 - 0
paddlers/custom_models/seg/layers/__init__.py → paddlers/rs_models/seg/layers/__init__.py


+ 0 - 0
paddlers/custom_models/seg/layers/layers_lib.py → paddlers/rs_models/seg/layers/layers_lib.py


+ 0 - 0
paddlers/custom_models/seg/layers/param_init.py → paddlers/rs_models/seg/layers/param_init.py


+ 5 - 5
paddlers/tasks/__init__.py

@@ -12,9 +12,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-from .object_detector import *
-from .segmenter import *
-from .change_detector import *
-from .classifier import *
+import paddlers.tasks.object_detector as det
+import paddlers.tasks.segmenter as seg
+import paddlers.tasks.change_detector as cd
+import paddlers.tasks.classifier as clas
+import paddlers.tasks.image_restorer as res
 from .load_model import load_model
-from .image_restorer import *

+ 1 - 1
paddlers/tasks/base.py

@@ -614,7 +614,7 @@ class BaseModel(metaclass=ModelMeta):
     def _build_inference_net(self):
         if self.model_type in ('classifier', 'detector'):
             infer_net = self.net
-        elif self.model_type == 'changedetector':
+        elif self.model_type == 'change_detector':
             infer_net = InferCDNet(self.net)
         else:
             infer_net = InferNet(self.net, self.model_type)

+ 3 - 3
paddlers/tasks/change_detector.py

@@ -25,7 +25,7 @@ import paddle.nn.functional as F
 from paddle.static import InputSpec
 
 import paddlers
-import paddlers.custom_models.cd as cmcd
+import paddlers.rs_models.cd as cmcd
 import paddlers.utils.logging as logging
 import paddlers.models.ppseg as paddleseg
 from paddlers.transforms import Resize, decode_image
@@ -49,9 +49,9 @@ class BaseChangeDetector(BaseModel):
         self.init_params = locals()
         if 'with_net' in self.init_params:
             del self.init_params['with_net']
-        super(BaseChangeDetector, self).__init__('changedetector')
+        super(BaseChangeDetector, self).__init__('change_detector')
         if model_name not in __all__:
-            raise Exception("ERROR: There's no model named {}.".format(
+            raise ValueError("ERROR: There is no model named {}.".format(
                 model_name))
         self.model_name = model_name
         self.num_classes = num_classes

+ 1 - 1
paddlers/tasks/classifier.py

@@ -23,7 +23,7 @@ import paddle.nn.functional as F
 from paddle.static import InputSpec
 
 import paddlers.models.ppcls as paddleclas
-import paddlers.custom_models.cls as cmcls
+import paddlers.rs_models.clas as cmcls
 import paddlers
 from paddlers.utils import get_single_card_bs, DisablePrint
 import paddlers.utils.logging as logging

+ 8 - 6
paddlers/tasks/load_model.py

@@ -73,9 +73,11 @@ def load_model(model_dir, **params):
         assert status == 'Infer', \
             "Only exported models can be deployed for inference, but current model status is {}.".format(status)
 
-    if not hasattr(paddlers.tasks, model_info['Model']):
-        raise Exception("There is no {} attribute in paddlers.tasks.".format(
-            model_info['Model']))
+    model_type = model_info['_Attributes']['model_type']
+    mod = getattr(paddlers.tasks, model_type)
+    if not hasattr(mod, model_info['Model']):
+        raise Exception("There is no {} attribute in {}.".format(model_info[
+            'Model'], mod))
     if 'model_name' in model_info['_init_params']:
         del model_info['_init_params']['model_name']
 
@@ -88,7 +90,7 @@ def load_model(model_dir, **params):
             )
         params = model_info.pop('raw_params', {})
         params.update(model_info['_init_params'])
-        model = getattr(paddlers.tasks, model_info['Model'])(**params)
+        model = getattr(mod, model_info['Model'])(**params)
         if with_net:
             if status == 'Pruned' or osp.exists(
                     osp.join(model_dir, "prune.yml")):
@@ -127,9 +129,9 @@ def load_model(model_dir, **params):
                 else:
                     net_state_dict = paddle.load(osp.join(model_dir, 'model'))
                     if model.model_type in [
-                            'classifier', 'segmenter', 'changedetector'
+                            'classifier', 'segmenter', 'change_detector'
                     ]:
-                        # When exporting a classifier, segmenter, or changedetector,
+                        # When exporting a classifier, segmenter, or change_detector,
                         # InferNet (or InferCDNet) is defined to append softmax and argmax operators to the model,
                         # so the parameter names all start with 'net.'
                         new_net_state_dict = {}

+ 1 - 1
paddlers/tasks/object_detector.py

@@ -48,7 +48,7 @@ class BaseDetector(BaseModel):
             del self.init_params['with_net']
         super(BaseDetector, self).__init__('detector')
         if not hasattr(ppdet.modeling, model_name):
-            raise Exception("ERROR: There's no model named {}.".format(
+            raise ValueError("ERROR: There is no model named {}.".format(
                 model_name))
 
         self.model_name = model_name

+ 2 - 2
paddlers/tasks/segmenter.py

@@ -24,7 +24,7 @@ import paddle.nn.functional as F
 from paddle.static import InputSpec
 
 import paddlers.models.ppseg as paddleseg
-import paddlers.custom_models.seg as cmseg
+import paddlers.rs_models.seg as cmseg
 import paddlers
 from paddlers.utils import get_single_card_bs, DisablePrint
 import paddlers.utils.logging as logging
@@ -48,7 +48,7 @@ class BaseSegmenter(BaseModel):
         super(BaseSegmenter, self).__init__('segmenter')
         if not hasattr(paddleseg.models, model_name) and \
            not hasattr(cmseg, model_name):
-            raise Exception("ERROR: There's no model named {}.".format(
+            raise ValueError("ERROR: There is no model named {}.".format(
                 model_name))
         self.model_name = model_name
         self.num_classes = num_classes

+ 1 - 1
paddlers/tasks/utils/infer_nets.py

@@ -46,7 +46,7 @@ class InferCDNet(paddle.nn.Layer):
     def __init__(self, net):
         super(InferCDNet, self).__init__()
         self.net = net
-        self.postprocessor = PostProcessor('changedetector')
+        self.postprocessor = PostProcessor('change_detector')
 
     def forward(self, x1, x2):
         net_outputs = self.net(x1, x2)

+ 1 - 1
paddlers/transforms/operators.py

@@ -284,7 +284,7 @@ class DecodeImg(Transform):
                 raise ValueError(
                     "The height or width of the image is not same as the mask.")
         if 'aux_masks' in sample:
-            sample['aux_masks_ori'] = copy.deepcopy(sample['aux_masks_ori'])
+            sample['aux_masks_ori'] = copy.deepcopy(sample['aux_masks'])
             sample['aux_masks'] = list(
                 map(self.apply_mask, sample['aux_masks']))
             # TODO: check the shape of auxiliary masks

+ 10 - 10
tests/rs_models/test_cd_models.py

@@ -65,7 +65,7 @@ class TestCDModel(TestModel):
 
 
 class TestBITModel(TestCDModel):
-    MODEL_CLASS = paddlers.custom_models.cd.BIT
+    MODEL_CLASS = paddlers.rs_models.cd.BIT
 
     def set_specs(self):
         base_spec = dict(in_channels=3, num_classes=2)
@@ -80,7 +80,7 @@ class TestBITModel(TestCDModel):
 
 
 class TestCDNetModel(TestCDModel):
-    MODEL_CLASS = paddlers.custom_models.cd.CDNet
+    MODEL_CLASS = paddlers.rs_models.cd.CDNet
     EF_MODE = 'Concat'
 
     def set_specs(self):
@@ -92,7 +92,7 @@ class TestCDNetModel(TestCDModel):
 
 
 class TestChangeStarModel(TestCDModel):
-    MODEL_CLASS = paddlers.custom_models.cd.ChangeStar
+    MODEL_CLASS = paddlers.rs_models.cd.ChangeStar
 
     def set_specs(self):
         self.specs = [
@@ -112,7 +112,7 @@ class TestChangeStarModel(TestCDModel):
 
 
 class TestDSAMNetModel(TestCDModel):
-    MODEL_CLASS = paddlers.custom_models.cd.DSAMNet
+    MODEL_CLASS = paddlers.rs_models.cd.DSAMNet
 
     def set_specs(self):
         base_spec = dict(in_channels=3, num_classes=2)
@@ -134,7 +134,7 @@ class TestDSAMNetModel(TestCDModel):
 
 
 class TestDSIFNModel(TestCDModel):
-    MODEL_CLASS = paddlers.custom_models.cd.DSIFN
+    MODEL_CLASS = paddlers.rs_models.cd.DSIFN
 
     def set_specs(self):
         self.specs = [
@@ -153,7 +153,7 @@ class TestDSIFNModel(TestCDModel):
 
 
 class TestFCEarlyFusionModel(TestCDModel):
-    MODEL_CLASS = paddlers.custom_models.cd.FCEarlyFusion
+    MODEL_CLASS = paddlers.rs_models.cd.FCEarlyFusion
     EF_MODE = 'Concat'
 
     def set_specs(self):
@@ -166,7 +166,7 @@ class TestFCEarlyFusionModel(TestCDModel):
 
 
 class TestFCSiamConcModel(TestCDModel):
-    MODEL_CLASS = paddlers.custom_models.cd.FCSiamConc
+    MODEL_CLASS = paddlers.rs_models.cd.FCSiamConc
 
     def set_specs(self):
         self.specs = [
@@ -178,7 +178,7 @@ class TestFCSiamConcModel(TestCDModel):
 
 
 class TestFCSiamDiffModel(TestCDModel):
-    MODEL_CLASS = paddlers.custom_models.cd.FCSiamDiff
+    MODEL_CLASS = paddlers.rs_models.cd.FCSiamDiff
 
     def set_specs(self):
         self.specs = [
@@ -190,7 +190,7 @@ class TestFCSiamDiffModel(TestCDModel):
 
 
 class TestSNUNetModel(TestCDModel):
-    MODEL_CLASS = paddlers.custom_models.cd.SNUNet
+    MODEL_CLASS = paddlers.rs_models.cd.SNUNet
 
     def set_specs(self):
         self.specs = [
@@ -202,7 +202,7 @@ class TestSNUNetModel(TestCDModel):
 
 
 class TestSTANetModel(TestCDModel):
-    MODEL_CLASS = paddlers.custom_models.cd.STANet
+    MODEL_CLASS = paddlers.rs_models.cd.STANet
 
     def set_specs(self):
         base_spec = dict(in_channels=3, num_classes=2)

+ 1 - 1
tests/rs_models/test_seg_models.py

@@ -48,7 +48,7 @@ class TestSegModel(TestModel):
 
 
 class TestFarSegModel(TestSegModel):
-    MODEL_CLASS = paddlers.custom_models.seg.FarSeg
+    MODEL_CLASS = paddlers.rs_models.seg.FarSeg
 
     def set_specs(self):
         self.specs = [

+ 4 - 1
tests/transforms/test_operators.py

@@ -23,7 +23,7 @@ from data import build_input_from_file
 
 __all__ = ['TestTransform', 'TestCompose', 'TestArrange']
 
-WHITE_LIST = []
+WHITE_LIST = ['ReloadMask']
 
 
 def _add_op_tests(cls):
@@ -37,6 +37,9 @@ def _add_op_tests(cls):
                                                      T.operators.Transform):
             if op_class is T.DecodeImg or op_class in WHITE_LIST or op_name in WHITE_LIST:
                 continue
+            if issubclass(op_class, T.Compose) or issubclass(
+                    op_class, T.operators.Arrange):
+                continue
             attr_name = 'test_' + op_name
             if hasattr(cls, attr_name):
                 continue

+ 1 - 1
tutorials/train/change_detection/bit.py

@@ -74,7 +74,7 @@ eval_dataset = pdrs.datasets.CDDataset(
 # 使用默认参数构建BIT模型
 # 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/change_detector.py
-model = pdrs.tasks.BIT()
+model = pdrs.tasks.cd.BIT()
 
 # 执行模型训练
 model.train(

+ 1 - 1
tutorials/train/change_detection/cdnet.py

@@ -74,7 +74,7 @@ eval_dataset = pdrs.datasets.CDDataset(
 # 使用默认参数构建CDNet模型
 # 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/change_detector.py
-model = pdrs.tasks.CDNet()
+model = pdrs.tasks.cd.CDNet()
 
 # 执行模型训练
 model.train(

+ 1 - 1
tutorials/train/change_detection/dsamnet.py

@@ -74,7 +74,7 @@ eval_dataset = pdrs.datasets.CDDataset(
 # 使用默认参数构建DSAMNet模型
 # 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/change_detector.py
-model = pdrs.tasks.DSAMNet()
+model = pdrs.tasks.cd.DSAMNet()
 
 # 执行模型训练
 model.train(

+ 1 - 1
tutorials/train/change_detection/dsifn.py

@@ -74,7 +74,7 @@ eval_dataset = pdrs.datasets.CDDataset(
 # 使用默认参数构建DSIFN模型
 # 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/change_detector.py
-model = pdrs.tasks.DSIFN()
+model = pdrs.tasks.cd.DSIFN()
 
 # 执行模型训练
 model.train(

+ 1 - 1
tutorials/train/change_detection/fc_ef.py

@@ -74,7 +74,7 @@ eval_dataset = pdrs.datasets.CDDataset(
 # 使用默认参数构建FC-EF模型
 # 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/change_detector.py
-model = pdrs.tasks.FCEarlyFusion()
+model = pdrs.tasks.cd.FCEarlyFusion()
 
 # 执行模型训练
 model.train(

+ 1 - 1
tutorials/train/change_detection/fc_siam_conc.py

@@ -74,7 +74,7 @@ eval_dataset = pdrs.datasets.CDDataset(
 # 使用默认参数构建FC-Siam-conc模型
 # 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/change_detector.py
-model = pdrs.tasks.FCSiamConc()
+model = pdrs.tasks.cd.FCSiamConc()
 
 # 执行模型训练
 model.train(

+ 1 - 1
tutorials/train/change_detection/fc_siam_diff.py

@@ -74,7 +74,7 @@ eval_dataset = pdrs.datasets.CDDataset(
 # 使用默认参数构建FC-Siam-diff模型
 # 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/change_detector.py
-model = pdrs.tasks.FCSiamDiff()
+model = pdrs.tasks.cd.FCSiamDiff()
 
 # 执行模型训练
 model.train(

+ 1 - 1
tutorials/train/change_detection/snunet.py

@@ -74,7 +74,7 @@ eval_dataset = pdrs.datasets.CDDataset(
 # 使用默认参数构建SNUNet模型
 # 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/change_detector.py
-model = pdrs.tasks.SNUNet()
+model = pdrs.tasks.cd.SNUNet()
 
 # 执行模型训练
 model.train(

+ 1 - 1
tutorials/train/change_detection/stanet.py

@@ -74,7 +74,7 @@ eval_dataset = pdrs.datasets.CDDataset(
 # 使用默认参数构建STANet模型
 # 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/change_detector.py
-model = pdrs.tasks.STANet()
+model = pdrs.tasks.cd.STANet()
 
 # 执行模型训练
 model.train(

+ 1 - 1
tutorials/train/classification/hrnet.py

@@ -68,7 +68,7 @@ eval_dataset = pdrs.datasets.ClasDataset(
 # 使用默认参数构建HRNet模型
 # 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/classifier.py
-model = pdrs.tasks.HRNet_W18_C(num_classes=len(train_dataset.labels))
+model = pdrs.tasks.clas.HRNet_W18_C(num_classes=len(train_dataset.labels))
 
 # 执行模型训练
 model.train(

+ 2 - 1
tutorials/train/classification/mobilenetv3.py

@@ -68,7 +68,8 @@ eval_dataset = pdrs.datasets.ClasDataset(
 # 使用默认参数构建MobileNetV3模型
 # 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/classifier.py
-model = pdrs.tasks.MobileNetV3_small_x1_0(num_classes=len(train_dataset.labels))
+model = pdrs.tasks.clas.MobileNetV3_small_x1_0(
+    num_classes=len(train_dataset.labels))
 
 # 执行模型训练
 model.train(

+ 1 - 1
tutorials/train/classification/resnet50_vd.py

@@ -68,7 +68,7 @@ eval_dataset = pdrs.datasets.ClasDataset(
 # 使用默认参数构建ResNet50-vd模型
 # 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/classifier.py
-model = pdrs.tasks.ResNet50_vd(num_classes=len(train_dataset.labels))
+model = pdrs.tasks.clas.ResNet50_vd(num_classes=len(train_dataset.labels))
 
 # 执行模型训练
 model.train(

+ 1 - 1
tutorials/train/image_restoration/drn_train.py

@@ -66,7 +66,7 @@ test_dataset = pdrs.datasets.SRdataset(
     scale=scale)
 
 # 初始化模型,可以对网络结构的参数进行调整
-model = pdrs.tasks.DRNet(
+model = pdrs.tasks.res.DRNet(
     n_blocks=30, n_feats=16, n_colors=3, rgb_range=255, negval=0.2)
 
 model.train(

+ 1 - 1
tutorials/train/image_restoration/esrgan_train.py

@@ -65,7 +65,7 @@ test_dataset = pdrs.datasets.SRdataset(
 # 初始化模型,可以对网络结构的参数进行调整
 # 若loss_type='gan' 使用感知损失、对抗损失和像素损失
 # 若loss_type = 'pixel' 只使用像素损失
-model = pdrs.tasks.ESRGANet(loss_type='pixel')
+model = pdrs.tasks.res.ESRGANet(loss_type='pixel')
 
 model.train(
     total_iters=1000000,

+ 1 - 1
tutorials/train/image_restoration/lesrcnn_train.py

@@ -63,7 +63,7 @@ test_dataset = pdrs.datasets.SRdataset(
     scale=scale)
 
 # 初始化模型,可以对网络结构的参数进行调整
-model = pdrs.tasks.LESRCNNet(scale=4, multi_scale=False, group=1)
+model = pdrs.tasks.res.LESRCNNet(scale=4, multi_scale=False, group=1)
 
 model.train(
     total_iters=1000000,

+ 1 - 1
tutorials/train/object_detection/faster_rcnn.py

@@ -76,7 +76,7 @@ eval_dataset = pdrs.datasets.VOCDetection(
 # 构建Faster R-CNN模型
 # 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/object_detector.py
-model = pdrs.tasks.FasterRCNN(num_classes=len(train_dataset.labels))
+model = pdrs.tasks.det.FasterRCNN(num_classes=len(train_dataset.labels))
 
 # 执行模型训练
 model.train(

+ 1 - 1
tutorials/train/object_detection/ppyolo.py

@@ -76,7 +76,7 @@ eval_dataset = pdrs.datasets.VOCDetection(
 # 构建PP-YOLO模型
 # 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/object_detector.py
-model = pdrs.tasks.PPYOLO(num_classes=len(train_dataset.labels))
+model = pdrs.tasks.det.PPYOLO(num_classes=len(train_dataset.labels))
 
 # 执行模型训练
 model.train(

+ 1 - 1
tutorials/train/object_detection/ppyolotiny.py

@@ -76,7 +76,7 @@ eval_dataset = pdrs.datasets.VOCDetection(
 # 构建PP-YOLO Tiny模型
 # 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/object_detector.py
-model = pdrs.tasks.PPYOLOTiny(num_classes=len(train_dataset.labels))
+model = pdrs.tasks.det.PPYOLOTiny(num_classes=len(train_dataset.labels))
 
 # 执行模型训练
 model.train(

+ 1 - 1
tutorials/train/object_detection/ppyolov2.py

@@ -76,7 +76,7 @@ eval_dataset = pdrs.datasets.VOCDetection(
 # 构建PP-YOLOv2模型
 # 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/object_detector.py
-model = pdrs.tasks.PPYOLOv2(num_classes=len(train_dataset.labels))
+model = pdrs.tasks.det.PPYOLOv2(num_classes=len(train_dataset.labels))
 
 # 执行模型训练
 model.train(

+ 1 - 1
tutorials/train/object_detection/yolov3.py

@@ -76,7 +76,7 @@ eval_dataset = pdrs.datasets.VOCDetection(
 # 构建YOLOv3模型,使用DarkNet53作为backbone
 # 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/object_detector.py
-model = pdrs.tasks.YOLOv3(
+model = pdrs.tasks.det.YOLOv3(
     num_classes=len(train_dataset.labels), backbone='DarkNet53')
 
 # 执行模型训练

+ 1 - 1
tutorials/train/semantic_segmentation/deeplabv3p.py

@@ -70,7 +70,7 @@ eval_dataset = pdrs.datasets.SegDataset(
 # 构建DeepLab V3+模型,使用ResNet-50作为backbone
 # 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/segmenter.py
-model = pdrs.tasks.DeepLabV3P(
+model = pdrs.tasks.seg.DeepLabV3P(
     input_channel=NUM_BANDS,
     num_classes=len(train_dataset.labels),
     backbone='ResNet50_vd')

+ 1 - 1
tutorials/train/semantic_segmentation/unet.py

@@ -70,7 +70,7 @@ eval_dataset = pdrs.datasets.SegDataset(
 # 构建UNet模型
 # 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/segmenter.py
-model = pdrs.tasks.UNet(
+model = pdrs.tasks.seg.UNet(
     input_channel=NUM_BANDS, num_classes=len(train_dataset.labels))
 
 # 执行模型训练