Browse Source

Add API docs

Bobholamovic 2 years ago
parent
commit
c9d6a2b8c6

+ 3 - 3
README.md

@@ -29,13 +29,13 @@ PaddleRS是遥感科研院所、相关高校共同基于飞桨开发的遥感处
 
 PaddleRS具有以下五大特色:
 
-* <img src="./docs/images/f1.png" width="20"/> **丰富的遥感特色模型**:支持FarSeg、BIT、ChangeStar等数十种遥感专用模型,覆盖图像分割、目标检测、变化检测等领域
+* <img src="./docs/images/f1.png" width="20"/> **丰富的遥感特色模型**:支持FarSeg、BIT、ChangeStar等众多遥感领域深度学习模型,覆盖图像分割、目标检测、场景分类、变化检测等任务
 
 * <img src="./docs/images/f1.png" width="20"/> **对遥感专有任务的支持**:支持包括变化检测在内的遥感领域特色任务,提供完善的训练、部署教程以及丰富的实践案例。
 
 * <img src="./docs/images/f2.png" width="20"/> **面向遥感影像大幅面性质的针对性优化**:支持大幅面影像滑窗推理,使用内存延迟载入技术提升性能;支持对大幅面影像地理坐标信息的读写。
 
-* <img src="./docs/images/f2.png" width="20"/> **顾及遥感特性与地学知识的数据预处理**:针对遥感数据特点,提供对包含任意数量波段的数据以及多时相数据的预处理功能,支持影像配准、辐射校正、波段选择等遥感专有数据预处理方法。
+* <img src="./docs/images/f2.png" width="20"/> **顾及遥感特性与地学知识的数据预处理**:针对遥感数据特点,提供对包含任意数量波段的数据以及多时相数据的预处理功能,支持影像配准、辐射校正、波段选择等遥感数据预处理方法。
 
 * <img src="./docs/images/f3.png" width="20"/> **工业级训练与部署性能**:支持多进程异步I/O、多卡并行训练等加速策略,结合飞桨核心框架的显存优化功能,可大幅度减少模型的训练开销,帮助开发者以更低成本、更高效地完成遥感的开发和训练。
 
@@ -188,7 +188,7 @@ PaddleRS目录树中关键部分如下:
 * 准备数据集
   * [快速了解遥感与遥感数据](./docs/data/rs_data.md)
   * [遥感数据集整理](./docs/data/dataset.md)
-  * [智能标注工具EISeg](https://github.com/PaddlePaddle/PaddleSeg/tree/release/2.4/EISeg)
+  * [智能标注工具EISeg](https://github.com/PaddlePaddle/PaddleSeg/tree/release/2.6/EISeg)
   * [遥感影像处理工具集](./docs/data/tools.md)
 * 组件介绍
   * [数据预处理/数据增强](./docs/intro/transforms.md)

+ 1 - 1
deploy/README.md

@@ -56,7 +56,7 @@ res = predictor.predict(("demo_data/A.png", "demo_data/B.png"))
 cm_1024x1024 = res['label_map']
 ```
 
-请注意,**`predictor.predict()`方法接受的影像列表长度与导出模型时指定的batch size必须一致**(若指定的batch size不为-1),这是因为`Predictor`对象将所有输入影像拼接成一个batch执行预测。您可以在[模型推理API说明](../docs/apis/infer.md)中了解关于`predictor.predict()`方法返回结果格式的更多信息。
+请注意,**`predictor.predict()`方法接受的影像列表长度与导出模型时指定的batch size必须一致**(若指定的batch size不为-1),这是因为`Predictor`对象将所有输入影像拼接成一个batch执行预测。您可以在[模型推理API说明](https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/infer.md)中了解关于`predictor.predict()`方法返回结果格式的更多信息。
 
 ### 2.2 指定预热轮数与重复次数
 

+ 11 - 0
docs/apis/data.md

@@ -0,0 +1,11 @@
+# 数据相关API说明
+
+## 数据集
+
+在PaddleRS中,所有数据集均继承自
+
+## 数据预处理/数据增强算子
+
+## 组合数据处理算子
+
+## `decode_image()`

+ 11 - 0
docs/apis/infer.md

@@ -0,0 +1,11 @@
+# PaddleRS推理API说明
+
+## 动态图推理API
+
+### 整图推理
+
+### 滑窗推理
+
+## 静态图推理API
+
+### Python API

+ 215 - 0
docs/apis/train.md

@@ -0,0 +1,215 @@
+# PaddleRS训练API说明
+
+训练器封装了模型训练、验证、量化以及动态图推理等逻辑,定义在`paddlers/tasks/`目录下的文件中。为了方便用户使用,PaddleRS为所有支持的模型均提供了继承自父类[`BaseModel`](https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/base.py)的训练器,并对外提供数个API。变化检测、场景分类、图像分割以及目标检测任务对应的训练器类型分别为`BaseChangeDetector`、`BaseClassifier`、`BaseDetector`和`BaseSegmenter`。本文档介绍训练器的初始化函数以及`train()`、`evaluate()` API。
+
+## 初始化训练器
+
+所有训练器均支持默认参数构造(即构造对象时不传入任何参数),在这种情况下,构造出的训练器对象适用于三通道RGB数据。
+
+### 初始化`BaseChangeDetector`子类对象
+
+一般支持设置`num_classes`、`use_mixed_loss`以及`in_channels`参数,分别表示模型输出类别数、是否使用预置的混合损失以及输入通道数。部分子类如`DSIFN`暂不支持对`in_channels`参数的设置。`use_mixed_loss`参将在未来被弃用,因此不建议使用。不同的子类支持与模型相关的输入参数,详情请参考[模型定义](https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/rs_models/cd)和[训练器定义](https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/change_detector.py)。
+
+### 初始化`BaseClassifier`子类对象
+
+一般支持设置`num_classes`和`use_mixed_loss`参数,分别表示模型输出类别数以及是否使用预置的混合损失。`use_mixed_loss`参将在未来被弃用,因此不建议使用。不同的子类支持与模型相关的输入参数,详情请参考[模型定义](https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/rs_models/clas)和[训练器定义](https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/classifier.py)。
+
+### 初始化`Baseetector`子类对象
+
+一般支持设置`num_classes`和`backbone`参数,分别表示模型输出类别数以及所用的骨干网络类型。相比其它任务,目标检测任务的训练器支持设置的初始化参数较多,囊括网络结构、损失函数、后处理策略等方面。不同的子类支持与模型相关的输入参数,详情请参考[模型定义](https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/rs_models/det)和[训练器定义](https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/object_detector.py)。
+
+### 初始化`BaseSegmenter`子类对象
+
+一般支持设置`input_channel`、`num_classes`以及`use_mixed_loss`参数,分别表示输入通道数、输出类别数以及是否使用预置的混合损失。部分模型如`FarSeg`暂不支持对`input_channel`参数的设置。`use_mixed_loss`参将在未来被弃用,因此不建议使用。不同的子类支持与模型相关的输入参数,详情请参考[模型定义](https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/rs_models/seg)和[训练器定义](https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/segmentor.py)。
+
+## `train()`
+
+### `BaseChangeDetector.train()`
+
+方法定义如下:
+
+```python
+def train(self,
+            num_epochs,
+            train_dataset,
+            train_batch_size=2,
+            eval_dataset=None,
+            optimizer=None,
+            save_interval_epochs=1,
+            log_interval_steps=2,
+            save_dir='output',
+            pretrain_weights=None,
+            learning_rate=0.01,
+            lr_decay_power=0.9,
+            early_stop=False,
+            early_stop_patience=5,
+            use_vdl=True,
+            resume_checkpoint=None):
+```
+
+其中各参数的含义如下:
+
+|参数名称|类型|参数说明|默认值|
+|-------|----|--------|-----|
+|`num_epochs`|`int`|训练的epoch数目。||
+|`train_dataset`|`paddlers.datasets.CDDataset`|训练数据集。||
+|`train_batch_size`|`int`|训练时使用的batch size。|`2`|
+|`eval_dataset`|`paddlers.datasets.CDDataset` \| `None`|验证数据集。|`None`|
+|`optimizer`|`paddle.optimizer.Optimizer` \| `None`|训练时使用的优化器。若为`None`,则使用默认定义的优化器。|`None`|
+|`save_interval_epochs`|`int`|训练时存储模型的间隔epoch数。|`1`|
+|`log_interval_steps`|`int`|训练时打印日志的间隔step数(即迭代数)。|`2`|
+|`save_dir`|`str`|存储模型的路径。|`'output'`|
+|`pretrain_weights`|`str` \| `None`|预训练权重的名称/路径。若为`None`,则不适用预训练权重。|`None`|
+|`learning_rate`|`float`|训练时使用的学习率大小,适用于默认优化器。|`0.01`|
+|`lr_decay_power`|`float`|学习率衰减系数,适用于默认优化器。|`0.9`|
+|`early_stop`|`bool`|训练过程是否启用早停策略。|`False`|
+|`early_stop_patience`|`int`|启用早停策略时的`patience`参数(参见[`EarlyStop`](https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/utils/utils.py))。|`5`|
+|`use_vdl`|`bool`|是否启用VisualDL日志。|`True`|
+|`resume_checkpoint`|`str` \| `None`|检查点路径。PaddleRS支持从检查点(包含先前训练过程中存储的模型权重和优化器权重)继续训练,但需注意`resume_checkpoint`与`pretrain_weights`不得同时设置为`None`以外的值。|`None`|
+
+### `BaseClassifier.train()`
+
+方法定义如下:
+
+```python
+def train(self,
+            num_epochs,
+            train_dataset,
+            train_batch_size=2,
+            eval_dataset=None,
+            optimizer=None,
+            save_interval_epochs=1,
+            log_interval_steps=2,
+            save_dir='output',
+            pretrain_weights='IMAGENET',
+            learning_rate=0.1,
+            lr_decay_power=0.9,
+            early_stop=False,
+            early_stop_patience=5,
+            use_vdl=True,
+            resume_checkpoint=None):
+```
+
+其中各参数的含义如下:
+
+|参数名称|类型|参数说明|默认值|
+|-------|----|--------|-----|
+|`num_epochs`|`int`|训练的epoch数目。||
+|`train_dataset`|`paddlers.datasets.ClasDataset`|训练数据集。||
+|`train_batch_size`|`int`|训练时使用的batch size。|`2`|
+|`eval_dataset`|`paddlers.datasets.ClasDataset` \| `None`|验证数据集。|`None`|
+|`optimizer`|`paddle.optimizer.Optimizer` \| `None`|训练时使用的优化器。若为`None`,则使用默认定义的优化器。|`None`|
+|`save_interval_epochs`|`int`|训练时存储模型的间隔epoch数。|`1`|
+|`log_interval_steps`|`int`|训练时打印日志的间隔step数(即迭代数)。|`2`|
+|`save_dir`|`str`|存储模型的路径。|`'output'`|
+|`pretrain_weights`|`str` \| `None`|预训练权重的名称/路径。若为`None`,则不适用预训练权重。|`'IMAGENET'`|
+|`learning_rate`|`float`|训练时使用的学习率大小,适用于默认优化器。|`0.1`|
+|`lr_decay_power`|`float`|学习率衰减系数,适用于默认优化器。|`0.9`|
+|`early_stop`|`bool`|训练过程是否启用早停策略。|`False`|
+|`early_stop_patience`|`int`|启用早停策略时的`patience`参数(参见[`EarlyStop`](https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/utils/utils.py))。|`5`|
+|`use_vdl`|`bool`|是否启用VisualDL日志。|`True`|
+|`resume_checkpoint`|`str` \| `None`|检查点路径。PaddleRS支持从检查点(包含先前训练过程中存储的模型权重和优化器权重)继续训练,但需注意`resume_checkpoint`与`pretrain_weights`不得同时设置为`None`以外的值。|`None`|
+
+### `BaseDetector.train()`
+
+方法定义如下:
+
+```python
+def train(self,
+            num_epochs,
+            train_dataset,
+            train_batch_size=64,
+            eval_dataset=None,
+            optimizer=None,
+            save_interval_epochs=1,
+            log_interval_steps=10,
+            save_dir='output',
+            pretrain_weights='IMAGENET',
+            learning_rate=.001,
+            warmup_steps=0,
+            warmup_start_lr=0.0,
+            lr_decay_epochs=(216, 243),
+            lr_decay_gamma=0.1,
+            metric=None,
+            use_ema=False,
+            early_stop=False,
+            early_stop_patience=5,
+            use_vdl=True,
+            resume_checkpoint=None):
+```
+
+其中各参数的含义如下:
+
+|参数名称|类型|参数说明|默认值|
+|-------|----|--------|-----|
+|`num_epochs`|`int`|训练的epoch数目。||
+|`train_dataset`|`paddlers.datasets.COCODetDataset` \| `paddlers.datasets.VOCDetDataset` |训练数据集。||
+|`train_batch_size`|`int`|训练时使用的batch size(多卡训练时,为所有设备合计batch size)。|`64`|
+|`eval_dataset`|`paddlers.datasets.COCODetDataset` \| `paddlers.datasets.VOCDetDataset` \| `None`|验证数据集。|`None`|
+|`optimizer`|`paddle.optimizer.Optimizer` \| `None`|训练时使用的优化器。若为`None`,则使用默认定义的优化器。|`None`|
+|`save_interval_epochs`|`int`|训练时存储模型的间隔epoch数。|`1`|
+|`log_interval_steps`|`int`|训练时打印日志的间隔step数(即迭代数)。|`10`|
+|`save_dir`|`str`|存储模型的路径。|`'output'`|
+|`pretrain_weights`|`str` \| `None`|预训练权重的名称/路径。若为`None`,则不适用预训练权重。|`'IMAGENET'`|
+|`learning_rate`|`float`|训练时使用的学习率大小,适用于默认优化器。|`0.001`|
+|`warmup_steps`|`int`|默认优化器使用[warm-up策略](https://www.mdpi.com/2079-9292/10/16/2029/htm)的预热轮数。|`0`|
+|`warmup_start_lr`|`int`|默认优化器warm-up阶段使用的初始学习率。|`0`|
+|`lr_decay_epochs`|`list` \| `tuple`|默认优化器学习率衰减的milestones,以epoch计。即,在第几个epoch执行学习率的衰减。|`(216, 243)`|
+|`lr_decay_gamma`|`float`|学习率衰减系数,适用于默认优化器。|`0.1`|
+|`metric`|`str` \| `None`|评价指标,可以为`'VOC'`、`COCO`或`None`。若为`Nnoe`,则根据数据集格式自动确定使用的评价指标。|`None`|
+|`use_ema`|`bool`|是否启用[指数滑动平均策略](https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/models/ppdet/optimizer.py)更新模型权重参数。|`False`|
+|`early_stop`|`bool`|训练过程是否启用早停策略。|`False`|
+|`early_stop_patience`|`int`|启用早停策略时的`patience`参数(参见[`EarlyStop`](https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/utils/utils.py))。|`5`|
+|`use_vdl`|`bool`|是否启用VisualDL日志。|`True`|
+|`resume_checkpoint`|`str` \| `None`|检查点路径。PaddleRS支持从检查点(包含先前训练过程中存储的模型权重和优化器权重)继续训练,但需注意`resume_checkpoint`与`pretrain_weights`不得同时设置为`None`以外的值。|`None`|
+
+### `BaseSegmenter.train()`
+
+```python
+def train(self,
+            num_epochs,
+            train_dataset,
+            train_batch_size=2,
+            eval_dataset=None,
+            optimizer=None,
+            save_interval_epochs=1,
+            log_interval_steps=2,
+            save_dir='output',
+            pretrain_weights='CITYSCAPES',
+            learning_rate=0.01,
+            lr_decay_power=0.9,
+            early_stop=False,
+            early_stop_patience=5,
+            use_vdl=True,
+            resume_checkpoint=None):
+```
+
+其中各参数的含义如下:
+
+|参数名称|类型|参数说明|默认值|
+|-------|----|--------|-----|
+|`num_epochs`|`int`|训练的epoch数目。||
+|`train_dataset`|`paddlers.datasets.SegDataset`|训练数据集。||
+|`train_batch_size`|`int`|训练时使用的batch size。|`2`|
+|`eval_dataset`|`paddlers.datasets.SegDataset` \| `None`|验证数据集。|`None`|
+|`optimizer`|`paddle.optimizer.Optimizer` \| `None`|训练时使用的优化器。若为`None`,则使用默认定义的优化器。|`None`|
+|`save_interval_epochs`|`int`|训练时存储模型的间隔epoch数。|`1`|
+|`log_interval_steps`|`int`|训练时打印日志的间隔step数(即迭代数)。|`2`|
+|`save_dir`|`str`|存储模型的路径。|`'output'`|
+|`pretrain_weights`|`str` \| `None`|预训练权重的名称/路径。若为`None`,则不适用预训练权重。|`'CITYSCAPES'`|
+|`learning_rate`|`float`|训练时使用的学习率大小,适用于默认优化器。|`0.01`|
+|`lr_decay_power`|`float`|学习率衰减系数,适用于默认优化器。|`0.9`|
+|`early_stop`|`bool`|训练过程是否启用早停策略。|`False`|
+|`early_stop_patience`|`int`|启用早停策略时的`patience`参数(参见[`EarlyStop`](https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/utils/utils.py))。|`5`|
+|`use_vdl`|`bool`|是否启用VisualDL日志。|`True`|
+|`resume_checkpoint`|`str` \| `None`|检查点路径。PaddleRS支持从检查点(包含先前训练过程中存储的模型权重和优化器权重)继续训练,但需注意`resume_checkpoint`与`pretrain_weights`不得同时设置为`None`以外的值。|`None`|
+
+## `evaluate()`
+
+### `BaseChangeDetector.evaluate()`
+
+### `BaseClassifier.evaluate()`
+
+### `BaseDetector.evaluate()`
+
+### `BaseSegmenter.evaluate()`

+ 1 - 0
docs/data/rs_data.md

@@ -11,6 +11,7 @@
 遥感技术具有宏观性、多波段性、周期性和经济性的特点。其中,宏观性指的是遥感平台越高,视角就越广,可以同步探测到的地面范围就越广;多波段性指的是传感器可以从紫外、可见光、近红外到微波等各个不同波段进行探测和记录信息;周期性指的是遥感卫星具有以一定周期重复获取图像的特点,可以在短时间内对同一地区进行重复观测;经济性指的是遥感技术可以作为一种获取大面积地表信息的方式,而相对不需要花费太多人力物力。
 
 遥感技术的特点决定了遥感影像具有如下特性:
+
 1. 大尺度。一幅遥感影像能够覆盖广大的地表面积。
 2. 多光谱。相比自然图像,遥感影像往往具有较多的波段数。
 3. 来源丰富。不同传感器、不同卫星可以提供多样的数据源。

+ 29 - 28
docs/intro/model_zoo.md

@@ -2,33 +2,34 @@
 
 PaddleRS的基础模型库来自Paddle-CV系列套件:[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也包含一系列遥感特色模型,可用于遥感影像分割、变化检测等。
 
-## PaddleRS支持的模型列表
+## PaddleRS支持的模型列表
 
-PaddleRS支持的全部模型如下(标注\*的为遥感专用模型):
+PaddleRS目前已支持的全部模型如下(标注\*的为遥感专用模型):
 
-| 任务 | 模型 |
-|--------|---------|
-| 变化检测 | \*BIT |
-| 变化检测 | \*CDNet |
-| 变化检测 | \*DSAMNet |
-| 变化检测 | \*DSIFN |
-| 变化检测 | \*SNUNet |
-| 变化检测 | \*STANet |
-| 变化检测 | \*FC-EF |
-| 变化检测 | \*FC-Siam-conc |
-| 变化检测 | \*FC-Siam-diff |
-| 场景分类 | HRNet |
-| 场景分类 | MobileNetV3 |
-| 场景分类 | ResNet50-vd |
-| 场景分类 | CondenseNetV2 |
-| 图像复原 | DRN |
-| 图像复原 | ESRGAN |
-| 图像复原 | LESRCNN |
-| 目标检测 | Faster R-CNN |
-| 目标检测 | PP-YOLO |
-| 目标检测 | PP-YOLO Tiny |
-| 目标检测 | PP-YOLOv2 |
-| 目标检测 | YOLOv3 |
-| 图像分割 | DeepLab V3+ |
-| 图像分割 | UNet |
-| 图像分割 | \*FarSeg |
+| 任务 | 模型 | 多波段支持 |
+|--------|---------|------|
+| 变化检测 | \*BIT | 是 |
+| 变化检测 | \*CDNet | 是 |
+| 变化检测 | \*DSAMNet | 是 |
+| 变化检测 | \*DSIFN | 否 |
+| 变化检测 | \*SNUNet | 是 |
+| 变化检测 | \*STANet | 是 |
+| 变化检测 | \*FC-EF | 是 |
+| 变化检测 | \*FC-Siam-conc | 是 |
+| 变化检测 | \*FC-Siam-diff | 是 |
+| 变化检测 | \*ChangeStar | 否 |
+| 场景分类 | HRNet | 是 |
+| 场景分类 | MobileNetV3 | 是 |
+| 场景分类 | ResNet50-vd | 是 |
+| 场景分类 | CondenseNetV2 | 是 |
+| 图像复原 | DRN | 否 |
+| 图像复原 | ESRGAN | 否 |
+| 图像复原 | LESRCNN | 否 |
+| 目标检测 | Faster R-CNN | 是 |
+| 目标检测 | PP-YOLO | 是 |
+| 目标检测 | PP-YOLO Tiny | 是 |
+| 目标检测 | PP-YOLOv2 | 是 |
+| 目标检测 | YOLOv3 | 是 |
+| 图像分割 | DeepLab V3+ | 是 |
+| 图像分割 | UNet | 是 |
+| 图像分割 | \*FarSeg | 否 |

+ 11 - 1
docs/intro/transforms.md

@@ -1,6 +1,12 @@
 # 数据预处理/数据增强
 
-PaddleRS对不同遥感任务需要的数据预处理/数据增强策略进行了有机整合,设计统一的算子,并通过`paddlers.transforms.DecodeImg`对各种格式的遥感影像进行读取。PaddleRS提供的所有数据预处理/数据增强算子如下表:
+## 读取各种格式的遥感影像
+
+遥感影像的来源多样,数据格式十分繁杂。PaddleRS为不同类型、不同格式的遥感影像提供了统一的读取接口,只需向`paddlers.transforms.decode_image()`函数传入影像路径,即可将其中的数据信息读取至内存。目前,`paddlers.transforms.decode_image()`支持.png、.jpg、.bmp、.npy等常见文件格式,也支持遥感领域常用的GeoTiff、img等影像格式。
+
+## PaddleRS已支持的数据预处理/数据增强算子列表
+
+PaddleRS对不同遥感任务需要的数据预处理/数据增强策略进行了有机整合,设计统一的算子。考虑到遥感影像的多波段特性,PaddleRS的大部分数据处理算子均能够处理任意数量波段的输入。PaddleRS目前提供的所有数据预处理/数据增强算子如下表:
 
 | 数据预处理/数据增强算子名 | 用途                                           | 任务     | ... |
 | -------------------- | ------------------------------------------------- | -------- | ---- |
@@ -25,3 +31,7 @@ PaddleRS对不同遥感任务需要的数据预处理/数据增强策略进行
 | SelectBand           | 对输入影像进行波段选择 | 所有任务 | ... |
 | RandomSwap           | 随机交换两个时相的输入影像 | 变化检测 | ... |
 | ...                  | ... | ... | ... |
+
+## 组合算子
+
+在实际的模型训练过程中,常常需要组合多种数据预处理与数据增强策略。PaddleRS提供了`paddlers.transforms.Compose`类以便捷地组合多个数据预处理/数据增强算子,使这些算子能够串行执行。关于`paddlers.transforms.Compose`的具体用法请参见[API说明](https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/data.md)。

+ 2 - 2
paddlers/tasks/classifier.py

@@ -208,7 +208,7 @@ class BaseClassifier(BaseModel):
             train_dataset (paddlers.datasets.ClasDataset): Training dataset.
             train_batch_size (int, optional): Total batch size among all cards used in 
                 training. Defaults to 2.
-            eval_dataset (paddlers.datasets.ClasDataset, optional): Evaluation dataset. 
+            eval_dataset (paddlers.datasets.ClasDataset|None, optional): Evaluation dataset. 
                 If None, the model will not be evaluated during training process. 
                 Defaults to None.
             optimizer (paddle.optimizer.Optimizer|None, optional): Optimizer used in 
@@ -319,7 +319,7 @@ class BaseClassifier(BaseModel):
             train_dataset (paddlers.datasets.ClasDataset): Training dataset.
             train_batch_size (int, optional): Total batch size among all cards used in 
                 training. Defaults to 2.
-            eval_dataset (paddlers.datasets.ClasDataset, optional): Evaluation dataset. 
+            eval_dataset (paddlers.datasets.ClasDataset|None, optional): Evaluation dataset. 
                 If None, the model will not be evaluated during training process. 
                 Defaults to None.
             optimizer (paddle.optimizer.Optimizer|None, optional): Optimizer used in 

+ 5 - 5
paddlers/tasks/object_detector.py

@@ -213,7 +213,7 @@ class BaseDetector(BaseModel):
                 Training dataset.
             train_batch_size (int, optional): Total batch size among all cards used in 
                 training. Defaults to 64.
-            eval_dataset (paddlers.datasets.COCODetDataset|paddlers.datasets.VOCDetDataset, optional): 
+            eval_dataset (paddlers.datasets.COCODetDataset|paddlers.datasets.VOCDetDataset|None, optional): 
                 Evaluation dataset. If None, the model will not be evaluated during training 
                 process. Defaults to None.
             optimizer (paddle.optimizer.Optimizer|None, optional): Optimizer used for 
@@ -379,7 +379,7 @@ class BaseDetector(BaseModel):
                 Training dataset.
             train_batch_size (int, optional): Total batch size among all cards used in 
                 training. Defaults to 64.
-            eval_dataset (paddlers.datasets.COCODetDataset|paddlers.datasets.VOCDetDataset, optional): 
+            eval_dataset (paddlers.datasets.COCODetDataset|paddlers.datasets.VOCDetDataset|None, optional): 
                 Evaluation dataset. If None, the model will not be evaluated during training 
                 process. Defaults to None.
             optimizer (paddle.optimizer.Optimizer or None, optional): Optimizer used for 
@@ -907,7 +907,7 @@ class PicoDet(BaseDetector):
                 Training dataset.
             train_batch_size (int, optional): Total batch size among all cards used in 
                 training. Defaults to 64.
-            eval_dataset (paddlers.datasets.COCODetDataset|paddlers.datasets.VOCDetDataset, optional): 
+            eval_dataset (paddlers.datasets.COCODetDataset|paddlers.datasets.VOCDetDataset|None, optional): 
                 Evaluation dataset. If None, the model will not be evaluated during training 
                 process. Defaults to None.
             optimizer (paddle.optimizer.Optimizer|None, optional): Optimizer used for 
@@ -1400,7 +1400,7 @@ class FasterRCNN(BaseDetector):
                 Training dataset.
             train_batch_size (int, optional): Total batch size among all cards used in 
                 training. Defaults to 64.
-            eval_dataset (paddlers.datasets.COCODetDataset|paddlers.datasets.VOCDetDataset, optional): 
+            eval_dataset (paddlers.datasets.COCODetDataset|paddlers.datasets.VOCDetDataset|None, optional): 
                 Evaluation dataset. If None, the model will not be evaluated during training 
                 process. Defaults to None.
             optimizer (paddle.optimizer.Optimizer|None, optional): Optimizer used for 
@@ -2242,7 +2242,7 @@ class MaskRCNN(BaseDetector):
                 Training dataset.
             train_batch_size (int, optional): Total batch size among all cards used in 
                 training. Defaults to 64.
-            eval_dataset (paddlers.datasets.COCODetDataset|paddlers.datasets.VOCDetDataset, optional): 
+            eval_dataset (paddlers.datasets.COCODetDataset|paddlers.datasets.VOCDetDataset|None, optional): 
                 Evaluation dataset. If None, the model will not be evaluated during training 
                 process. Defaults to None.
             optimizer (paddle.optimizer.Optimizer|None, optional): Optimizer used for 

+ 1 - 1
paddlers/tasks/segmenter.py

@@ -247,7 +247,7 @@ class BaseSegmenter(BaseModel):
             pretrain_weights (str|None, optional): None or name/path of pretrained 
                 weights. If None, no pretrained weights will be loaded. 
                 Defaults to 'CITYSCAPES'.
-            learning_rate (float, optional): Learning rate for training. Defaults to .025.
+            learning_rate (float, optional): Learning rate for training. Defaults to .01.
             lr_decay_power (float, optional): Learning decay power. Defaults to .9.
             early_stop (bool, optional): Whether to adopt early stop strategy. Defaults 
                 to False.

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

@@ -21,7 +21,7 @@ pdrs.utils.download_and_decompress(
 
 # 定义训练和验证时使用的数据变换(数据增强、预处理等)
 # 使用Compose组合多种变换方式。Compose中包含的变换将按顺序串行执行
-# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/transforms.md
+# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/data.md
 train_transforms = T.Compose([
     # 读取影像
     T.DecodeImg(),
@@ -72,7 +72,7 @@ eval_dataset = pdrs.datasets.CDDataset(
     binarize_labels=True)
 
 # 使用默认参数构建BIT模型
-# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
+# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/intro/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/change_detector.py
 model = pdrs.tasks.cd.BIT()
 

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

@@ -21,7 +21,7 @@ pdrs.utils.download_and_decompress(
 
 # 定义训练和验证时使用的数据变换(数据增强、预处理等)
 # 使用Compose组合多种变换方式。Compose中包含的变换将按顺序串行执行
-# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/transforms.md
+# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/data.md
 train_transforms = T.Compose([
     # 读取影像
     T.DecodeImg(),
@@ -72,7 +72,7 @@ eval_dataset = pdrs.datasets.CDDataset(
     binarize_labels=True)
 
 # 使用默认参数构建CDNet模型
-# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
+# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/intro/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/change_detector.py
 model = pdrs.tasks.cd.CDNet()
 

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

@@ -21,7 +21,7 @@ pdrs.utils.download_and_decompress(
 
 # 定义训练和验证时使用的数据变换(数据增强、预处理等)
 # 使用Compose组合多种变换方式。Compose中包含的变换将按顺序串行执行
-# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/transforms.md
+# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/data.md
 train_transforms = T.Compose([
     # 读取影像
     T.DecodeImg(),
@@ -72,7 +72,7 @@ eval_dataset = pdrs.datasets.CDDataset(
     binarize_labels=True)
 
 # 使用默认参数构建DSAMNet模型
-# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
+# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/intro/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/change_detector.py
 model = pdrs.tasks.cd.DSAMNet()
 

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

@@ -21,7 +21,7 @@ pdrs.utils.download_and_decompress(
 
 # 定义训练和验证时使用的数据变换(数据增强、预处理等)
 # 使用Compose组合多种变换方式。Compose中包含的变换将按顺序串行执行
-# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/transforms.md
+# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/data.md
 train_transforms = T.Compose([
     # 读取影像
     T.DecodeImg(),
@@ -72,7 +72,7 @@ eval_dataset = pdrs.datasets.CDDataset(
     binarize_labels=True)
 
 # 使用默认参数构建DSIFN模型
-# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
+# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/intro/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/change_detector.py
 model = pdrs.tasks.cd.DSIFN()
 

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

@@ -21,7 +21,7 @@ pdrs.utils.download_and_decompress(
 
 # 定义训练和验证时使用的数据变换(数据增强、预处理等)
 # 使用Compose组合多种变换方式。Compose中包含的变换将按顺序串行执行
-# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/transforms.md
+# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/data.md
 train_transforms = T.Compose([
     # 读取影像
     T.DecodeImg(),
@@ -72,7 +72,7 @@ eval_dataset = pdrs.datasets.CDDataset(
     binarize_labels=True)
 
 # 使用默认参数构建FC-EF模型
-# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
+# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/intro/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/change_detector.py
 model = pdrs.tasks.cd.FCEarlyFusion()
 

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

@@ -21,7 +21,7 @@ pdrs.utils.download_and_decompress(
 
 # 定义训练和验证时使用的数据变换(数据增强、预处理等)
 # 使用Compose组合多种变换方式。Compose中包含的变换将按顺序串行执行
-# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/transforms.md
+# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/data.md
 train_transforms = T.Compose([
     # 读取影像
     T.DecodeImg(),
@@ -72,7 +72,7 @@ eval_dataset = pdrs.datasets.CDDataset(
     binarize_labels=True)
 
 # 使用默认参数构建FC-Siam-conc模型
-# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
+# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/intro/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/change_detector.py
 model = pdrs.tasks.cd.FCSiamConc()
 

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

@@ -21,7 +21,7 @@ pdrs.utils.download_and_decompress(
 
 # 定义训练和验证时使用的数据变换(数据增强、预处理等)
 # 使用Compose组合多种变换方式。Compose中包含的变换将按顺序串行执行
-# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/transforms.md
+# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/data.md
 train_transforms = T.Compose([
     # 读取影像
     T.DecodeImg(),
@@ -72,7 +72,7 @@ eval_dataset = pdrs.datasets.CDDataset(
     binarize_labels=True)
 
 # 使用默认参数构建FC-Siam-diff模型
-# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
+# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/intro/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/change_detector.py
 model = pdrs.tasks.cd.FCSiamDiff()
 

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

@@ -21,7 +21,7 @@ pdrs.utils.download_and_decompress(
 
 # 定义训练和验证时使用的数据变换(数据增强、预处理等)
 # 使用Compose组合多种变换方式。Compose中包含的变换将按顺序串行执行
-# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/transforms.md
+# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/data.md
 train_transforms = T.Compose([
     # 读取影像
     T.DecodeImg(),
@@ -72,7 +72,7 @@ eval_dataset = pdrs.datasets.CDDataset(
     binarize_labels=True)
 
 # 使用默认参数构建SNUNet模型
-# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
+# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/intro/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/change_detector.py
 model = pdrs.tasks.cd.SNUNet()
 

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

@@ -21,7 +21,7 @@ pdrs.utils.download_and_decompress(
 
 # 定义训练和验证时使用的数据变换(数据增强、预处理等)
 # 使用Compose组合多种变换方式。Compose中包含的变换将按顺序串行执行
-# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/transforms.md
+# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/data.md
 train_transforms = T.Compose([
     # 读取影像
     T.DecodeImg(),
@@ -72,7 +72,7 @@ eval_dataset = pdrs.datasets.CDDataset(
     binarize_labels=True)
 
 # 使用默认参数构建STANet模型
-# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
+# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/intro/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/change_detector.py
 model = pdrs.tasks.cd.STANet()
 

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

@@ -23,7 +23,7 @@ pdrs.utils.download_and_decompress(
 
 # 定义训练和验证时使用的数据变换(数据增强、预处理等)
 # 使用Compose组合多种变换方式。Compose中包含的变换将按顺序串行执行
-# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/transforms.md
+# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/data.md
 train_transforms = T.Compose([
     # 读取影像
     T.DecodeImg(),
@@ -66,7 +66,7 @@ eval_dataset = pdrs.datasets.ClasDataset(
     shuffle=False)
 
 # 使用默认参数构建HRNet模型
-# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
+# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/intro/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/classifier.py
 model = pdrs.tasks.clas.HRNet_W18_C(num_classes=len(train_dataset.labels))
 

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

@@ -23,7 +23,7 @@ pdrs.utils.download_and_decompress(
 
 # 定义训练和验证时使用的数据变换(数据增强、预处理等)
 # 使用Compose组合多种变换方式。Compose中包含的变换将按顺序串行执行
-# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/transforms.md
+# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/data.md
 train_transforms = T.Compose([
     # 读取影像
     T.DecodeImg(),
@@ -66,7 +66,7 @@ eval_dataset = pdrs.datasets.ClasDataset(
     shuffle=False)
 
 # 使用默认参数构建MobileNetV3模型
-# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
+# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/intro/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/classifier.py
 model = pdrs.tasks.clas.MobileNetV3_small_x1_0(
     num_classes=len(train_dataset.labels))

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

@@ -23,7 +23,7 @@ pdrs.utils.download_and_decompress(
 
 # 定义训练和验证时使用的数据变换(数据增强、预处理等)
 # 使用Compose组合多种变换方式。Compose中包含的变换将按顺序串行执行
-# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/transforms.md
+# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/data.md
 train_transforms = T.Compose([
     # 读取影像
     T.DecodeImg(),
@@ -66,7 +66,7 @@ eval_dataset = pdrs.datasets.ClasDataset(
     shuffle=False)
 
 # 使用默认参数构建ResNet50-vd模型
-# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
+# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/intro/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/classifier.py
 model = pdrs.tasks.clas.ResNet50_vd(num_classes=len(train_dataset.labels))
 

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

@@ -25,7 +25,7 @@ pdrs.utils.download_and_decompress(
 
 # 定义训练和验证时使用的数据变换(数据增强、预处理等)
 # 使用Compose组合多种变换方式。Compose中包含的变换将按顺序串行执行
-# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/transforms.md
+# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/data.md
 train_transforms = T.Compose([
     # 读取影像
     T.DecodeImg(),
@@ -69,7 +69,7 @@ eval_dataset = pdrs.datasets.VOCDetDataset(
     shuffle=False)
 
 # 构建Faster R-CNN模型
-# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
+# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/intro/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/object_detector.py
 model = pdrs.tasks.det.FasterRCNN(num_classes=len(train_dataset.labels))
 

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

@@ -25,7 +25,7 @@ pdrs.utils.download_and_decompress(
 
 # 定义训练和验证时使用的数据变换(数据增强、预处理等)
 # 使用Compose组合多种变换方式。Compose中包含的变换将按顺序串行执行
-# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/transforms.md
+# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/data.md
 train_transforms = T.Compose([
     # 读取影像
     T.DecodeImg(),
@@ -69,7 +69,7 @@ eval_dataset = pdrs.datasets.VOCDetDataset(
     shuffle=False)
 
 # 构建PP-YOLO模型
-# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
+# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/intro/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/object_detector.py
 model = pdrs.tasks.det.PPYOLO(num_classes=len(train_dataset.labels))
 

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

@@ -25,7 +25,7 @@ pdrs.utils.download_and_decompress(
 
 # 定义训练和验证时使用的数据变换(数据增强、预处理等)
 # 使用Compose组合多种变换方式。Compose中包含的变换将按顺序串行执行
-# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/transforms.md
+# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/data.md
 train_transforms = T.Compose([
     # 读取影像
     T.DecodeImg(),
@@ -69,7 +69,7 @@ eval_dataset = pdrs.datasets.VOCDetDataset(
     shuffle=False)
 
 # 构建PP-YOLO Tiny模型
-# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
+# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/intro/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/object_detector.py
 model = pdrs.tasks.det.PPYOLOTiny(num_classes=len(train_dataset.labels))
 

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

@@ -25,7 +25,7 @@ pdrs.utils.download_and_decompress(
 
 # 定义训练和验证时使用的数据变换(数据增强、预处理等)
 # 使用Compose组合多种变换方式。Compose中包含的变换将按顺序串行执行
-# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/transforms.md
+# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/data.md
 train_transforms = T.Compose([
     # 读取影像
     T.DecodeImg(),
@@ -69,7 +69,7 @@ eval_dataset = pdrs.datasets.VOCDetDataset(
     shuffle=False)
 
 # 构建PP-YOLOv2模型
-# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
+# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/intro/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/object_detector.py
 model = pdrs.tasks.det.PPYOLOv2(num_classes=len(train_dataset.labels))
 

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

@@ -25,7 +25,7 @@ pdrs.utils.download_and_decompress(
 
 # 定义训练和验证时使用的数据变换(数据增强、预处理等)
 # 使用Compose组合多种变换方式。Compose中包含的变换将按顺序串行执行
-# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/transforms.md
+# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/data.md
 train_transforms = T.Compose([
     # 读取影像
     T.DecodeImg(),
@@ -69,7 +69,7 @@ eval_dataset = pdrs.datasets.VOCDetDataset(
     shuffle=False)
 
 # 构建YOLOv3模型,使用DarkNet53作为backbone
-# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
+# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/intro/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/object_detector.py
 model = pdrs.tasks.det.YOLOv3(
     num_classes=len(train_dataset.labels), backbone='DarkNet53')

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

@@ -26,7 +26,7 @@ pdrs.utils.download_and_decompress(
 
 # 定义训练和验证时使用的数据变换(数据增强、预处理等)
 # 使用Compose组合多种变换方式。Compose中包含的变换将按顺序串行执行
-# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/transforms.md
+# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/data.md
 train_transforms = T.Compose([
     # 读取影像
     T.DecodeImg(),
@@ -68,7 +68,7 @@ eval_dataset = pdrs.datasets.SegDataset(
     shuffle=False)
 
 # 构建DeepLab V3+模型,使用ResNet-50作为backbone
-# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
+# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/intro/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/segmenter.py
 model = pdrs.tasks.seg.DeepLabV3P(
     input_channel=NUM_BANDS,

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

@@ -26,7 +26,7 @@ pdrs.utils.download_and_decompress(
 
 # 定义训练和验证时使用的数据变换(数据增强、预处理等)
 # 使用Compose组合多种变换方式。Compose中包含的变换将按顺序串行执行
-# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/transforms.md
+# API说明:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/data.md
 train_transforms = T.Compose([
     # 读取影像
     T.DecodeImg(),
@@ -68,7 +68,7 @@ eval_dataset = pdrs.datasets.SegDataset(
     shuffle=False)
 
 # 构建UNet模型
-# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/model_zoo.md
+# 目前已支持的模型请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/intro/model_zoo.md
 # 模型输入参数请参考:https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/segmenter.py
 model = pdrs.tasks.seg.UNet(
     input_channel=NUM_BANDS, num_classes=len(train_dataset.labels))