diff --git a/docs/FAQ.md b/docs/FAQ.md
old mode 100644
new mode 100755
diff --git a/docs/Makefile b/docs/Makefile
old mode 100644
new mode 100755
diff --git a/docs/README.md b/docs/README.md
old mode 100644
new mode 100755
diff --git a/docs/_templates/layout.html b/docs/_templates/layout.html
new file mode 100644
index 0000000000000000000000000000000000000000..76d4bb0c6da716dc75d363d226dadf9173342f3a
--- /dev/null
+++ b/docs/_templates/layout.html
@@ -0,0 +1,8 @@
+{% extends "!layout.html" %}
+ {% block footer %} {{ super() }}
+
+
+
+{% endblock %}
diff --git a/docs/apis/datasets.md b/docs/apis/datasets.md
deleted file mode 100644
index b40637f2aef586c79bb92b5bce3c5deb4b00893e..0000000000000000000000000000000000000000
--- a/docs/apis/datasets.md
+++ /dev/null
@@ -1,141 +0,0 @@
-# 数据集-datasets
-
-## ImageNet类
-```
-paddlex.datasets.ImageNet(data_dir, file_list, label_list, transforms=None, num_workers=‘auto’, buffer_size=100, parallel_method='thread', shuffle=False)
-```
-读取ImageNet格式的分类数据集,并对样本进行相应的处理。ImageNet数据集格式的介绍可查看文档:[数据集格式说明](../datasets.md)
-
-示例:[代码文件](https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/classification/mobilenetv2.py#L25)
-
-### 参数
-
-> * **data_dir** (str): 数据集所在的目录路径。
-> * **file_list** (str): 描述数据集图片文件和类别id的文件路径(文本内每行路径为相对`data_dir`的相对路径)。
-> * **label_list** (str): 描述数据集包含的类别信息文件路径。
-> * **transforms** (paddlex.cls.transforms): 数据集中每个样本的预处理/增强算子,详见[paddlex.cls.transforms](./transforms/cls_transforms.md)。
-> * **num_workers** (int|str):数据集中样本在预处理过程中的线程或进程数。默认为'auto'。当设为'auto'时,根据系统的实际CPU核数设置`num_workers`: 如果CPU核数的一半大于8,则`num_workers`为8,否则为CPU核数的一半。
-> * **buffer_size** (int): 数据集中样本在预处理过程中队列的缓存长度,以样本数为单位。默认为100。
-> * **parallel_method** (str): 数据集中样本在预处理过程中并行处理的方式,支持'thread'线程和'process'进程两种方式。默认为'process'(Windows和Mac下会强制使用thread,该参数无效)。
-> * **shuffle** (bool): 是否需要对数据集中样本打乱顺序。默认为False。
-
-## VOCDetection类
-
-```
-paddlex.datasets.VOCDetection(data_dir, file_list, label_list, transforms=None, num_workers=‘auto’, buffer_size=100, parallel_method='thread', shuffle=False)
-```
-
-读取PascalVOC格式的检测数据集,并对样本进行相应的处理。PascalVOC数据集格式的介绍可查看文档:[数据集格式说明](../datasets.md)
-
-示例:[代码文件](https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/detection/yolov3_mobilenetv1.py#L29)
-
-### 参数
-
-> * **data_dir** (str): 数据集所在的目录路径。
-> * **file_list** (str): 描述数据集图片文件和对应标注文件的文件路径(文本内每行路径为相对`data_dir`的相对路径)。
-> * **label_list** (str): 描述数据集包含的类别信息文件路径。
-> * **transforms** (paddlex.det.transforms): 数据集中每个样本的预处理/增强算子,详见[paddlex.det.transforms](./transforms/det_transforms.md)。
-> * **num_workers** (int|str):数据集中样本在预处理过程中的线程或进程数。默认为'auto'。当设为'auto'时,根据系统的实际CPU核数设置`num_workers`: 如果CPU核数的一半大于8,则`num_workers`为8,否则为CPU核数的一半。
-> * **buffer_size** (int): 数据集中样本在预处理过程中队列的缓存长度,以样本数为单位。默认为100。
-> * **parallel_method** (str): 数据集中样本在预处理过程中并行处理的方式,支持'thread'线程和'process'进程两种方式。默认为'process'(Windows和Mac下会强制使用thread,该参数无效)。
-> * **shuffle** (bool): 是否需要对数据集中样本打乱顺序。默认为False。
-
-## CocoDetection类
-
-```
-paddlex.datasets.CocoDetection(data_dir, ann_file, transforms=None, num_workers='auto', buffer_size=100, parallel_method='thread', shuffle=False)
-```
-
-读取MSCOCO格式的检测数据集,并对样本进行相应的处理,该格式的数据集同样可以应用到实例分割模型的训练中。MSCOCO数据集格式的介绍可查看文档:[数据集格式说明](../datasets.md)
-
-示例:[代码文件](https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/detection/mask_rcnn_r50_fpn.py#L27)
-
-### 参数
-
-> * **data_dir** (str): 数据集所在的目录路径。
-> * **ann_file** (str): 数据集的标注文件,为一个独立的json格式文件。
-> * **transforms** (paddlex.det.transforms): 数据集中每个样本的预处理/增强算子,详见[paddlex.det.transforms](./transforms/det_transforms.md)。
-> * **num_workers** (int|str):数据集中样本在预处理过程中的线程或进程数。默认为'auto'。当设为'auto'时,根据系统的实际CPU核数设置`num_workers`: 如果CPU核数的一半大于8,则`num_workers`为8,否则为CPU核数的一半。
-> * **buffer_size** (int): 数据集中样本在预处理过程中队列的缓存长度,以样本数为单位。默认为100。
-> * **parallel_method** (str): 数据集中样本在预处理过程中并行处理的方式,支持'thread'线程和'process'进程两种方式。默认为'process'(Windows和Mac下会强制使用thread,该参数无效)。
-> * **shuffle** (bool): 是否需要对数据集中样本打乱顺序。默认为False。
-
-## SegDataset类
-
-```
-paddlex.datasets.SegDataset(data_dir, file_list, label_list, transforms=None, num_workers='auto', buffer_size=100, parallel_method='thread', shuffle=False)
-```
-
-读取语分分割任务数据集,并对样本进行相应的处理。语义分割任务数据集格式的介绍可查看文档:[数据集格式说明](../datasets.md)
-
-示例:[代码文件](https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/segmentation/unet.py#L27)
-
-### 参数
-
-> * **data_dir** (str): 数据集所在的目录路径。
-> * **file_list** (str): 描述数据集图片文件和对应标注文件的文件路径(文本内每行路径为相对`data_dir`的相对路径)。
-> * **label_list** (str): 描述数据集包含的类别信息文件路径。
-> * **transforms** (paddlex.seg.transforms): 数据集中每个样本的预处理/增强算子,详见[paddlex.seg.transforms](./transforms/seg_transforms.md)。
-> * **num_workers** (int|str):数据集中样本在预处理过程中的线程或进程数。默认为'auto'。当设为'auto'时,根据系统的实际CPU核数设置`num_workers`: 如果CPU核数的一半大于8,则`num_workers`为8,否则为CPU核数的一半。
-> * **buffer_size** (int): 数据集中样本在预处理过程中队列的缓存长度,以样本数为单位。默认为100。
-> * **parallel_method** (str): 数据集中样本在预处理过程中并行处理的方式,支持'thread'线程和'process'进程两种方式。默认为'process'(Windows和Mac下会强制使用thread,该参数无效)。
-> * **shuffle** (bool): 是否需要对数据集中样本打乱顺序。默认为False。
-
-## EasyDataCls类
-```
-paddlex.datasets.SegDataset(data_dir, file_list, label_list, transforms=None, num_workers='auto', buffer_size=100, parallel_method='thread', shuffle=False)
-```
-读取EasyData图像分类数据集,并对样本进行相应的处理。EasyData图像分类任务数据集格式的介绍可查看文档:[数据集格式说明](../datasets.md)
-
-
-### 参数
-
-> * **data_dir** (str): 数据集所在的目录路径。
-> * **file_list** (str): 描述数据集图片文件和对应标注文件的文件路径(文本内每行路径为相对`data_dir`的相对路径)。
-> * **label_list** (str): 描述数据集包含的类别信息文件路径。
-> * **transforms** (paddlex.seg.transforms): 数据集中每个样本的预处理/增强算子,详见[paddlex.cls.transforms](./transforms/cls_transforms.md)。
-> * **num_workers** (int|str):数据集中样本在预处理过程中的线程或进程数。默认为'auto'。当设为'auto'时,根据系统的实际CPU核数设置`num_workers`: 如果CPU核数的一半大于8,则`num_workers`为8,否则为CPU核数的一半。
-> * **buffer_size** (int): 数据集中样本在预处理过程中队列的缓存长度,以样本数为单位。默认为100。
-> * **parallel_method** (str): 数据集中样本在预处理过程中并行处理的方式,支持'thread'线程和'process'进程两种方式。默认为'process'(Windows和Mac下会强制使用thread,该参数无效)。
-> * **shuffle** (bool): 是否需要对数据集中样本打乱顺序。默认为False。
-
-## EasyDataDet类
-
-```
-paddlex.datasets.EasyDataDet(data_dir, file_list, label_list, transforms=None, num_workers=‘auto’, buffer_size=100, parallel_method='thread', shuffle=False)
-```
-
-读取EasyData目标检测格式数据集,并对样本进行相应的处理,该格式的数据集同样可以应用到实例分割模型的训练中。EasyData目标检测或实例分割任务数据集格式的介绍可查看文档:[数据集格式说明](../datasets.md)
-
-
-### 参数
-
-> * **data_dir** (str): 数据集所在的目录路径。
-> * **file_list** (str): 描述数据集图片文件和对应标注文件的文件路径(文本内每行路径为相对`data_dir`的相对路径)。
-> * **label_list** (str): 描述数据集包含的类别信息文件路径。
-> * **transforms** (paddlex.det.transforms): 数据集中每个样本的预处理/增强算子,详见[paddlex.det.transforms](./transforms/det_transforms.md)。
-> * **num_workers** (int|str):数据集中样本在预处理过程中的线程或进程数。默认为'auto'。当设为'auto'时,根据系统的实际CPU核数设置`num_workers`: 如果CPU核数的一半大于8,则`num_workers`为8,否则为CPU核数的一半。
-> * **buffer_size** (int): 数据集中样本在预处理过程中队列的缓存长度,以样本数为单位。默认为100。
-> * **parallel_method** (str): 数据集中样本在预处理过程中并行处理的方式,支持'thread'线程和'process'进程两种方式。默认为'process'(Windows和Mac下会强制使用thread,该参数无效)。
-> * **shuffle** (bool): 是否需要对数据集中样本打乱顺序。默认为False。
-
-
-## EasyDataSeg类
-
-```
-paddlex.datasets.EasyDataSeg(data_dir, file_list, label_list, transforms=None, num_workers='auto', buffer_size=100, parallel_method='thread', shuffle=False)
-```
-
-读取EasyData语分分割任务数据集,并对样本进行相应的处理。EasyData语义分割任务数据集格式的介绍可查看文档:[数据集格式说明](../datasets.md)
-
-
-### 参数
-
-> * **data_dir** (str): 数据集所在的目录路径。
-> * **file_list** (str): 描述数据集图片文件和对应标注文件的文件路径(文本内每行路径为相对`data_dir`的相对路径)。
-> * **label_list** (str): 描述数据集包含的类别信息文件路径。
-> * **transforms** (paddlex.seg.transforms): 数据集中每个样本的预处理/增强算子,详见[paddlex.seg.transforms](./transforms/seg_transforms.md)。
-> * **num_workers** (int|str):数据集中样本在预处理过程中的线程或进程数。默认为'auto'。当设为'auto'时,根据系统的实际CPU核数设置`num_workers`: 如果CPU核数的一半大于8,则`num_workers`为8,否则为CPU核数的一半。
-> * **buffer_size** (int): 数据集中样本在预处理过程中队列的缓存长度,以样本数为单位。默认为100。
-> * **parallel_method** (str): 数据集中样本在预处理过程中并行处理的方式,支持'thread'线程和'process'进程两种方式。默认为'process'(Windows和Mac下会强制使用thread,该参数无效)。
-> * **shuffle** (bool): 是否需要对数据集中样本打乱顺序。默认为False。
\ No newline at end of file
diff --git a/docs/apis/datasets/classification.md b/docs/apis/datasets/classification.md
new file mode 100755
index 0000000000000000000000000000000000000000..104bdf2dab80acfa8f1de1ef8ee522a126ddb7cc
--- /dev/null
+++ b/docs/apis/datasets/classification.md
@@ -0,0 +1,38 @@
+# 图像分类数据集
+
+## ImageNet类
+```
+paddlex.datasets.ImageNet(data_dir, file_list, label_list, transforms=None, num_workers=‘auto’, buffer_size=100, parallel_method='thread', shuffle=False)
+```
+读取ImageNet格式的分类数据集,并对样本进行相应的处理。ImageNet数据集格式的介绍可查看文档:[数据集格式说明](../datasets.md)
+
+示例:[代码文件](https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/classification/mobilenetv2.py#L25)
+
+> **参数**
+
+> > * **data_dir** (str): 数据集所在的目录路径。
+> > * **file_list** (str): 描述数据集图片文件和类别id的文件路径(文本内每行路径为相对`data_dir`的相对路径)。
+> > * **label_list** (str): 描述数据集包含的类别信息文件路径。
+> > * **transforms** (paddlex.cls.transforms): 数据集中每个样本的预处理/增强算子,详见[paddlex.cls.transforms](./transforms/cls_transforms.md)。
+> > * **num_workers** (int|str):数据集中样本在预处理过程中的线程或进程数。默认为'auto'。当设为'auto'时,根据系统的实际CPU核数设置`num_workers`: 如果CPU核数的一半大于8,则`num_workers`为8,否则为CPU核数的一半。
+> > * **buffer_size** (int): 数据集中样本在预处理过程中队列的缓存长度,以样本数为单位。默认为100。
+> > * **parallel_method** (str): 数据集中样本在预处理过程中并行处理的方式,支持'thread'线程和'process'进程两种方式。默认为'process'(Windows和Mac下会强制使用thread,该参数无效)。
+> > * **shuffle** (bool): 是否需要对数据集中样本打乱顺序。默认为False。
+
+## EasyDataCls类
+```
+paddlex.datasets.EasyDatasetCls(data_dir, file_list, label_list, transforms=None, num_workers='auto', buffer_size=100, parallel_method='thread', shuffle=False)
+```
+
+> 读取EasyData平台标注图像分类数据集,并对样本进行相应的处理。EasyData图像分类任务数据集格式的介绍可查看文档:[数据集格式说明](../datasets.md)。
+
+> **参数**
+
+> > * **data_dir** (str): 数据集所在的目录路径。
+> > * **file_list** (str): 描述数据集图片文件和对应标注文件的文件路径(文本内每行路径为相对`data_dir`的相对路径)。
+> > * **label_list** (str): 描述数据集包含的类别信息文件路径。
+> > * **transforms** (paddlex.seg.transforms): 数据集中每个样本的预处理/增强算子,详见[paddlex.cls.transforms](./transforms/cls_transforms.md)。
+> > * **num_workers** (int|str):数据集中样本在预处理过程中的线程或进程数。默认为'auto'。当设为'auto'时,根据系统的实际CPU核数设置`num_workers`: 如果CPU核数的一半大于8,则`num_workers`为8,否则为CPU核数的一半。
+> > * **buffer_size** (int): 数据集中样本在预处理过程中队列的缓存长度,以样本数为单位。默认为100。
+> > * **parallel_method** (str): 数据集中样本在预处理过程中并行处理的方式,支持'thread'线程和'process'进程两种方式。默认为'process'(Windows和Mac下会强制使用thread,该参数无效)。
+> > * **shuffle** (bool): 是否需要对数据集中样本打乱顺序。默认为False。
diff --git a/docs/apis/datasets/detection.md b/docs/apis/datasets/detection.md
new file mode 100755
index 0000000000000000000000000000000000000000..e660d7edfa9cfc41582902b92bcf0b0977766222
--- /dev/null
+++ b/docs/apis/datasets/detection.md
@@ -0,0 +1,63 @@
+# 检测和实例分割数据集
+
+## VOCDetection类
+
+```
+paddlex.datasets.VOCDetection(data_dir, file_list, label_list, transforms=None, num_workers=‘auto’, buffer_size=100, parallel_method='thread', shuffle=False)
+```
+
+> 仅用于**目标检测**。读取PascalVOC格式的检测数据集,并对样本进行相应的处理。PascalVOC数据集格式的介绍可查看文档:[数据集格式说明](../datasets.md)
+
+> 示例:[代码文件](https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/detection/yolov3_mobilenetv1.py#L29)
+
+> **参数**
+
+> > * **data_dir** (str): 数据集所在的目录路径。
+> > * **file_list** (str): 描述数据集图片文件和对应标注文件的文件路径(文本内每行路径为相对`data_dir`的相对路径)。
+> > * **label_list** (str): 描述数据集包含的类别信息文件路径。
+> > * **transforms** (paddlex.det.transforms): 数据集中每个样本的预处理/增强算子,详见[paddlex.det.transforms](./transforms/det_transforms.md)。
+> > * **num_workers** (int|str):数据集中样本在预处理过程中的线程或进程数。默认为'auto'。当设为'auto'时,根据系统的实际CPU核数设置`num_workers`: 如果CPU核数的一半大于8,则`num_workers`为8,否则为CPU核数的一半。
+> > * **buffer_size** (int): 数据集中样本在预处理过程中队列的缓存长度,以样本数为单位。默认为100。
+> > * **parallel_method** (str): 数据集中样本在预处理过程中并行处理的方式,支持'thread'线程和'process'进程两种方式。默认为'process'(Windows和Mac下会强制使用thread,该参数无效)。
+> > * **shuffle** (bool): 是否需要对数据集中样本打乱顺序。默认为False。
+
+## CocoDetection类
+
+```
+paddlex.datasets.CocoDetection(data_dir, ann_file, transforms=None, num_workers='auto', buffer_size=100, parallel_method='thread', shuffle=False)
+```
+
+> 用于**目标检测或实例分割**。读取MSCOCO格式的检测数据集,并对样本进行相应的处理,该格式的数据集同样可以应用到实例分割模型的训练中。MSCOCO数据集格式的介绍可查看文档:[数据集格式说明](../datasets.md)
+
+> 示例:[代码文件](https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/detection/mask_rcnn_r50_fpn.py#L27)
+
+> **参数**
+
+> > * **data_dir** (str): 数据集所在的目录路径。
+> > * **ann_file** (str): 数据集的标注文件,为一个独立的json格式文件。
+> > * **transforms** (paddlex.det.transforms): 数据集中每个样本的预处理/增强算子,详见[paddlex.det.transforms](./transforms/det_transforms.md)。
+> > * **num_workers** (int|str):数据集中样本在预处理过程中的线程或进程数。默认为'auto'。当设为'auto'时,根据系统的实际CPU核数设置`num_workers`: 如果CPU核数的一半大于8,则`num_workers`为8,否则为CPU核数的一半。
+> > * **buffer_size** (int): 数据集中样本在预处理过程中队列的缓存长度,以样本数为单位。默认为100。
+> > * **parallel_method** (str): 数据集中样本在预处理过程中并行处理的方式,支持'thread'线程和'process'进程两种方式。默认为'process'(Windows和Mac下会强制使用thread,该参数无效)。
+> > * **shuffle** (bool): 是否需要对数据集中样本打乱顺序。默认为False。
+
+## EasyDataDet类
+
+```
+paddlex.datasets.EasyDataDet(data_dir, file_list, label_list, transforms=None, num_workers=‘auto’, buffer_size=100, parallel_method='thread', shuffle=False)
+```
+
+> 用于**目标检测或实例分割**。读取EasyData目标检测格式数据集,并对样本进行相应的处理,该格式的数据集同样可以应用到实例分割模型的训练中。EasyData目标检测或实例分割任务数据集格式的介绍可查看文档:[数据集格式说明](../datasets.md)
+
+
+> **参数**
+
+> > * **data_dir** (str): 数据集所在的目录路径。
+> > * **file_list** (str): 描述数据集图片文件和对应标注文件的文件路径(文本内每行路径为相对`data_dir`的相对路径)。
+> > * **label_list** (str): 描述数据集包含的类别信息文件路径。
+> > * **transforms** (paddlex.det.transforms): 数据集中每个样本的预处理/增强算子,详见[paddlex.det.transforms](./transforms/det_transforms.md)。
+> > * **num_workers** (int|str):数据集中样本在预处理过程中的线程或进程数。默认为'auto'。当设为'auto'时,根据系统的实际CPU核数设置`num_workers`: 如果CPU核数的一半大于8,则`num_workers`为8,否则为CPU核数的一半。
+> > * **buffer_size** (int): 数据集中样本在预处理过程中队列的缓存长度,以样本数为单位。默认为100。
+> > * **parallel_method** (str): 数据集中样本在预处理过程中并行处理的方式,支持'thread'线程和'process'进程两种方式。默认为'process'(Windows和Mac下会强制使用thread,该参数无效)。
+> > * **shuffle** (bool): 是否需要对数据集中样本打乱顺序。默认为False。
+
diff --git a/docs/apis/datasets/index.rst b/docs/apis/datasets/index.rst
new file mode 100755
index 0000000000000000000000000000000000000000..e04aa4582c6ab7e8ac83aefb7ad1f7c4c3186889
--- /dev/null
+++ b/docs/apis/datasets/index.rst
@@ -0,0 +1,31 @@
+数据集-datasets
+============================
+
+PaddleX目前支持主流的CV数据集格式和 `EasyData `_ 数据标注平台的标注数据格式,此外PaddleX也提升了数据格式转换工具API,支持包括LabelMe,精灵标注助手和EasyData平台数据格式的转换,可以参考PaddleX的tools API文档。
+
+下表为各数据集格式与相应任务的对应关系,
+
++------------------------+------------+----------+----------+----------+
+| 数据集格式 | 图像分类 | 目标检测 | 实例分割 | 语义分割 |
++========================+============+==========+==========+==========+
+| ImageNet | √ | - | - | - |
++------------------------+------------+----------+----------+----------+
+| VOCDetection | - | √ | - | - |
++------------------------+------------+----------+----------+----------+
+| CocoDetection | - | √ | √ | - |
++------------------------+------------+----------+----------+----------+
+| SegDataset | - | - | - | √ |
++------------------------+------------+----------+----------+----------+
+| EasyDataCls | √ | - | - | - |
++------------------------+------------+----------+----------+----------+
+| EasyDataDet | - | √ | √ | - |
++------------------------+------------+----------+----------+----------+
+| EasyDataSeg | - | - | - | √ |
++------------------------+------------+----------+----------+----------+
+
+.. toctree::
+ :maxdepth: 2
+
+ classification.md
+ detection.md
+ semantic_segmentation.md
diff --git a/docs/apis/datasets/semantic_segmentation.md b/docs/apis/datasets/semantic_segmentation.md
new file mode 100755
index 0000000000000000000000000000000000000000..7aa4c21af7e1ebee850b185dea4f5d052abad167
--- /dev/null
+++ b/docs/apis/datasets/semantic_segmentation.md
@@ -0,0 +1,42 @@
+# 语义分割数据集
+
+## SegDataset类
+
+```
+paddlex.datasets.SegDataset(data_dir, file_list, label_list, transforms=None, num_workers='auto', buffer_size=100, parallel_method='thread', shuffle=False)
+```
+
+> 读取语义分割任务数据集,并对样本进行相应的处理。语义分割任务数据集格式的介绍可查看文档:[数据集格式说明](../datasets.md)
+
+> 示例:[代码文件](https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/segmentation/unet.py#L27)
+
+> **参数**
+
+> > * **data_dir** (str): 数据集所在的目录路径。
+> > * **file_list** (str): 描述数据集图片文件和对应标注文件的文件路径(文本内每行路径为相对`data_dir`的相对路径)。
+> > * **label_list** (str): 描述数据集包含的类别信息文件路径。
+> > * **transforms** (paddlex.seg.transforms): 数据集中每个样本的预处理/增强算子,详见[paddlex.seg.transforms](./transforms/seg_transforms.md)。
+> > * **num_workers** (int|str):数据集中样本在预处理过程中的线程或进程数。默认为'auto'。当设为'auto'时,根据系统的实际CPU核数设置`num_workers`: 如果CPU核数的一半大于8,则`num_workers`为8,否则为CPU核数的一半。
+> > * **buffer_size** (int): 数据集中样本在预处理过程中队列的缓存长度,以样本数为单位。默认为100。
+> > * **parallel_method** (str): 数据集中样本在预处理过程中并行处理的方式,支持'thread'线程和'process'进程两种方式。默认为'process'(Windows和Mac下会强制使用thread,该参数无效)。
+> > * **shuffle** (bool): 是否需要对数据集中样本打乱顺序。默认为False。
+
+## EasyDataSeg类
+
+```
+paddlex.datasets.EasyDataSeg(data_dir, file_list, label_list, transforms=None, num_workers='auto', buffer_size=100, parallel_method='thread', shuffle=False)
+```
+
+> 读取EasyData语义分割任务数据集,并对样本进行相应的处理。EasyData语义分割任务数据集格式的介绍可查看文档:[数据集格式说明](../datasets.md)
+
+
+> **参数**
+
+> > * **data_dir** (str): 数据集所在的目录路径。
+> > * **file_list** (str): 描述数据集图片文件和对应标注文件的文件路径(文本内每行路径为相对`data_dir`的相对路径)。
+> > * **label_list** (str): 描述数据集包含的类别信息文件路径。
+> > * **transforms** (paddlex.seg.transforms): 数据集中每个样本的预处理/增强算子,详见[paddlex.seg.transforms](./transforms/seg_transforms.md)。
+> > * **num_workers** (int|str):数据集中样本在预处理过程中的线程或进程数。默认为'auto'。当设为'auto'时,根据系统的实际CPU核数设置`num_workers`: 如果CPU核数的一半大于8,则`num_workers`为8,否则为CPU核数的一半。
+> > * **buffer_size** (int): 数据集中样本在预处理过程中队列的缓存长度,以样本数为单位。默认为100。
+> > * **parallel_method** (str): 数据集中样本在预处理过程中并行处理的方式,支持'thread'线程和'process'进程两种方式。默认为'process'(Windows和Mac下会强制使用thread,该参数无效)。
+> > * **shuffle** (bool): 是否需要对数据集中样本打乱顺序。默认为False。
diff --git a/docs/apis/deploy.md b/docs/apis/deploy.md
old mode 100644
new mode 100755
diff --git a/docs/apis/images/insect_bbox_pr_curve(iou-0.5).png b/docs/apis/images/insect_bbox_pr_curve(iou-0.5).png
old mode 100644
new mode 100755
diff --git a/docs/apis/index.rst b/docs/apis/index.rst
old mode 100644
new mode 100755
index d281cc0dccb5e8407ad4e479cf098a160a330400..900e165170997ec97ef8ad93cbda7f6c47e24f2e
--- a/docs/apis/index.rst
+++ b/docs/apis/index.rst
@@ -1,12 +1,12 @@
-接口说明
+PaddleX API说明文档
============================
.. toctree::
:maxdepth: 2
transforms/index.rst
- datasets.md
- models.md
+ datasets/index.rst
+ models/index.rst
slim.md
load_model.md
visualize.md
diff --git a/docs/apis/load_model.md b/docs/apis/load_model.md
old mode 100644
new mode 100755
diff --git a/docs/apis/models.md b/docs/apis/models.md
deleted file mode 100644
index 009999edf630f38ef5af12a906f55b6c5f507865..0000000000000000000000000000000000000000
--- a/docs/apis/models.md
+++ /dev/null
@@ -1,501 +0,0 @@
-# 模型-models
-
-## 分类模型
-
-### ResNet50类
-
-```python
-paddlex.cls.ResNet50(num_classes=1000)
-```
-
-构建ResNet50分类器,并实现其训练、评估和预测。
-
-#### **参数:**
-
-> - **num_classes** (int): 类别数。默认为1000。
-
-#### 分类器训练函数接口
-
-> ```python
-> train(self, num_epochs, train_dataset, train_batch_size=64, eval_dataset=None, save_interval_epochs=1, log_interval_steps=2, save_dir='output', pretrain_weights='IMAGENET', optimizer=None, learning_rate=0.025, lr_decay_epochs=[30, 60, 90], lr_decay_gamma=0.1, use_vdl=False, sensitivities_file=None, eval_metric_loss=0.05, early_stop=False, early_stop_patience=5, resume_checkpoint=None)
-> ```
->
-> **参数:**
->
-> > - **num_epochs** (int): 训练迭代轮数。
-> > - **train_dataset** (paddlex.datasets): 训练数据读取器。
-> > - **train_batch_size** (int): 训练数据batch大小。同时作为验证数据batch大小。默认值为64。
-> > - **eval_dataset** (paddlex.datasets): 验证数据读取器。
-> > - **save_interval_epochs** (int): 模型保存间隔(单位:迭代轮数)。默认为1。
-> > - **log_interval_steps** (int): 训练日志输出间隔(单位:迭代步数)。默认为2。
-> > - **save_dir** (str): 模型保存路径。
-> > - **pretrain_weights** (str): 若指定为路径时,则加载路径下预训练模型;若为字符串'IMAGENET',则自动下载在ImageNet图片数据上预训练的模型权重;若为None,则不使用预训练模型。默认为'IMAGENET'。
-> > - **optimizer** (paddle.fluid.optimizer): 优化器。当该参数为None时,使用默认优化器:fluid.layers.piecewise_decay衰减策略,fluid.optimizer.Momentum优化方法。
-> > - **learning_rate** (float): 默认优化器的初始学习率。默认为0.025。
-> > - **lr_decay_epochs** (list): 默认优化器的学习率衰减轮数。默认为[30, 60, 90]。
-> > - **lr_decay_gamma** (float): 默认优化器的学习率衰减率。默认为0.1。
-> > - **use_vdl** (bool): 是否使用VisualDL进行可视化。默认值为False。
-> > - **sensitivities_file** (str): 若指定为路径时,则加载路径下敏感度信息进行裁剪;若为字符串'DEFAULT',则自动下载在ImageNet图片数据上获得的敏感度信息进行裁剪;若为None,则不进行裁剪。默认为None。
-> > - **eval_metric_loss** (float): 可容忍的精度损失。默认为0.05。
-> > - **early_stop** (float): 是否使用提前终止训练策略。默认值为False。
-> > - **early_stop_patience** (int): 当使用提前终止训练策略时,如果验证集精度在`early_stop_patience`个epoch内连续下降或持平,则终止训练。默认值为5。
-> > - **resume_checkpoint** (str): 恢复训练时指定上次训练保存的模型路径。若为None,则不会恢复训练。默认值为None。
-
-#### 分类器评估函数接口
-
-> ```python
-> evaluate(self, eval_dataset, batch_size=1, epoch_id=None, return_details=False)
-> ```
->
-> **参数:**
->
-> > - **eval_dataset** (paddlex.datasets): 验证数据读取器。
-> > - **batch_size** (int): 验证数据批大小。默认为1。
-> > - **epoch_id** (int): 当前评估模型所在的训练轮数。
-> > - **return_details** (bool): 是否返回详细信息,默认False。
->
-> **返回值:**
->
-> > - **dict**: 当return_details为False时,返回dict, 包含关键字:'acc1'、'acc5',分别表示最大值的accuracy、前5个最大值的accuracy。
-> > - **tuple** (metrics, eval_details): 当`return_details`为True时,增加返回dict,包含关键字:'true_labels'、'pred_scores',分别代表真实类别id、每个类别的预测得分。
-
-#### 分类器预测函数接口
-
-> ```python
-> predict(self, img_file, transforms=None, topk=5)
-> ```
->
-> **参数:**
->
-> > - **img_file** (str): 预测图像路径。
-> > - **transforms** (paddlex.cls.transforms): 数据预处理操作。
-> > - **topk** (int): 预测时前k个最大值。
-
-> **返回值:**
->
-> > - **list**: 其中元素均为字典。字典的关键字为'category_id'、'category'、'score',
-> > 分别对应预测类别id、预测类别标签、预测得分。
-
-### 其它分类器类
-
-除`ResNet50`外,`paddlex.cls`下还提供了`ResNet18`、`ResNet34`、`ResNet101`、`ResNet50_vd`、`ResNet101_vd`、`ResNet50_vd_ssld`、`ResNet101_vd_ssld`、`DarkNet53`、`MobileNetV1`、`MobileNetV2`、`MobileNetV3_small`、`MobileNetV3_large`、`MobileNetV3_small_ssld`、`MobileNetV3_large_ssld`、`Xception41`、`Xception65`、`Xception71`、`ShuffleNetV2`, 使用方式(包括函数接口和参数)均与`ResNet50`一致,各模型效果可参考[模型库](../model_zoo.md)中列表。
-
-
-
-## 检测模型
-
-### YOLOv3类
-
-```python
-paddlex.det.YOLOv3(num_classes=80, backbone='MobileNetV1', anchors=None, anchor_masks=None, ignore_threshold=0.7, nms_score_threshold=0.01, nms_topk=1000, nms_keep_topk=100, nms_iou_threshold=0.45, label_smooth=False, train_random_shapes=[320, 352, 384, 416, 448, 480, 512, 544, 576, 608])
-```
-
-构建YOLOv3检测器,并实现其训练、评估和预测。 **注意在YOLOv3,num_classes不需要包含背景类,如目标包括human、dog两种,则num_classes设为2即可,这里与FasterRCNN/MaskRCNN有差别**
-
-**参数:**
-
-> - **num_classes** (int): 类别数。默认为80。
-> - **backbone** (str): YOLOv3的backbone网络,取值范围为['DarkNet53', 'ResNet34', 'MobileNetV1', 'MobileNetV3_large']。默认为'MobileNetV1'。
-> - **anchors** (list|tuple): anchor框的宽度和高度,为None时表示使用默认值
-> [[10, 13], [16, 30], [33, 23], [30, 61], [62, 45],
-> [59, 119], [116, 90], [156, 198], [373, 326]]。
-> - **anchor_masks** (list|tuple): 在计算YOLOv3损失时,使用anchor的mask索引,为None时表示使用默认值
-> [[6, 7, 8], [3, 4, 5], [0, 1, 2]]。
-> - **ignore_threshold** (float): 在计算YOLOv3损失时,IoU大于`ignore_threshold`的预测框的置信度被忽略。默认为0.7。
-> - **nms_score_threshold** (float): 检测框的置信度得分阈值,置信度得分低于阈值的框应该被忽略。默认为0.01。
-> - **nms_topk** (int): 进行NMS时,根据置信度保留的最大检测框数。默认为1000。
-> - **nms_keep_topk** (int): 进行NMS后,每个图像要保留的总检测框数。默认为100。
-> - **nms_iou_threshold** (float): 进行NMS时,用于剔除检测框IOU的阈值。默认为0.45。
-> - **label_smooth** (bool): 是否使用label smooth。默认值为False。
-> - **train_random_shapes** (list|tuple): 训练时从列表中随机选择图像大小。默认值为[320, 352, 384, 416, 448, 480, 512, 544, 576, 608]。
-
-#### YOLOv3训练函数接口
-
-> ```python
-> train(self, num_epochs, train_dataset, train_batch_size=8, eval_dataset=None, save_interval_epochs=20, log_interval_steps=2, save_dir='output', pretrain_weights='IMAGENET', optimizer=None, learning_rate=1.0/8000, warmup_steps=1000, warmup_start_lr=0.0, lr_decay_epochs=[213, 240], lr_decay_gamma=0.1, metric=None, use_vdl=False, sensitivities_file=None, eval_metric_loss=0.05, early_stop=False, early_stop_patience=5, resume_checkpoint=None)
-> ```
->
-> **参数:**
->
-> > - **num_epochs** (int): 训练迭代轮数。
-> > - **train_dataset** (paddlex.datasets): 训练数据读取器。
-> > - **train_batch_size** (int): 训练数据batch大小。目前检测仅支持单卡评估,训练数据batch大小与显卡数量之商为验证数据batch大小。默认值为8。
-> > - **eval_dataset** (paddlex.datasets): 验证数据读取器。
-> > - **save_interval_epochs** (int): 模型保存间隔(单位:迭代轮数)。默认为20。
-> > - **log_interval_steps** (int): 训练日志输出间隔(单位:迭代次数)。默认为2。
-> > - **save_dir** (str): 模型保存路径。默认值为'output'。
-> > - **pretrain_weights** (str): 若指定为路径时,则加载路径下预训练模型;若为字符串'IMAGENET',则自动下载在ImageNet图片数据上预训练的模型权重;若为None,则不使用预训练模型。默认为None。
-> > - **optimizer** (paddle.fluid.optimizer): 优化器。当该参数为None时,使用默认优化器:fluid.layers.piecewise_decay衰减策略,fluid.optimizer.Momentum优化方法。
-> > - **learning_rate** (float): 默认优化器的学习率。默认为1.0/8000。
-> > - **warmup_steps** (int): 默认优化器进行warmup过程的步数。默认为1000。
-> > - **warmup_start_lr** (int): 默认优化器warmup的起始学习率。默认为0.0。
-> > - **lr_decay_epochs** (list): 默认优化器的学习率衰减轮数。默认为[213, 240]。
-> > - **lr_decay_gamma** (float): 默认优化器的学习率衰减率。默认为0.1。
-> > - **metric** (bool): 训练过程中评估的方式,取值范围为['COCO', 'VOC']。默认值为None。
-> > - **use_vdl** (bool): 是否使用VisualDL进行可视化。默认值为False。
-> > - **sensitivities_file** (str): 若指定为路径时,则加载路径下敏感度信息进行裁剪;若为字符串'DEFAULT',则自动下载在PascalVOC数据上获得的敏感度信息进行裁剪;若为None,则不进行裁剪。默认为None。
-> > - **eval_metric_loss** (float): 可容忍的精度损失。默认为0.05。
-> > - **early_stop** (float): 是否使用提前终止训练策略。默认值为False。
-> > - **early_stop_patience** (int): 当使用提前终止训练策略时,如果验证集精度在`early_stop_patience`个epoch内连续下降或持平,则终止训练。默认值为5。
-> > - **resume_checkpoint** (str): 恢复训练时指定上次训练保存的模型路径。若为None,则不会恢复训练。默认值为None。
-
-#### YOLOv3评估函数接口
-
-> ```python
-> evaluate(self, eval_dataset, batch_size=1, epoch_id=None, metric=None, return_details=False)
-> ```
->
-> **参数:**
->
-> > - **eval_dataset** (paddlex.datasets): 验证数据读取器。
-> > - **batch_size** (int): 验证数据批大小。默认为1。
-> > - **epoch_id** (int): 当前评估模型所在的训练轮数。
-> > - **metric** (bool): 训练过程中评估的方式,取值范围为['COCO', 'VOC']。默认为None,根据用户传入的Dataset自动选择,如为VOCDetection,则`metric`为'VOC';如为COCODetection,则`metric`为'COCO'默认为None。
-> > - **return_details** (bool): 是否返回详细信息。默认值为False。
-> >
-> **返回值:**
->
-> > - **tuple** (metrics, eval_details) | **dict** (metrics): 当`return_details`为True时,返回(metrics, eval_details),当`return_details`为False时,返回metrics。metrics为dict,包含关键字:'bbox_mmap'或者’bbox_map‘,分别表示平均准确率平均值在各个阈值下的结果取平均值的结果(mmAP)、平均准确率平均值(mAP)。eval_details为dict,包含关键字:'bbox',对应元素预测结果列表,每个预测结果由图像id、预测框类别id、预测框坐标、预测框得分;’gt‘:真实标注框相关信息。
-
-#### YOLOv3预测函数接口
-
-> ```python
-> predict(self, img_file, transforms=None)
-> ```
->
-> **参数:**
->
-> > - **img_file** (str): 预测图像路径。
-> > - **transforms** (paddlex.det.transforms): 数据预处理操作。
->
-> **返回值:**
->
-> > - **list**: 预测结果列表,列表中每个元素均为一个dict,key'bbox', 'category', 'category_id', 'score',分别表示每个预测目标的框坐标信息、类别、类别id、置信度,其中框坐标信息为[xmin, ymin, w, h],即左上角x, y坐标和框的宽和高。
-
-### FasterRCNN类
-
-```python
-paddlex.det.FasterRCNN(num_classes=81, backbone='ResNet50', with_fpn=True, aspect_ratios=[0.5, 1.0, 2.0], anchor_sizes=[32, 64, 128, 256, 512])
-
-```
-
-构建FasterRCNN检测器,并实现其训练、评估和预测。 **注意在FasterRCNN中,num_classes需要设置为类别数+背景类,如目标包括human、dog两种,则num_classes需设为3,多的一种为背景background类别**
-
-**参数:**
-
-> - **num_classes** (int): 包含了背景类的类别数。默认为81。
-> - **backbone** (str): FasterRCNN的backbone网络,取值范围为['ResNet18', 'ResNet50', 'ResNet50_vd', 'ResNet101', 'ResNet101_vd']。默认为'ResNet50'。
-> - **with_fpn** (bool): 是否使用FPN结构。默认为True。
-> - **aspect_ratios** (list): 生成anchor高宽比的可选值。默认为[0.5, 1.0, 2.0]。
-> - **anchor_sizes** (list): 生成anchor大小的可选值。默认为[32, 64, 128, 256, 512]。
-
-#### FasterRCNN训练函数接口
-
-> ```python
-> train(self, num_epochs, train_dataset, train_batch_size=2, eval_dataset=None, save_interval_epochs=1, log_interval_steps=2,save_dir='output', pretrain_weights='IMAGENET', optimizer=None, learning_rate=0.0025, warmup_steps=500, warmup_start_lr=1.0/1200, lr_decay_epochs=[8, 11], lr_decay_gamma=0.1, metric=None, use_vdl=False, early_stop=False, early_stop_patience=5, resume_checkpoint=None)
->
-> ```
->
-> **参数:**
->
-> > - **num_epochs** (int): 训练迭代轮数。
-> > - **train_dataset** (paddlex.datasets): 训练数据读取器。
-> > - **train_batch_size** (int): 训练数据batch大小。目前检测仅支持单卡评估,训练数据batch大小与显卡数量之商为验证数据batch大小。默认为2。
-> > - **eval_dataset** (paddlex.datasets): 验证数据读取器。
-> > - **save_interval_epochs** (int): 模型保存间隔(单位:迭代轮数)。默认为1。
-> > - **log_interval_steps** (int): 训练日志输出间隔(单位:迭代次数)。默认为2。
-> > - **save_dir** (str): 模型保存路径。默认值为'output'。
-> > - **pretrain_weights** (str): 若指定为路径时,则加载路径下预训练模型;若为字符串'IMAGENET',则自动下载在ImageNet图片数据上预训练的模型权重;若为None,则不使用预训练模型。默认为None。
-> > - **optimizer** (paddle.fluid.optimizer): 优化器。当该参数为None时,使用默认优化器:fluid.layers.piecewise_decay衰减策略,fluid.optimizer.Momentum优化方法。
-> > - **learning_rate** (float): 默认优化器的初始学习率。默认为0.0025。
-> > - **warmup_steps** (int): 默认优化器进行warmup过程的步数。默认为500。
-> > - **warmup_start_lr** (int): 默认优化器warmup的起始学习率。默认为1.0/1200。
-> > - **lr_decay_epochs** (list): 默认优化器的学习率衰减轮数。默认为[8, 11]。
-> > - **lr_decay_gamma** (float): 默认优化器的学习率衰减率。默认为0.1。
-> > - **metric** (bool): 训练过程中评估的方式,取值范围为['COCO', 'VOC']。默认值为None。
-> > - **use_vdl** (bool): 是否使用VisualDL进行可视化。默认值为False。
-> > - **early_stop** (float): 是否使用提前终止训练策略。默认值为False。
-> > - **early_stop_patience** (int): 当使用提前终止训练策略时,如果验证集精度在`early_stop_patience`个epoch内连续下降或持平,则终止训练。默认值为5。
-> > - **resume_checkpoint** (str): 恢复训练时指定上次训练保存的模型路径。若为None,则不会恢复训练。默认值为None。
-
-#### FasterRCNN评估函数接口
-
-> ```python
-> evaluate(self, eval_dataset, batch_size=1, epoch_id=None, metric=None, return_details=False)
->
-> ```
->
-> **参数:**
->
-> > - **eval_dataset** (paddlex.datasets): 验证数据读取器。
-> > - **batch_size** (int): 验证数据批大小。默认为1。当前只支持设置为1。
-> > - **epoch_id** (int): 当前评估模型所在的训练轮数。
-> > - **metric** (bool): 训练过程中评估的方式,取值范围为['COCO', 'VOC']。默认为None,根据用户传入的Dataset自动选择,如为VOCDetection,则`metric`为'VOC'; 如为COCODetection,则`metric`为'COCO'。
-> > - **return_details** (bool): 是否返回详细信息。默认值为False。
-> >
-> **返回值:**
->
-> > - **tuple** (metrics, eval_details) | **dict** (metrics): 当`return_details`为True时,返回(metrics, eval_details),当`return_details`为False时,返回metrics。metrics为dict,包含关键字:'bbox_mmap'或者’bbox_map‘,分别表示平均准确率平均值在各个IoU阈值下的结果取平均值的结果(mmAP)、平均准确率平均值(mAP)。eval_details为dict,包含关键字:'bbox',对应元素预测结果列表,每个预测结果由图像id、预测框类别id、预测框坐标、预测框得分;’gt‘:真实标注框相关信息。
-
-#### FasterRCNN预测函数接口
-
-> ```python
-> predict(self, img_file, transforms=None)
->
-> ```
->
-> **参数:**
->
-> > - **img_file** (str): 预测图像路径。
-> > - **transforms** (paddlex.det.transforms): 数据预处理操作。
->
-> **返回值:**
->
-> > - **list**: 预测结果列表,列表中每个元素均为一个dict,key'bbox', 'category', 'category_id', 'score',分别表示每个预测目标的框坐标信息、类别、类别id、置信度,其中框坐标信息为[xmin, ymin, w, h],即左上角x, y坐标和框的宽和高。
-
-### MaskRCNN类
-
-```python
-paddlex.det.MaskRCNN(num_classes=81, backbone='ResNet50', with_fpn=True, aspect_ratios=[0.5, 1.0, 2.0], anchor_sizes=[32, 64, 128, 256, 512])
-
-```
-
-构建MaskRCNN检测器,并实现其训练、评估和预测。**注意在MaskRCNN中,num_classes需要设置为类别数+背景类,如目标包括human、dog两种,则num_classes需设为3,多的一种为背景background类别**
-
-**参数:**
-
-> - **num_classes** (int): 包含了背景类的类别数。默认为81。
-> - **backbone** (str): MaskRCNN的backbone网络,取值范围为['ResNet18', 'ResNet50', 'ResNet50_vd', 'ResNet101', 'ResNet101_vd']。默认为'ResNet50'。
-> - **with_fpn** (bool): 是否使用FPN结构。默认为True。
-> - **aspect_ratios** (list): 生成anchor高宽比的可选值。默认为[0.5, 1.0, 2.0]。
-> - **anchor_sizes** (list): 生成anchor大小的可选值。默认为[32, 64, 128, 256, 512]。
-
-#### MaskRCNN训练函数接口
-
-> ```python
-> train(self, num_epochs, train_dataset, train_batch_size=1, eval_dataset=None, save_interval_epochs=1, log_interval_steps=20, save_dir='output', pretrain_weights='IMAGENET', optimizer=None, learning_rate=1.0/800, warmup_steps=500, warmup_start_lr=1.0 / 2400, lr_decay_epochs=[8, 11], lr_decay_gamma=0.1, metric=None, use_vdl=False, early_stop=False, early_stop_patience=5, resume_checkpoint=None)
->
-> ```
->
-> **参数:**
->
-> > - **num_epochs** (int): 训练迭代轮数。
-> > - **train_dataset** (paddlex.datasets): 训练数据读取器。
-> > - **train_batch_size** (int): 训练数据batch大小。目前检测仅支持单卡评估,训练数据batch大小与显卡数量之商为验证数据batch大小。默认为1。
-> > - **eval_dataset** (paddlex.datasets): 验证数据读取器。
-> > - **save_interval_epochs** (int): 模型保存间隔(单位:迭代轮数)。默认为1。
-> > - **log_interval_steps** (int): 训练日志输出间隔(单位:迭代次数)。默认为2。
-> > - **save_dir** (str): 模型保存路径。默认值为'output'。
-> > - **pretrain_weights** (str): 若指定为路径时,则加载路径下预训练模型;若为字符串'IMAGENET',则自动下载在ImageNet图片数据上预训练的模型权重;若为None,则不使用预训练模型。默认为None。
-> > - **optimizer** (paddle.fluid.optimizer): 优化器。当该参数为None时,使用默认优化器:fluid.layers.piecewise_decay衰减策略,fluid.optimizer.Momentum优化方法。
-> > - **learning_rate** (float): 默认优化器的初始学习率。默认为0.00125。
-> > - **warmup_steps** (int): 默认优化器进行warmup过程的步数。默认为500。
-> > - **warmup_start_lr** (int): 默认优化器warmup的起始学习率。默认为1.0/2400。
-> > - **lr_decay_epochs** (list): 默认优化器的学习率衰减轮数。默认为[8, 11]。
-> > - **lr_decay_gamma** (float): 默认优化器的学习率衰减率。默认为0.1。
-> > - **metric** (bool): 训练过程中评估的方式,取值范围为['COCO', 'VOC']。默认值为None。
-> > - **use_vdl** (bool): 是否使用VisualDL进行可视化。默认值为False。
-> > - **early_stop** (float): 是否使用提前终止训练策略。默认值为False。
-> > - **early_stop_patience** (int): 当使用提前终止训练策略时,如果验证集精度在`early_stop_patience`个epoch内连续下降或持平,则终止训练。默认值为5。
-> > - **resume_checkpoint** (str): 恢复训练时指定上次训练保存的模型路径。若为None,则不会恢复训练。默认值为None。
-
-#### MaskRCNN评估函数接口
-
-> ```python
-> evaluate(self, eval_dataset, batch_size=1, epoch_id=None, metric=None, return_details=False)
->
-> ```
->
-> **参数:**
->
-> > - **eval_dataset** (paddlex.datasets): 验证数据读取器。
-> > - **batch_size** (int): 验证数据批大小。默认为1。当前只支持设置为1。
-> > - **epoch_id** (int): 当前评估模型所在的训练轮数。
-> > - **metric** (bool): 训练过程中评估的方式,取值范围为['COCO', 'VOC']。默认为None,根据用户传入的Dataset自动选择,如为VOCDetection,则`metric`为'VOC'; 如为COCODetection,则`metric`为'COCO'。
-> > - **return_details** (bool): 是否返回详细信息。默认值为False。
-> >
-> **返回值:**
->
-> > - **tuple** (metrics, eval_details) | **dict** (metrics): 当`return_details`为True时,返回(metrics, eval_details),当return_details为False时,返回metrics。metrics为dict,包含关键字:'bbox_mmap'和'segm_mmap'或者’bbox_map‘和'segm_map',分别表示预测框和分割区域平均准确率平均值在各个IoU阈值下的结果取平均值的结果(mmAP)、平均准确率平均值(mAP)。eval_details为dict,包含关键字:'bbox',对应元素预测框结果列表,每个预测结果由图像id、预测框类别id、预测框坐标、预测框得分;'mask',对应元素预测区域结果列表,每个预测结果由图像id、预测区域类别id、预测区域坐标、预测区域得分;’gt‘:真实标注框和标注区域相关信息。
-
-#### MaskRCNN预测函数接口
-
-> ```python
-> predict(self, img_file, transforms=None)
->
-> ```
->
-> **参数:**
->
-> > - **img_file** (str): 预测图像路径。
-> > - **transforms** (paddlex.det.transforms): 数据预处理操作。
->
-> **返回值:**
->
-> > - **list**: 预测结果列表,列表中每个元素均为一个dict,key'bbox', 'mask', 'category', 'category_id', 'score',分别表示每个预测目标的框坐标信息、Mask信息,类别、类别id、置信度,其中框坐标信息为[xmin, ymin, w, h],即左上角x, y坐标和框的宽和高。
-
-## 分割模型
-
-### DeepLabv3p类
-
-```python
-paddlex.seg.DeepLabv3p(num_classes=2, backbone='MobileNetV2_x1.0', output_stride=16, aspp_with_sep_conv=True, decoder_use_sep_conv=True, encoder_with_aspp=True, enable_decoder=True, use_bce_loss=False, use_dice_loss=False, class_weight=None, ignore_index=255)
-
-```
-
-构建DeepLabv3p分割器,并实现其训练、评估和预测。
-
-**参数:**
-
-> - **num_classes** (int): 类别数。
-> - **backbone** (str): DeepLabv3+的backbone网络,实现特征图的计算,取值范围为['Xception65', 'Xception41', 'MobileNetV2_x0.25', 'MobileNetV2_x0.5', 'MobileNetV2_x1.0', 'MobileNetV2_x1.5', 'MobileNetV2_x2.0'],'MobileNetV2_x1.0'。
-> - **output_stride** (int): backbone 输出特征图相对于输入的下采样倍数,一般取值为8或16。默认16。
-> - **aspp_with_sep_conv** (bool): decoder模块是否采用separable convolutions。默认True。
-> - **decoder_use_sep_conv** (bool): decoder模块是否采用separable convolutions。默认True。
-> - **encoder_with_aspp** (bool): 是否在encoder阶段采用aspp模块。默认True。
-> - **enable_decoder** (bool): 是否使用decoder模块。默认True。
-> - **use_bce_loss** (bool): 是否使用bce loss作为网络的损失函数,只能用于两类分割。可与dice loss同时使用。默认False。
-> - **use_dice_loss** (bool): 是否使用dice loss作为网络的损失函数,只能用于两类分割,可与bce loss同时使用,当`use_bce_loss`和`use_dice_loss`都为False时,使用交叉熵损失函数。默认False。
-> - **class_weight** (list/str): 交叉熵损失函数各类损失的权重。当`class_weight`为list的时候,长度应为`num_classes`。当`class_weight`为str时, weight.lower()应为'dynamic',这时会根据每一轮各类像素的比重自行计算相应的权重,每一类的权重为:每类的比例 * num_classes。class_weight取默认值None是,各类的权重1,即平时使用的交叉熵损失函数。
-> - **ignore_index** (int): label上忽略的值,label为`ignore_index`的像素不参与损失函数的计算。默认255。
-
-#### DeepLabv3训练函数接口
-
-> ```python
-> train(self, num_epochs, train_dataset, train_batch_size=2, eval_dataset=None, eval_batch_size=1, save_interval_epochs=1, log_interval_steps=2, save_dir='output', pretrain_weights='IMAGENET', optimizer=None, learning_rate=0.01, lr_decay_power=0.9, use_vdl=False, sensitivities_file=None, eval_metric_loss=0.05, early_stop=False, early_stop_patience=5, resume_checkpoint=None):
->
-> ```
->
-> **参数:**
-> >
-> > - **num_epochs** (int): 训练迭代轮数。
-> > - **train_dataset** (paddlex.datasets): 训练数据读取器。
-> > - **train_batch_size** (int): 训练数据batch大小。同时作为验证数据batch大小。默认2。
-> > - **eval_dataset** (paddlex.datasets): 评估数据读取器。
-> > - **save_interval_epochs** (int): 模型保存间隔(单位:迭代轮数)。默认为1。
-> > - **log_interval_steps** (int): 训练日志输出间隔(单位:迭代次数)。默认为2。
-> > - **save_dir** (str): 模型保存路径。默认'output'
-> > - **pretrain_weights** (str): 若指定为路径时,则加载路径下预训练模型;若为字符串'IMAGENET',则自动下载在ImageNet图片数据上预训练的模型权重;若为None,则不使用预训练模型。默认'IMAGENET'。
-> > - **optimizer** (paddle.fluid.optimizer): 优化器。当该参数为None时,使用默认的优化器:使用fluid.optimizer.Momentum优化方法,polynomial的学习率衰减策略。
-> > - **learning_rate** (float): 默认优化器的初始学习率。默认0.01。
-> > - **lr_decay_power** (float): 默认优化器学习率衰减指数。默认0.9。
-> > - **use_vdl** (bool): 是否使用VisualDL进行可视化。默认False。
-> > - **sensitivities_file** (str): 若指定为路径时,则加载路径下敏感度信息进行裁剪;若为字符串'DEFAULT',则自动下载在ImageNet图片数据上获得的敏感度信息进行裁剪;若为None,则不进行裁剪。默认为None。
-> > - **eval_metric_loss** (float): 可容忍的精度损失。默认为0.05。
-> > - **early_stop** (float): 是否使用提前终止训练策略。默认值为False。
-> > - **early_stop_patience** (int): 当使用提前终止训练策略时,如果验证集精度在`early_stop_patience`个epoch内连续下降或持平,则终止训练。默认值为5。
-> > - **resume_checkpoint** (str): 恢复训练时指定上次训练保存的模型路径。若为None,则不会恢复训练。默认值为None。
-
-#### DeepLabv3评估函数接口
-
-> ```python
-> evaluate(self, eval_dataset, batch_size=1, epoch_id=None, return_details=False):
-> ```
-
-> **参数:**
-> >
-> > - **eval_dataset** (paddlex.datasets): 评估数据读取器。
-> > - **batch_size** (int): 评估时的batch大小。默认1。
-> > - **epoch_id** (int): 当前评估模型所在的训练轮数。
-> > - **return_details** (bool): 是否返回详细信息。默认False。
-
-> **返回值:**
-> >
-> > - **dict**: 当`return_details`为False时,返回dict。包含关键字:'miou'、'category_iou'、'macc'、
-> > 'category_acc'和'kappa',分别表示平均iou、各类别iou、平均准确率、各类别准确率和kappa系数。
-> > - **tuple** (metrics, eval_details):当`return_details`为True时,增加返回dict (eval_details),
-> > 包含关键字:'confusion_matrix',表示评估的混淆矩阵。
-
-#### DeepLabv3预测函数接口
-
-> ```
-> predict(self, im_file, transforms=None):
-> ```
-
-> **参数:**
-> >
-> > - **img_file** (str): 预测图像路径。
-> > - **transforms** (paddlex.seg.transforms): 数据预处理操作。
-
-> **返回值:**
-> >
-> > - **dict**: 包含关键字'label_map'和'score_map', 'label_map'存储预测结果灰度图,像素值表示对应的类别,'score_map'存储各类别的概率,shape=(h, w, num_classes)。
-
-### UNet类
-
-```python
-paddlex.seg.UNet(num_classes=2, upsample_mode='bilinear', use_bce_loss=False, use_dice_loss=False, class_weight=None, ignore_index=255)
-```
-
-构建UNet分割器,并实现其训练、评估和预测。
-
-
-**参数:**
-
-> - **num_classes** (int): 类别数。
-> - **upsample_mode** (str): UNet decode时采用的上采样方式,取值为'bilinear'时利用双线行差值进行上菜样,当输入其他选项时则利用反卷积进行上菜样,默认为'bilinear'。
-> - **use_bce_loss** (bool): 是否使用bce loss作为网络的损失函数,只能用于两类分割。可与dice loss同时使用。默认False。
-> - **use_dice_loss** (bool): 是否使用dice loss作为网络的损失函数,只能用于两类分割,可与bce loss同时使用。当use_bce_loss和use_dice_loss都为False时,使用交叉熵损失函数。默认False。
-> - **class_weight** (list/str): 交叉熵损失函数各类损失的权重。当`class_weight`为list的时候,长度应为`num_classes`。当`class_weight`为str时, weight.lower()应为'dynamic',这时会根据每一轮各类像素的比重自行计算相应的权重,每一类的权重为:每类的比例 * num_classes。class_weight取默认值None是,各类的权重1,即平时使用的交叉熵损失函数。
-> - **ignore_index** (int): label上忽略的值,label为`ignore_index`的像素不参与损失函数的计算。默认255。
-
-#### Unet训练函数接口
-
-> ```python
-> train(self, num_epochs, train_dataset, train_batch_size=2, eval_dataset=None, eval_batch_size=1, save_interval_epochs=1, log_interval_steps=2, save_dir='output', pretrain_weights='COCO', optimizer=None, learning_rate=0.01, lr_decay_power=0.9, use_vdl=False, sensitivities_file=None, eval_metric_loss=0.05, early_stop=False, early_stop_patience=5, resume_checkpoint=None):
-> ```
->
-> **参数:**
-> >
-> > - **num_epochs** (int): 训练迭代轮数。
-> > - **train_dataset** (paddlex.datasets): 训练数据读取器。
-> > - **train_batch_size** (int): 训练数据batch大小。同时作为验证数据batch大小。默认2。
-> > - **eval_dataset** (paddlex.datasets): 评估数据读取器。
-> > - **save_interval_epochs** (int): 模型保存间隔(单位:迭代轮数)。默认为1。
-> > - **log_interval_steps** (int): 训练日志输出间隔(单位:迭代次数)。默认为2。
-> > - **save_dir** (str): 模型保存路径。默认'output'
-> > - **pretrain_weights** (str): 若指定为路径时,则加载路径下预训练模型;若为字符串'IMAGENET',则自动下载在COCO图片数据上预训练的模型权重;若为None,则不使用预训练模型。默认'COCO'。
-> > - **optimizer** (paddle.fluid.optimizer): 优化器。当该参数为None时,使用默认的优化器:使用fluid.optimizer.Momentum优化方法,polynomial的学习率衰减策略。
-> > - **learning_rate** (float): 默认优化器的初始学习率。默认0.01。
-> > - **lr_decay_power** (float): 默认优化器学习率衰减指数。默认0.9。
-> > - **use_vdl** (bool): 是否使用VisualDL进行可视化。默认False。
-> > - **sensitivities_file** (str): 若指定为路径时,则加载路径下敏感度信息进行裁剪;若为字符串'DEFAULT',则自动下载在ImageNet图片数据上获得的敏感度信息进行裁剪;若为None,则不进行裁剪。默认为None。
-> > - **eval_metric_loss** (float): 可容忍的精度损失。默认为0.05。
-> > - **early_stop** (float): 是否使用提前终止训练策略。默认值为False。
-> > - **early_stop_patience** (int): 当使用提前终止训练策略时,如果验证集精度在`early_stop_patience`个epoch内连续下降或持平,则终止训练。默认值为5。
-> > - **resume_checkpoint** (str): 恢复训练时指定上次训练保存的模型路径。若为None,则不会恢复训练。默认值为None。
-
-#### Unet评估函数接口
-
-> ```
-> evaluate(self, eval_dataset, batch_size=1, epoch_id=None, return_details=False):
-> ```
-
-> **参数:**
-> >
-> > - **eval_dataset** (paddlex.datasets): 评估数据读取器。
-> > - **batch_size** (int): 评估时的batch大小。默认1。
-> > - **epoch_id** (int): 当前评估模型所在的训练轮数。
-> > - **return_details** (bool): 是否返回详细信息。默认False。
-
-> **返回值:**
-> >
-> > - **dict**: 当return_details为False时,返回dict。包含关键字:'miou'、'category_iou'、'macc'、
-> > 'category_acc'和'kappa',分别表示平均iou、各类别iou、平均准确率、各类别准确率和kappa系数。
-> > - **tuple** (metrics, eval_details):当return_details为True时,增加返回dict (eval_details),
-> > 包含关键字:'confusion_matrix',表示评估的混淆矩阵。
-
-#### Unet预测函数接口
-
-> ```
-> predict(self, im_file, transforms=None):
-> ```
-
-> **参数:**
-> >
-> > - **img_file** (str): 预测图像路径。
-> > - **transforms** (paddlex.seg.transforms): 数据预处理操作。
-
-> **返回值:**
-> >
-> > - **dict**: 包含关键字'label_map'和'score_map', 'label_map'存储预测结果灰度图,像素值表示对应的类别,'score_map'存储各类别的概率,shape=(h, w, num_classes)。
diff --git a/docs/apis/models/classification.md b/docs/apis/models/classification.md
new file mode 100755
index 0000000000000000000000000000000000000000..4fa083df17d5d87c1b9755e9c224bfd236ebc6b6
--- /dev/null
+++ b/docs/apis/models/classification.md
@@ -0,0 +1,188 @@
+# 图像分类
+
+## ResNet50类
+
+```python
+paddlex.cls.ResNet50(num_classes=1000)
+```
+
+> 构建ResNet50分类器,并实现其训练、评估和预测。
+
+**参数**
+
+> - **num_classes** (int): 类别数。默认为1000。
+
+### train 训练接口
+
+```python
+train(self, num_epochs, train_dataset, train_batch_size=64, eval_dataset=None, save_interval_epochs=1, log_interval_steps=2, save_dir='output', pretrain_weights='IMAGENET', optimizer=None, learning_rate=0.025, lr_decay_epochs=[30, 60, 90], lr_decay_gamma=0.1, use_vdl=False, sensitivities_file=None, eval_metric_loss=0.05, early_stop=False, early_stop_patience=5, resume_checkpoint=None)
+```
+>
+> **参数**
+>
+> > - **num_epochs** (int): 训练迭代轮数。
+> > - **train_dataset** (paddlex.datasets): 训练数据读取器。
+> > - **train_batch_size** (int): 训练数据batch大小。同时作为验证数据batch大小。默认值为64。
+> > - **eval_dataset** (paddlex.datasets): 验证数据读取器。
+> > - **save_interval_epochs** (int): 模型保存间隔(单位:迭代轮数)。默认为1。
+> > - **log_interval_steps** (int): 训练日志输出间隔(单位:迭代步数)。默认为2。
+> > - **save_dir** (str): 模型保存路径。
+> > - **pretrain_weights** (str): 若指定为路径时,则加载路径下预训练模型;若为字符串'IMAGENET',则自动下载在ImageNet图片数据上预训练的模型权重;若为None,则不使用预训练模型。默认为'IMAGENET'。
+> > - **optimizer** (paddle.fluid.optimizer): 优化器。当该参数为None时,使用默认优化器:fluid.layers.piecewise_decay衰减策略,fluid.optimizer.Momentum优化方法。
+> > - **learning_rate** (float): 默认优化器的初始学习率。默认为0.025。
+> > - **lr_decay_epochs** (list): 默认优化器的学习率衰减轮数。默认为[30, 60, 90]。
+> > - **lr_decay_gamma** (float): 默认优化器的学习率衰减率。默认为0.1。
+> > - **use_vdl** (bool): 是否使用VisualDL进行可视化。默认值为False。
+> > - **sensitivities_file** (str): 若指定为路径时,则加载路径下敏感度信息进行裁剪;若为字符串'DEFAULT',则自动下载在ImageNet图片数据上获得的敏感度信息进行裁剪;若为None,则不进行裁剪。默认为None。
+> > - **eval_metric_loss** (float): 可容忍的精度损失。默认为0.05。
+> > - **early_stop** (float): 是否使用提前终止训练策略。默认值为False。
+> > - **early_stop_patience** (int): 当使用提前终止训练策略时,如果验证集精度在`early_stop_patience`个epoch内连续下降或持平,则终止训练。默认值为5。
+> > - **resume_checkpoint** (str): 恢复训练时指定上次训练保存的模型路径。若为None,则不会恢复训练。默认值为None。
+
+### evaluate 评估接口
+
+```python
+evaluate(self, eval_dataset, batch_size=1, epoch_id=None, return_details=False)
+```
+>
+> **参数**
+>
+> > - **eval_dataset** (paddlex.datasets): 验证数据读取器。
+> > - **batch_size** (int): 验证数据批大小。默认为1。
+> > - **epoch_id** (int): 当前评估模型所在的训练轮数。
+> > - **return_details** (bool): 是否返回详细信息,默认False。
+>
+> **返回值**
+>
+> > - **dict**: 当return_details为False时,返回dict, 包含关键字:'acc1'、'acc5',分别表示最大值的accuracy、前5个最大值的accuracy。
+> > - **tuple** (metrics, eval_details): 当`return_details`为True时,增加返回dict,包含关键字:'true_labels'、'pred_scores',分别代表真实类别id、每个类别的预测得分。
+
+### predict 预测接口
+
+```python
+predict(self, img_file, transforms=None, topk=5)
+```
+
+> 分类模型预测接口。需要注意的是,只有在训练过程中定义了eval_dataset,模型在保存时才会将预测时的图像处理流程保存在`ResNet50.test_transforms`和`ResNet50.eval_transforms`中。如未在训练时定义eval_dataset,那在调用预测`predict`接口时,用户需要再重新定义test_transforms传入给`predict`接口。
+
+> **参数**
+>
+> > - **img_file** (str): 预测图像路径。
+> > - **transforms** (paddlex.cls.transforms): 数据预处理操作。
+> > - **topk** (int): 预测时前k个最大值。
+
+> **返回值**
+>
+> > - **list**: 其中元素均为字典。字典的关键字为'category_id'、'category'、'score',
+> > 分别对应预测类别id、预测类别标签、预测得分。
+
+## 其它分类器类
+
+PaddleX提供了共计22种分类器,所有分类器均提供同`ResNet50`相同的训练`train`,评估`evaluate`和预测`predict`接口,各模型效果可参考[模型库](../appendix/model_zoo.md)。
+
+### ResNet18
+```python
+paddlex.cls.ResNet18(num_classes=1000)
+```
+
+### ResNet34
+```python
+paddlex.cls.ResNet34(num_classes=1000)
+```
+
+
+### ResNet50
+```python
+paddlex.cls.ResNet50(num_classes=1000)
+```
+
+### ResNet50_vd
+```python
+paddlex.cls.ResNet50_vd(num_classes=1000)
+```
+
+### ResNet50_vd_ssld
+```python
+paddlex.cls.ResNet50_vd_ssld(num_classes=1000)
+```
+
+### ResNet101
+```python
+paddlex.cls.ResNet101(num_classes=1000)
+```
+
+### ResNet101_vd
+```python
+paddlex.cls.ResNet101_vdnum_classes=1000)
+```
+
+### ResNet101_vd_ssld
+```python
+paddlex.cls.ResNet101_vd_ssld(num_classes=1000)
+```
+
+### DarkNet53
+```python
+paddlex.cls.DarkNet53(num_classes=1000)
+```
+
+### MobileNetV1
+```python
+paddlex.cls.MobileNetV1(num_classes=1000)
+```
+
+### MobileNetV2
+```python
+paddlex.cls.MobileNetV2(num_classes=1000)
+```
+
+### MobileNetV3_small
+```python
+paddlex.cls.MobileNetV3_small(num_classes=1000)
+```
+
+### MobileNetV3_small_ssld
+```python
+paddlex.cls.MobileNetV3_small_ssld(num_classes=1000)
+```
+
+### MobileNetV3_large
+```python
+paddlex.cls.MobileNetV3_large(num_classes=1000)
+```
+
+### MobileNetV3_large_ssld
+```python
+paddlex.cls.MobileNetV3_large_ssld(num_classes=1000)
+```
+
+### Xception65
+```python
+paddlex.cls.Xception65(num_classes=1000)
+```
+
+### Xception71
+```python
+paddlex.cls.Xception71(num_classes=1000)
+```
+
+### ShuffleNetV2
+```python
+paddlex.cls.ShuffleNetV2(num_classes=1000)
+```
+
+### DenseNet121
+```python
+paddlex.cls.DenseNet121(num_classes=1000)
+```
+
+### DenseNet161
+```python
+paddlex.cls.DenseNet161(num_classes=1000)
+```
+
+### DenseNet201
+```python
+paddlex.cls.DenseNet201(num_classes=1000)
+```
+
diff --git a/docs/apis/models/detection.md b/docs/apis/models/detection.md
new file mode 100755
index 0000000000000000000000000000000000000000..2039be6db803d0f0c4335346e7b6127565c684af
--- /dev/null
+++ b/docs/apis/models/detection.md
@@ -0,0 +1,180 @@
+# 目标检测
+
+## YOLOv3类
+
+```python
+paddlex.det.YOLOv3(num_classes=80, backbone='MobileNetV1', anchors=None, anchor_masks=None, ignore_threshold=0.7, nms_score_threshold=0.01, nms_topk=1000, nms_keep_topk=100, nms_iou_threshold=0.45, label_smooth=False, train_random_shapes=[320, 352, 384, 416, 448, 480, 512, 544, 576, 608])
+```
+
+> 构建YOLOv3检测器。**注意在YOLOv3,num_classes不需要包含背景类,如目标包括human、dog两种,则num_classes设为2即可,这里与FasterRCNN/MaskRCNN有差别**
+
+> **参数**
+>
+> > - **num_classes** (int): 类别数。默认为80。
+> > - **backbone** (str): YOLOv3的backbone网络,取值范围为['DarkNet53', 'ResNet34', 'MobileNetV1', 'MobileNetV3_large']。默认为'MobileNetV1'。
+> > - **anchors** (list|tuple): anchor框的宽度和高度,为None时表示使用默认值
+> > [[10, 13], [16, 30], [33, 23], [30, 61], [62, 45],
+> [59, 119], [116, 90], [156, 198], [373, 326]]。
+> > - **anchor_masks** (list|tuple): 在计算YOLOv3损失时,使用anchor的mask索引,为None时表示使用默认值
+> > [[6, 7, 8], [3, 4, 5], [0, 1, 2]]。
+> > - **ignore_threshold** (float): 在计算YOLOv3损失时,IoU大于`ignore_threshold`的预测框的置信度被忽略。默认为0.7。
+> > - **nms_score_threshold** (float): 检测框的置信度得分阈值,置信度得分低于阈值的框应该被忽略。默认为0.01。
+> > - **nms_topk** (int): 进行NMS时,根据置信度保留的最大检测框数。默认为1000。
+> > - **nms_keep_topk** (int): 进行NMS后,每个图像要保留的总检测框数。默认为100。
+> > - **nms_iou_threshold** (float): 进行NMS时,用于剔除检测框IOU的阈值。默认为0.45。
+> > - **label_smooth** (bool): 是否使用label smooth。默认值为False。
+> > - **train_random_shapes** (list|tuple): 训练时从列表中随机选择图像大小。默认值为[320, 352, 384, 416, 448, 480, 512, 544, 576, 608]。
+
+### train 训练接口
+
+```python
+train(self, num_epochs, train_dataset, train_batch_size=8, eval_dataset=None, save_interval_epochs=20, log_interval_steps=2, save_dir='output', pretrain_weights='IMAGENET', optimizer=None, learning_rate=1.0/8000, warmup_steps=1000, warmup_start_lr=0.0, lr_decay_epochs=[213, 240], lr_decay_gamma=0.1, metric=None, use_vdl=False, sensitivities_file=None, eval_metric_loss=0.05, early_stop=False, early_stop_patience=5, resume_checkpoint=None)
+```
+
+> YOLOv3模型的训练接口,函数内置了`piecewise`学习率衰减策略和`momentum`优化器。
+
+> **参数**
+>
+> > - **num_epochs** (int): 训练迭代轮数。
+> > - **train_dataset** (paddlex.datasets): 训练数据读取器。
+> > - **train_batch_size** (int): 训练数据batch大小。目前检测仅支持单卡评估,训练数据batch大小与显卡数量之商为验证数据batch大小。默认值为8。
+> > - **eval_dataset** (paddlex.datasets): 验证数据读取器。
+> > - **save_interval_epochs** (int): 模型保存间隔(单位:迭代轮数)。默认为20。
+> > - **log_interval_steps** (int): 训练日志输出间隔(单位:迭代次数)。默认为2。
+> > - **save_dir** (str): 模型保存路径。默认值为'output'。
+> > - **pretrain_weights** (str): 若指定为路径时,则加载路径下预训练模型;若为字符串'IMAGENET',则自动下载在ImageNet图片数据上预训练的模型权重;若为None,则不使用预训练模型。默认为None。
+> > - **optimizer** (paddle.fluid.optimizer): 优化器。当该参数为None时,使用默认优化器:fluid.layers.piecewise_decay衰减策略,fluid.optimizer.Momentum优化方法。
+> > - **learning_rate** (float): 默认优化器的学习率。默认为1.0/8000。
+> > - **warmup_steps** (int): 默认优化器进行warmup过程的步数。默认为1000。
+> > - **warmup_start_lr** (int): 默认优化器warmup的起始学习率。默认为0.0。
+> > - **lr_decay_epochs** (list): 默认优化器的学习率衰减轮数。默认为[213, 240]。
+> > - **lr_decay_gamma** (float): 默认优化器的学习率衰减率。默认为0.1。
+> > - **metric** (bool): 训练过程中评估的方式,取值范围为['COCO', 'VOC']。默认值为None。
+> > - **use_vdl** (bool): 是否使用VisualDL进行可视化。默认值为False。
+> > - **sensitivities_file** (str): 若指定为路径时,则加载路径下敏感度信息进行裁剪;若为字符串'DEFAULT',则自动下载在PascalVOC数据上获得的敏感度信息进行裁剪;若为None,则不进行裁剪。默认为None。
+> > - **eval_metric_loss** (float): 可容忍的精度损失。默认为0.05。
+> > - **early_stop** (float): 是否使用提前终止训练策略。默认值为False。
+> > - **early_stop_patience** (int): 当使用提前终止训练策略时,如果验证集精度在`early_stop_patience`个epoch内连续下降或持平,则终止训练。默认值为5。
+> > - **resume_checkpoint** (str): 恢复训练时指定上次训练保存的模型路径。若为None,则不会恢复训练。默认值为None。
+
+### evaluate 评估接口
+
+```python
+evaluate(self, eval_dataset, batch_size=1, epoch_id=None, metric=None, return_details=False)
+```
+
+> YOLOv3模型的评估接口,模型评估后会返回在验证集上的指标`box_map`(metric指定为'VOC'时)或`box_mmap`(metric指定为`COCO`时)。
+
+> **参数**
+>
+> > - **eval_dataset** (paddlex.datasets): 验证数据读取器。
+> > - **batch_size** (int): 验证数据批大小。默认为1。
+> > - **epoch_id** (int): 当前评估模型所在的训练轮数。
+> > - **metric** (bool): 训练过程中评估的方式,取值范围为['COCO', 'VOC']。默认为None,根据用户传入的Dataset自动选择,如为VOCDetection,则`metric`为'VOC';如为COCODetection,则`metric`为'COCO'默认为None, 如为EasyData类型数据集,同时也会使用'VOC'。
+> > - **return_details** (bool): 是否返回详细信息。默认值为False。
+> >
+> **返回值**
+>
+> > - **tuple** (metrics, eval_details) | **dict** (metrics): 当`return_details`为True时,返回(metrics, eval_details),当`return_details`为False时,返回metrics。metrics为dict,包含关键字:'bbox_mmap'或者’bbox_map‘,分别表示平均准确率平均值在各个阈值下的结果取平均值的结果(mmAP)、平均准确率平均值(mAP)。eval_details为dict,包含关键字:'bbox',对应元素预测结果列表,每个预测结果由图像id、预测框类别id、预测框坐标、预测框得分;’gt‘:真实标注框相关信息。
+
+### predict 预测接口
+
+```python
+predict(self, img_file, transforms=None)
+```
+
+> YOLOv3模型预测接口。需要注意的是,只有在训练过程中定义了eval_dataset,模型在保存时才会将预测时的图像处理流程保存在`YOLOv3.test_transforms`和`YOLOv3.eval_transforms`中。如未在训练时定义eval_dataset,那在调用预测`predict`接口时,用户需要再重新定义`test_transforms`传入给`predict`接口
+
+> **参数**
+>
+> > - **img_file** (str): 预测图像路径。
+> > - **transforms** (paddlex.det.transforms): 数据预处理操作。
+>
+> **返回值**
+>
+> > - **list**: 预测结果列表,列表中每个元素均为一个dict,key包括'bbox', 'category', 'category_id', 'score',分别表示每个预测目标的框坐标信息、类别、类别id、置信度,其中框坐标信息为[xmin, ymin, w, h],即左上角x, y坐标和框的宽和高。
+
+
+## FasterRCNN类
+
+```python
+paddlex.det.FasterRCNN(num_classes=81, backbone='ResNet50', with_fpn=True, aspect_ratios=[0.5, 1.0, 2.0], anchor_sizes=[32, 64, 128, 256, 512])
+
+```
+
+> 构建FasterRCNN检测器。 **注意在FasterRCNN中,num_classes需要设置为类别数+背景类,如目标包括human、dog两种,则num_classes需设为3,多的一种为背景background类别**
+
+> **参数**
+
+> > - **num_classes** (int): 包含了背景类的类别数。默认为81。
+> > - **backbone** (str): FasterRCNN的backbone网络,取值范围为['ResNet18', 'ResNet50', 'ResNet50_vd', 'ResNet101', 'ResNet101_vd']。默认为'ResNet50'。
+> > - **with_fpn** (bool): 是否使用FPN结构。默认为True。
+> > - **aspect_ratios** (list): 生成anchor高宽比的可选值。默认为[0.5, 1.0, 2.0]。
+> > - **anchor_sizes** (list): 生成anchor大小的可选值。默认为[32, 64, 128, 256, 512]。
+
+### train 训练接口
+
+```python
+train(self, num_epochs, train_dataset, train_batch_size=2, eval_dataset=None, save_interval_epochs=1, log_interval_steps=2,save_dir='output', pretrain_weights='IMAGENET', optimizer=None, learning_rate=0.0025, warmup_steps=500, warmup_start_lr=1.0/1200, lr_decay_epochs=[8, 11], lr_decay_gamma=0.1, metric=None, use_vdl=False, early_stop=False, early_stop_patience=5, resume_checkpoint=None)
+```
+
+> FasterRCNN模型的训练接口,函数内置了`piecewise`学习率衰减策略和`momentum`优化器。
+
+> **参数**
+>
+> > - **num_epochs** (int): 训练迭代轮数。
+> > - **train_dataset** (paddlex.datasets): 训练数据读取器。
+> > - **train_batch_size** (int): 训练数据batch大小。目前检测仅支持单卡评估,训练数据batch大小与显卡数量之商为验证数据batch大小。默认为2。
+> > - **eval_dataset** (paddlex.datasets): 验证数据读取器。
+> > - **save_interval_epochs** (int): 模型保存间隔(单位:迭代轮数)。默认为1。
+> > - **log_interval_steps** (int): 训练日志输出间隔(单位:迭代次数)。默认为2。
+> > - **save_dir** (str): 模型保存路径。默认值为'output'。
+> > - **pretrain_weights** (str): 若指定为路径时,则加载路径下预训练模型;若为字符串'IMAGENET',则自动下载在ImageNet图片数据上预训练的模型权重;若为None,则不使用预训练模型。默认为None。
+> > - **optimizer** (paddle.fluid.optimizer): 优化器。当该参数为None时,使用默认优化器:fluid.layers.piecewise_decay衰减策略,fluid.optimizer.Momentum优化方法。
+> > - **learning_rate** (float): 默认优化器的初始学习率。默认为0.0025。
+> > - **warmup_steps** (int): 默认优化器进行warmup过程的步数。默认为500。
+> > - **warmup_start_lr** (int): 默认优化器warmup的起始学习率。默认为1.0/1200。
+> > - **lr_decay_epochs** (list): 默认优化器的学习率衰减轮数。默认为[8, 11]。
+> > - **lr_decay_gamma** (float): 默认优化器的学习率衰减率。默认为0.1。
+> > - **metric** (bool): 训练过程中评估的方式,取值范围为['COCO', 'VOC']。默认值为None。
+> > - **use_vdl** (bool): 是否使用VisualDL进行可视化。默认值为False。
+> > - **early_stop** (float): 是否使用提前终止训练策略。默认值为False。
+> > - **early_stop_patience** (int): 当使用提前终止训练策略时,如果验证集精度在`early_stop_patience`个epoch内连续下降或持平,则终止训练。默认值为5。
+> > - **resume_checkpoint** (str): 恢复训练时指定上次训练保存的模型路径。若为None,则不会恢复训练。默认值为None。
+
+### evaluate 接口
+
+```python
+evaluate(self, eval_dataset, batch_size=1, epoch_id=None, metric=None, return_details=False)
+```
+
+> FasterRCNN模型的评估接口,模型评估后会返回在验证集上的指标box_map(metric指定为’VOC’时)或box_mmap(metric指定为COCO时)。
+
+> **参数**
+>
+> > - **eval_dataset** (paddlex.datasets): 验证数据读取器。
+> > - **batch_size** (int): 验证数据批大小。默认为1。当前只支持设置为1。
+> > - **epoch_id** (int): 当前评估模型所在的训练轮数。
+> > - **metric** (bool): 训练过程中评估的方式,取值范围为['COCO', 'VOC']。默认为None,根据用户传入的Dataset自动选择,如为VOCDetection,则`metric`为'VOC'; 如为COCODetection,则`metric`为'COCO'。
+> > - **return_details** (bool): 是否返回详细信息。默认值为False。
+> >
+> **返回值**
+>
+> > - **tuple** (metrics, eval_details) | **dict** (metrics): 当`return_details`为True时,返回(metrics, eval_details),当`return_details`为False时,返回metrics。metrics为dict,包含关键字:'bbox_mmap'或者’bbox_map‘,分别表示平均准确率平均值在各个IoU阈值下的结果取平均值的结果(mmAP)、平均准确率平均值(mAP)。eval_details为dict,包含关键字:'bbox',对应元素预测结果列表,每个预测结果由图像id、预测框类别id、预测框坐标、预测框得分;’gt‘:真实标注框相关信息。
+
+### predict 预测接口
+
+```python
+predict(self, img_file, transforms=None)
+```
+
+> FasterRCNN模型预测接口。需要注意的是,只有在训练过程中定义了eval_dataset,模型在保存时才会将预测时的图像处理流程保存在`FasterRCNN.test_transforms`和`FasterRCNN.eval_transforms`中。如未在训练时定义eval_dataset,那在调用预测`predict`接口时,用户需要再重新定义test_transforms传入给`predict`接口。
+
+> **参数**
+>
+> > - **img_file** (str): 预测图像路径。
+> > - **transforms** (paddlex.det.transforms): 数据预处理操作。
+>
+> **返回值**
+>
+> > - **list**: 预测结果列表,列表中每个元素均为一个dict,key包括'bbox', 'category', 'category_id', 'score',分别表示每个预测目标的框坐标信息、类别、类别id、置信度,其中框坐标信息为[xmin, ymin, w, h],即左上角x, y坐标和框的宽和高。
diff --git a/docs/apis/models/index.rst b/docs/apis/models/index.rst
new file mode 100755
index 0000000000000000000000000000000000000000..5e533189cd44759cb2002e64bf1a0a9b066cfc6e
--- /dev/null
+++ b/docs/apis/models/index.rst
@@ -0,0 +1,12 @@
+模型集-models
+============================
+
+PaddleX目前支持 `四种视觉任务解决方案 <../../cv_solutions.html>`_ ,包括图像分类、目标检测、实例分割和语义分割。对于每种视觉任务,PaddleX又提供了1种或多种模型,用户可根据需求及应用场景选取。
+
+.. toctree::
+ :maxdepth: 2
+
+ classification.md
+ detection.md
+ instance_segmentation.md
+ semantic_segmentation.md
diff --git a/docs/apis/models/instance_segmentation.md b/docs/apis/models/instance_segmentation.md
new file mode 100755
index 0000000000000000000000000000000000000000..f08645478cdafa845431ed52b68387f672886d17
--- /dev/null
+++ b/docs/apis/models/instance_segmentation.md
@@ -0,0 +1,85 @@
+# 实例分割
+
+## MaskRCNN类
+
+```python
+paddlex.det.MaskRCNN(num_classes=81, backbone='ResNet50', with_fpn=True, aspect_ratios=[0.5, 1.0, 2.0], anchor_sizes=[32, 64, 128, 256, 512])
+
+```
+
+> 构建MaskRCNN检测器。**注意在MaskRCNN中,num_classes需要设置为类别数+背景类,如目标包括human、dog两种,则num_classes需设为3,多的一种为背景background类别**
+
+> **参数**
+
+> > - **num_classes** (int): 包含了背景类的类别数。默认为81。
+> > - **backbone** (str): MaskRCNN的backbone网络,取值范围为['ResNet18', 'ResNet50', 'ResNet50_vd', 'ResNet101', 'ResNet101_vd']。默认为'ResNet50'。
+> > - **with_fpn** (bool): 是否使用FPN结构。默认为True。
+> > - **aspect_ratios** (list): 生成anchor高宽比的可选值。默认为[0.5, 1.0, 2.0]。
+> > - **anchor_sizes** (list): 生成anchor大小的可选值。默认为[32, 64, 128, 256, 512]。
+
+#### train 训练接口
+
+```python
+train(self, num_epochs, train_dataset, train_batch_size=1, eval_dataset=None, save_interval_epochs=1, log_interval_steps=20, save_dir='output', pretrain_weights='IMAGENET', optimizer=None, learning_rate=1.0/800, warmup_steps=500, warmup_start_lr=1.0 / 2400, lr_decay_epochs=[8, 11], lr_decay_gamma=0.1, metric=None, use_vdl=False, early_stop=False, early_stop_patience=5, resume_checkpoint=None)
+```
+
+> MaskRCNN模型的训练接口,函数内置了`piecewise`学习率衰减策略和`momentum`优化器。
+
+> **参数**
+>
+> > - **num_epochs** (int): 训练迭代轮数。
+> > - **train_dataset** (paddlex.datasets): 训练数据读取器。
+> > - **train_batch_size** (int): 训练数据batch大小。目前检测仅支持单卡评估,训练数据batch大小与显卡数量之商为验证数据batch大小。默认为1。
+> > - **eval_dataset** (paddlex.datasets): 验证数据读取器。
+> > - **save_interval_epochs** (int): 模型保存间隔(单位:迭代轮数)。默认为1。
+> > - **log_interval_steps** (int): 训练日志输出间隔(单位:迭代次数)。默认为2。
+> > - **save_dir** (str): 模型保存路径。默认值为'output'。
+> > - **pretrain_weights** (str): 若指定为路径时,则加载路径下预训练模型;若为字符串'IMAGENET',则自动下载在ImageNet图片数据上预训练的模型权重;若为None,则不使用预训练模型。默认为None。
+> > - **optimizer** (paddle.fluid.optimizer): 优化器。当该参数为None时,使用默认优化器:fluid.layers.piecewise_decay衰减策略,fluid.optimizer.Momentum优化方法。
+> > - **learning_rate** (float): 默认优化器的初始学习率。默认为0.00125。
+> > - **warmup_steps** (int): 默认优化器进行warmup过程的步数。默认为500。
+> > - **warmup_start_lr** (int): 默认优化器warmup的起始学习率。默认为1.0/2400。
+> > - **lr_decay_epochs** (list): 默认优化器的学习率衰减轮数。默认为[8, 11]。
+> > - **lr_decay_gamma** (float): 默认优化器的学习率衰减率。默认为0.1。
+> > - **metric** (bool): 训练过程中评估的方式,取值范围为['COCO', 'VOC']。默认值为None。
+> > - **use_vdl** (bool): 是否使用VisualDL进行可视化。默认值为False。
+> > - **early_stop** (float): 是否使用提前终止训练策略。默认值为False。
+> > - **early_stop_patience** (int): 当使用提前终止训练策略时,如果验证集精度在`early_stop_patience`个epoch内连续下降或持平,则终止训练。默认值为5。
+> > - **resume_checkpoint** (str): 恢复训练时指定上次训练保存的模型路径。若为None,则不会恢复训练。默认值为None。
+
+#### evaluate 评估接口
+
+```python
+evaluate(self, eval_dataset, batch_size=1, epoch_id=None, metric=None, return_details=False)
+```
+
+> MaskRCNN模型的评估接口,模型评估后会返回在验证集上的指标box_mmap(metric指定为COCO时)和相应的seg_mmap。
+
+> **参数**
+>
+> > - **eval_dataset** (paddlex.datasets): 验证数据读取器。
+> > - **batch_size** (int): 验证数据批大小。默认为1。当前只支持设置为1。
+> > - **epoch_id** (int): 当前评估模型所在的训练轮数。
+> > - **metric** (bool): 训练过程中评估的方式,取值范围为['COCO', 'VOC']。默认为None,根据用户传入的Dataset自动选择,如为VOCDetection,则`metric`为'VOC'; 如为COCODetection,则`metric`为'COCO'。
+> > - **return_details** (bool): 是否返回详细信息。默认值为False。
+> >
+> **返回值**
+>
+> > - **tuple** (metrics, eval_details) | **dict** (metrics): 当`return_details`为True时,返回(metrics, eval_details),当return_details为False时,返回metrics。metrics为dict,包含关键字:'bbox_mmap'和'segm_mmap'或者’bbox_map‘和'segm_map',分别表示预测框和分割区域平均准确率平均值在各个IoU阈值下的结果取平均值的结果(mmAP)、平均准确率平均值(mAP)。eval_details为dict,包含关键字:'bbox',对应元素预测框结果列表,每个预测结果由图像id、预测框类别id、预测框坐标、预测框得分;'mask',对应元素预测区域结果列表,每个预测结果由图像id、预测区域类别id、预测区域坐标、预测区域得分;’gt‘:真实标注框和标注区域相关信息。
+
+#### predict 预测接口
+
+```python
+predict(self, img_file, transforms=None)
+```
+
+> MaskRCNN模型预测接口。需要注意的是,只有在训练过程中定义了eval_dataset,模型在保存时才会将预测时的图像处理流程保存在FasterRCNN.test_transforms和FasterRCNN.eval_transforms中。如未在训练时定义eval_dataset,那在调用预测predict接口时,用户需要再重新定义test_transforms传入给predict接口。
+
+> **参数**
+>
+> > - **img_file** (str): 预测图像路径。
+> > - **transforms** (paddlex.det.transforms): 数据预处理操作。
+>
+> **返回值**
+>
+> > - **list**: 预测结果列表,列表中每个元素均为一个dict,key'bbox', 'mask', 'category', 'category_id', 'score',分别表示每个预测目标的框坐标信息、Mask信息,类别、类别id、置信度,其中框坐标信息为[xmin, ymin, w, h],即左上角x, y坐标和框的宽和高。
diff --git a/docs/apis/models/semantic_segmentation.md b/docs/apis/models/semantic_segmentation.md
new file mode 100755
index 0000000000000000000000000000000000000000..12b54d8c6114466771e25bdd88d21466018ed5aa
--- /dev/null
+++ b/docs/apis/models/semantic_segmentation.md
@@ -0,0 +1,175 @@
+# 语义分割
+
+## DeepLabv3p类
+
+```python
+paddlex.seg.DeepLabv3p(num_classes=2, backbone='MobileNetV2_x1.0', output_stride=16, aspp_with_sep_conv=True, decoder_use_sep_conv=True, encoder_with_aspp=True, enable_decoder=True, use_bce_loss=False, use_dice_loss=False, class_weight=None, ignore_index=255)
+
+```
+
+> 构建DeepLabv3p分割器。
+
+> **参数**
+
+> > - **num_classes** (int): 类别数。
+> > - **backbone** (str): DeepLabv3+的backbone网络,实现特征图的计算,取值范围为['Xception65', 'Xception41', 'MobileNetV2_x0.25', 'MobileNetV2_x0.5', 'MobileNetV2_x1.0', 'MobileNetV2_x1.5', 'MobileNetV2_x2.0'],'MobileNetV2_x1.0'。
+> > - **output_stride** (int): backbone 输出特征图相对于输入的下采样倍数,一般取值为8或16。默认16。
+> > - **aspp_with_sep_conv** (bool): decoder模块是否采用separable convolutions。默认True。
+> > - **decoder_use_sep_conv** (bool): decoder模块是否采用separable convolutions。默认True。
+> > - **encoder_with_aspp** (bool): 是否在encoder阶段采用aspp模块。默认True。
+> > - **enable_decoder** (bool): 是否使用decoder模块。默认True。
+> > - **use_bce_loss** (bool): 是否使用bce loss作为网络的损失函数,只能用于两类分割。可与dice loss同时使用。默认False。
+> > - **use_dice_loss** (bool): 是否使用dice loss作为网络的损失函数,只能用于两类分割,可与bce loss同时使用,当`use_bce_loss`和`use_dice_loss`都为False时,使用交叉熵损失函数。默认False。
+> > - **class_weight** (list/str): 交叉熵损失函数各类损失的权重。当`class_weight`为list的时候,长度应为`num_classes`。当`class_weight`为str时, weight.lower()应为'dynamic',这时会根据每一轮各类像素的比重自行计算相应的权重,每一类的权重为:每类的比例 * num_classes。class_weight取默认值None是,各类的权重1,即平时使用的交叉熵损失函数。
+> > - **ignore_index** (int): label上忽略的值,label为`ignore_index`的像素不参与损失函数的计算。默认255。
+
+### train 训练接口
+
+```python
+train(self, num_epochs, train_dataset, train_batch_size=2, eval_dataset=None, eval_batch_size=1, save_interval_epochs=1, log_interval_steps=2, save_dir='output', pretrain_weights='IMAGENET', optimizer=None, learning_rate=0.01, lr_decay_power=0.9, use_vdl=False, sensitivities_file=None, eval_metric_loss=0.05, early_stop=False, early_stop_patience=5, resume_checkpoint=None):
+```
+
+> DeepLabv3p模型的训练接口,函数内置了`polynomial`学习率衰减策略和`momentum`优化器。
+
+> **参数**
+> >
+> > - **num_epochs** (int): 训练迭代轮数。
+> > - **train_dataset** (paddlex.datasets): 训练数据读取器。
+> > - **train_batch_size** (int): 训练数据batch大小。同时作为验证数据batch大小。默认2。
+> > - **eval_dataset** (paddlex.datasets): 评估数据读取器。
+> > - **save_interval_epochs** (int): 模型保存间隔(单位:迭代轮数)。默认为1。
+> > - **log_interval_steps** (int): 训练日志输出间隔(单位:迭代次数)。默认为2。
+> > - **save_dir** (str): 模型保存路径。默认'output'
+> > - **pretrain_weights** (str): 若指定为路径时,则加载路径下预训练模型;若为字符串'IMAGENET',则自动下载在ImageNet图片数据上预训练的模型权重;若为None,则不使用预训练模型。默认'IMAGENET'。
+> > - **optimizer** (paddle.fluid.optimizer): 优化器。当该参数为None时,使用默认的优化器:使用fluid.optimizer.Momentum优化方法,polynomial的学习率衰减策略。
+> > - **learning_rate** (float): 默认优化器的初始学习率。默认0.01。
+> > - **lr_decay_power** (float): 默认优化器学习率衰减指数。默认0.9。
+> > - **use_vdl** (bool): 是否使用VisualDL进行可视化。默认False。
+> > - **sensitivities_file** (str): 若指定为路径时,则加载路径下敏感度信息进行裁剪;若为字符串'DEFAULT',则自动下载在ImageNet图片数据上获得的敏感度信息进行裁剪;若为None,则不进行裁剪。默认为None。
+> > - **eval_metric_loss** (float): 可容忍的精度损失。默认为0.05。
+> > - **early_stop** (float): 是否使用提前终止训练策略。默认值为False。
+> > - **early_stop_patience** (int): 当使用提前终止训练策略时,如果验证集精度在`early_stop_patience`个epoch内连续下降或持平,则终止训练。默认值为5。
+> > - **resume_checkpoint** (str): 恢复训练时指定上次训练保存的模型路径。若为None,则不会恢复训练。默认值为None。
+
+### evaluate 评估接口
+
+```python
+evaluate(self, eval_dataset, batch_size=1, epoch_id=None, return_details=False):
+```
+
+> DeepLabv3p模型评估接口。
+
+> **参数**
+> >
+> > - **eval_dataset** (paddlex.datasets): 评估数据读取器。
+> > - **batch_size** (int): 评估时的batch大小。默认1。
+> > - **epoch_id** (int): 当前评估模型所在的训练轮数。
+> > - **return_details** (bool): 是否返回详细信息。默认False。
+
+> **返回值**
+> >
+> > - **dict**: 当`return_details`为False时,返回dict。包含关键字:'miou'、'category_iou'、'macc'、
+> > 'category_acc'和'kappa',分别表示平均iou、各类别iou、平均准确率、各类别准确率和kappa系数。
+> > - **tuple** (metrics, eval_details):当`return_details`为True时,增加返回dict (eval_details),
+> > 包含关键字:'confusion_matrix',表示评估的混淆矩阵。
+
+### predict 预测接口
+
+```
+predict(self, im_file, transforms=None):
+```
+
+> DeepLabv3p模型预测接口。需要注意的是,只有在训练过程中定义了eval_dataset,模型在保存时才会将预测时的图像处理流程保存在`DeepLabv3p.test_transforms`和`DeepLabv3p.eval_transforms`中。如未在训练时定义eval_dataset,那在调用预测`predict`接口时,用户需要再重新定义test_transforms传入给`predict`接口。
+
+> **参数**
+> >
+> > - **img_file** (str): 预测图像路径。
+> > - **transforms** (paddlex.seg.transforms): 数据预处理操作。
+
+> **返回值**
+> >
+> > - **dict**: 包含关键字'label_map'和'score_map', 'label_map'存储预测结果灰度图,像素值表示对应的类别,'score_map'存储各类别的概率,shape=(h, w, num_classes)。
+
+## UNet类
+
+```python
+paddlex.seg.UNet(num_classes=2, upsample_mode='bilinear', use_bce_loss=False, use_dice_loss=False, class_weight=None, ignore_index=255)
+```
+
+> 构建UNet分割器。
+
+> **参数**
+
+> > - **num_classes** (int): 类别数。
+> > - **upsample_mode** (str): UNet decode时采用的上采样方式,取值为'bilinear'时利用双线行差值进行上菜样,当输入其他选项时则利用反卷积进行上菜样,默认为'bilinear'。
+> > - **use_bce_loss** (bool): 是否使用bce loss作为网络的损失函数,只能用于两类分割。可与dice loss同时使用。默认False。
+> > - **use_dice_loss** (bool): 是否使用dice loss作为网络的损失函数,只能用于两类分割,可与bce loss同时使用。当use_bce_loss和use_dice_loss都为False时,使用交叉熵损失函数。默认False。
+> > - **class_weight** (list/str): 交叉熵损失函数各类损失的权重。当`class_weight`为list的时候,长度应为`num_classes`。当`class_weight`为str时, weight.lower()应为'dynamic',这时会根据每一轮各类像素的比重自行计算相应的权重,每一类的权重为:每类的比例 * num_classes。class_weight取默认值None是,各类的权重1,即平时使用的交叉熵损失函数。
+> > - **ignore_index** (int): label上忽略的值,label为`ignore_index`的像素不参与损失函数的计算。默认255。
+
+### train 训练接口
+
+```python
+train(self, num_epochs, train_dataset, train_batch_size=2, eval_dataset=None, eval_batch_size=1, save_interval_epochs=1, log_interval_steps=2, save_dir='output', pretrain_weights='COCO', optimizer=None, learning_rate=0.01, lr_decay_power=0.9, use_vdl=False, sensitivities_file=None, eval_metric_loss=0.05, early_stop=False, early_stop_patience=5, resume_checkpoint=None):
+```
+
+> UNet模型训练接口。
+
+> **参数**
+> >
+> > - **num_epochs** (int): 训练迭代轮数。
+> > - **train_dataset** (paddlex.datasets): 训练数据读取器。
+> > - **train_batch_size** (int): 训练数据batch大小。同时作为验证数据batch大小。默认2。
+> > - **eval_dataset** (paddlex.datasets): 评估数据读取器。
+> > - **save_interval_epochs** (int): 模型保存间隔(单位:迭代轮数)。默认为1。
+> > - **log_interval_steps** (int): 训练日志输出间隔(单位:迭代次数)。默认为2。
+> > - **save_dir** (str): 模型保存路径。默认'output'
+> > - **pretrain_weights** (str): 若指定为路径时,则加载路径下预训练模型;若为字符串'IMAGENET',则自动下载在COCO图片数据上预训练的模型权重;若为None,则不使用预训练模型。默认'COCO'。
+> > - **optimizer** (paddle.fluid.optimizer): 优化器。当该参数为None时,使用默认的优化器:使用fluid.optimizer.Momentum优化方法,polynomial的学习率衰减策略。
+> > - **learning_rate** (float): 默认优化器的初始学习率。默认0.01。
+> > - **lr_decay_power** (float): 默认优化器学习率衰减指数。默认0.9。
+> > - **use_vdl** (bool): 是否使用VisualDL进行可视化。默认False。
+> > - **sensitivities_file** (str): 若指定为路径时,则加载路径下敏感度信息进行裁剪;若为字符串'DEFAULT',则自动下载在ImageNet图片数据上获得的敏感度信息进行裁剪;若为None,则不进行裁剪。默认为None。
+> > - **eval_metric_loss** (float): 可容忍的精度损失。默认为0.05。
+> > - **early_stop** (float): 是否使用提前终止训练策略。默认值为False。
+> > - **early_stop_patience** (int): 当使用提前终止训练策略时,如果验证集精度在`early_stop_patience`个epoch内连续下降或持平,则终止训练。默认值为5。
+> > - **resume_checkpoint** (str): 恢复训练时指定上次训练保存的模型路径。若为None,则不会恢复训练。默认值为None。
+
+#### evaluate 评估接口
+
+```
+evaluate(self, eval_dataset, batch_size=1, epoch_id=None, return_details=False):
+```
+
+> UNet模型评估接口。
+
+> **参数**
+> >
+> > - **eval_dataset** (paddlex.datasets): 评估数据读取器。
+> > - **batch_size** (int): 评估时的batch大小。默认1。
+> > - **epoch_id** (int): 当前评估模型所在的训练轮数。
+> > - **return_details** (bool): 是否返回详细信息。默认False。
+
+> **返回值**
+> >
+> > - **dict**: 当return_details为False时,返回dict。包含关键字:'miou'、'category_iou'、'macc'、
+> > 'category_acc'和'kappa',分别表示平均iou、各类别iou、平均准确率、各类别准确率和kappa系数。
+> > - **tuple** (metrics, eval_details):当return_details为True时,增加返回dict (eval_details),
+> > 包含关键字:'confusion_matrix',表示评估的混淆矩阵。
+
+#### predict 预测接口
+
+```
+predict(self, im_file, transforms=None):
+```
+
+> UNet模型预测接口。需要注意的是,只有在训练过程中定义了eval_dataset,模型在保存时才会将预测时的图像处理流程保存在`UNet.test_transforms`和`UNet.eval_transforms`中。如未在训练时定义eval_dataset,那在调用预测`predict`接口时,用户需要再重新定义test_transforms传入给`predict`接口。
+
+> **参数**
+> >
+> > - **img_file** (str): 预测图像路径。
+> > - **transforms** (paddlex.seg.transforms): 数据预处理操作。
+
+> **返回值**
+> >
+> > - **dict**: 包含关键字'label_map'和'score_map', 'label_map'存储预测结果灰度图,像素值表示对应的类别,'score_map'存储各类别的概率,shape=(h, w, num_classes)。
diff --git a/docs/apis/slim.md b/docs/apis/slim.md
old mode 100644
new mode 100755
diff --git a/docs/apis/transforms/cls_transforms.md b/docs/apis/transforms/cls_transforms.md
old mode 100644
new mode 100755
index ff6a9ebff33a9938ef439dd881d5ba9c492da479..ccffc30292c7b5dea81ba6fe62a42a1810203ca9
--- a/docs/apis/transforms/cls_transforms.md
+++ b/docs/apis/transforms/cls_transforms.md
@@ -1,4 +1,4 @@
-# 分类-paddlex.cls.transforms
+# 图像分类-cls.transforms
对图像分类任务的数据进行操作。可以利用[Compose](#compose)类将图像预处理/增强操作进行组合。
diff --git a/docs/apis/transforms/det_transforms.md b/docs/apis/transforms/det_transforms.md
old mode 100644
new mode 100755
index 21212cedec6a88483393d7232583e87ccf749dc4..0ee6e57ee778769c0e363eaee9050b36d5f6eb5a
--- a/docs/apis/transforms/det_transforms.md
+++ b/docs/apis/transforms/det_transforms.md
@@ -1,4 +1,4 @@
-# 检测-paddlex.det.transforms
+# 检测和实例分割-det.transforms
对目标检测任务的数据进行操作。可以利用[Compose](#compose)类将图像预处理/增强操作进行组合。
diff --git a/docs/apis/transforms/index.rst b/docs/apis/transforms/index.rst
old mode 100644
new mode 100755
diff --git a/docs/apis/transforms/seg_transforms.md b/docs/apis/transforms/seg_transforms.md
old mode 100644
new mode 100755
index d339f8c2048013cc73ac8d55984d5e6e5c98c20b..1708290680e767b3a06615f0b789279b716433ea
--- a/docs/apis/transforms/seg_transforms.md
+++ b/docs/apis/transforms/seg_transforms.md
@@ -1,4 +1,4 @@
-# 分割-paddlex.seg.transforms
+# 语义分割-seg.transforms
对用于分割任务的数据进行操作。可以利用[Compose](#compose)类将图像预处理/增强操作进行组合。
diff --git a/docs/apis/visualize.md b/docs/apis/visualize.md
old mode 100644
new mode 100755
diff --git a/docs/anaconda_install.md b/docs/appendix/anaconda_install.md
old mode 100644
new mode 100755
similarity index 84%
rename from docs/anaconda_install.md
rename to docs/appendix/anaconda_install.md
index 84e2d07c1e2f3fda66f64c73816ed5b75dfa9f40..154be30928496da632ac5f67f3e7ee27fe05bc48
--- a/docs/anaconda_install.md
+++ b/docs/appendix/anaconda_install.md
@@ -3,11 +3,12 @@ Anaconda是一个开源的Python发行版本,其包含了conda、Python等180
## Windows安装Anaconda
### 第一步 下载
-在Anaconda官网[(https://www.anaconda.com/products/individual)](https://www.anaconda.com/products/individual)选择下载Windows Python3.7 64-Bit版本
+- 在Anaconda官网[(https://www.anaconda.com/products/individual)](https://www.anaconda.com/products/individual)选择下载Windows Python3.7 64-Bit版本
+- 确保已经安装`Visual C++ Build Tools`(可以在开始菜单中找到),如未安装,请[点击下载](https://go.microsoft.com/fwlink/?LinkId=691126)安装。
### 第二步 安装
运行下载的安装包(以.exe为后辍),根据引导完成安装, 用户可自行修改安装目录(如下图)
-![](./images/anaconda_windows.png)
+![](../images/anaconda_windows.png)
### 第三步 使用
- 点击Windows系统左下角的Windows图标,打开:所有程序->Anaconda3/2(64-bit)->Anaconda Prompt
@@ -21,7 +22,7 @@ conda activate my_paddlex
conda install git
# 安装pycocotools
pip install cython
-pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI
+pip install git+https://gitee.com/jiangjiajun/philferriere-cocoapi.git#subdirectory=PythonAPI
# 安装paddlepaddle-gpu
pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
# 安装paddlex
diff --git a/docs/gpu_configure.md b/docs/appendix/gpu_configure.md
old mode 100644
new mode 100755
similarity index 100%
rename from docs/gpu_configure.md
rename to docs/appendix/gpu_configure.md
diff --git a/docs/how_to_offline_run.md b/docs/appendix/how_to_offline_run.md
old mode 100644
new mode 100755
similarity index 100%
rename from docs/how_to_offline_run.md
rename to docs/appendix/how_to_offline_run.md
diff --git a/docs/appendix/index.rst b/docs/appendix/index.rst
new file mode 100755
index 0000000000000000000000000000000000000000..4e6438cdfa706ebfe982b4a76b10916caa2e506b
--- /dev/null
+++ b/docs/appendix/index.rst
@@ -0,0 +1,17 @@
+附录
+=======================================
+
+
+.. toctree::
+ :maxdepth: 1
+ :caption: 目录:
+
+ model_zoo.md
+ metrics.md
+
+* PaddleX版本: v0.1.7
+* 项目官网: http://www.paddlepaddle.org.cn/paddle/paddlex
+* 项目GitHub: https://github.com/PaddlePaddle/PaddleX/tree/develop
+* 官方QQ用户群: 1045148026
+* GitHub Issue反馈: http://www.github.com/PaddlePaddle/PaddleX/issues
+
diff --git a/docs/metrics.md b/docs/appendix/metrics.md
old mode 100644
new mode 100755
similarity index 99%
rename from docs/metrics.md
rename to docs/appendix/metrics.md
index da812e94fb73c13a5e5c1504363b359856b952db..021a95857cf423bf65e23e81459c0ac40257c8be
--- a/docs/metrics.md
+++ b/docs/appendix/metrics.md
@@ -1,4 +1,4 @@
-# 指标及日志含义
+# PaddleX指标及日志
PaddleX在模型训练、评估过程中,都会有相应的日志和指标反馈,本文档用于说明这些日志和指标的含义。
diff --git a/docs/appendix/model_zoo.md b/docs/appendix/model_zoo.md
new file mode 100644
index 0000000000000000000000000000000000000000..f48ea51361f85c6fdeb22c6c03e8d6f982fbd439
--- /dev/null
+++ b/docs/appendix/model_zoo.md
@@ -0,0 +1,52 @@
+# PaddleX模型库
+
+## 图像分类模型
+> 表中模型相关指标均为在ImageNet数据集上使用PaddlePaddle Python预测接口测试得到(测试GPU型号为Nvidia Tesla P40),预测速度为每张图片预测用时(不包括预处理和后处理),表中符号`-`表示相关指标暂未测试。
+
+
+| 模型 | 模型大小 | 预测速度(毫秒) | Top1准确率(%) | Top5准确率(%) |
+| :----| :------- | :----------- | :--------- | :--------- |
+| ResNet18| 46.9MB | 1.499 | 71.0 | 89.9 |
+| ResNet34| 87.5MB | 2.272 | 74.6 | 92.1 |
+| ResNet50| 102.7MB | 2.939 | 76.5 | 93.0 |
+| ResNet101 |179.1MB | 5.314 | 77.6 | 93.6 |
+| ResNet50_vd |102.8MB | 3.165 | 79.1 | 94.4 |
+| ResNet101_vd| 179.2MB | 5.252 | 80.2 | 95.0 |
+| ResNet50_vd_ssld |102.8MB | 3.165 | 82.4 | 96.1 |
+| ResNet101_vd_ssld| 179.2MB | 5.252 | 83.7 | 96.7 |
+| DarkNet53|166.9MB | 3.139 | 78.0 | 94.1 |
+| MobileNetV1 | 16.0MB | 32.523 | 71.0 | 89.7 |
+| MobileNetV2 | 14.0MB | 23.318 | 72.2 | 90.7 |
+| MobileNetV3_large| 21.0MB | 19.308 | 75.3 | 93.2 |
+| MobileNetV3_small | 12.0MB | 6.546 | 68.2 | 88.1 |
+| MobileNetV3_large_ssld| 21.0MB | 19.308 | 79.0 | 94.5 |
+| MobileNetV3_small_ssld | 12.0MB | 6.546 | 71.3 | 90.1 |
+| Xception41 |92.4MB | 4.408 | 79.6 | 94.4 |
+| Xception65 | 144.6MB | 6.464 | 80.3 | 94.5 |
+| DenseNet121 | 32.8MB | 4.371 | 75.7 | 92.6 |
+| DenseNet161|116.3MB | 8.863 | 78.6 | 94.1 |
+| DenseNet201| 84.6MB | 8.173 | 77.6 | 93.7 |
+| ShuffleNetV2 | 9.0MB | 10.941 | 68.8 | 88.5 |
+
+## 目标检测模型
+
+> 表中模型相关指标均为在MSCOCO数据集上使用PaddlePaddle Python预测接口测试得到(测试GPU型号为Nvidia Tesla V100测试得到,表中符号`-`表示相关指标暂未测试。
+
+| 模型 | 模型大小 | 预测时间(毫秒) | BoxAP(%) |
+|:-------|:-----------|:-------------|:----------|
+|FasterRCNN-ResNet50|135.6MB| 78.450 | 35.2 |
+|FasterRCNN-ResNet50_vd| 135.7MB | 79.523 | 36.4 |
+|FasterRCNN-ResNet101| 211.7MB | 107.342 | 38.3 |
+|FasterRCNN-ResNet50-FPN| 167.2MB | 44.897 | 37.2 |
+|FasterRCNN-ResNet50_vd-FPN|168.7MB | 45.773 | 38.9 |
+|FasterRCNN-ResNet101-FPN| 251.7MB | 55.782 | 38.7 |
+|FasterRCNN-ResNet101_vd-FPN |252MB | 58.785 | 40.5 |
+|YOLOv3-DarkNet53|252.4MB | 21.944 | 38.9 |
+|YOLOv3-MobileNetv1 |101.2MB | 12.771 | 29.3 |
+|YOLOv3-MobileNetv3|94.6MB | - | 31.6 |
+| YOLOv3-ResNet34|169.7MB | 15.784 | 36.2 |
+
+## 实例分割模型
+
+> 表中模型相关指标均为在MSCOCO数据集上测试得到。
+
diff --git a/docs/client_use.md b/docs/client_use.md
deleted file mode 100644
index bb0fbf88ccc95b10b193aaee0be0705ef6277113..0000000000000000000000000000000000000000
--- a/docs/client_use.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# 使用PaddleX客户端进行模型训练
-
-**第一步:下载PaddleX客户端**
-
-您需要前往 [官网](https://www.paddlepaddle.org.cn/paddle/paddlex)填写基本信息后下载试用PaddleX客户端
-
-
-**第二步:准备数据**
-
-在开始模型训练前,您需要根据不同的任务类型,将数据标注为相应的格式。目前PaddleX支持【图像分类】、【目标检测】、【语义分割】、【实例分割】四种任务类型。不同类型任务的数据处理方式可查看[数据标注方式](https://github.com/PaddlePaddle/PaddleX/tree/master/DataAnnotation/AnnotationNote)。
-
-
-**第三步:导入我的数据集**
-
-① 数据标注完成后,您需要根据不同的任务,将数据和标注文件,按照客户端提示更名并保存到正确的文件中。
-
-② 在客户端新建数据集,选择与数据集匹配的任务类型,并选择数据集对应的路径,将数据集导入。
-
-![](./images/00_loaddata.png)
-
-③ 选定导入数据集后,客户端会自动校验数据及标注文件是否合规,校验成功后,您可根据实际需求,将数据集按比例划分为训练集、验证集、测试集。
-
-④ 您可在「数据分析」模块按规则预览您标注的数据集,双击单张图片可放大查看。
-
-![](./images/01_datasplit.png)
-
-
-
-**第四步:创建项目**
-
-① 在完成数据导入后,您可以点击「新建项目」创建一个项目。
-
-② 您可根据实际任务需求选择项目的任务类型,需要注意项目所采用的数据集也带有任务类型属性,两者需要进行匹配。
-
-![](./images/02_newproject.png)
-
-
-
-**第五步:项目开发**
-
-① **数据选择**:项目创建完成后,您需要选择已载入客户端并校验后的数据集,并点击下一步,进入参数配置页面。
-
-![](./images/03_choosedata.png)
-
-② **参数配置**:主要分为**模型参数**、**训练参数**、**优化策略**三部分。您可根据实际需求选择模型结构及对应的训练参数、优化策略,使得任务效果最佳。
-
-![](./images/04_parameter.png)
-
-参数配置完成后,点击启动训练,模型开始训练并进行效果评估。
-
-③ **训练可视化**:
-
-在训练过程中,您可通过VisualDL查看模型训练过程时的参数变化、日志详情,及当前最优的训练集和验证集训练指标。模型在训练过程中通过点击"终止训练"随时终止训练过程。
-
-![](./images/05_train.png)
-
-![](./images/06_VisualDL.png)
-
-模型训练结束后,点击”下一步“,进入模型评估页面。
-
-
-
-④ **模型评估**
-
-在模型评估页面,您可将训练后的模型应用在切分时留出的「验证数据集」以测试模型在验证集上的效果。评估方法包括混淆矩阵、精度、召回率等。在这个页面,您也可以直接查看模型在测试数据集上的预测效果。
-
-根据评估结果,您可决定进入模型发布页面,或返回先前步骤调整参数配置重新进行训练。
-
-![](./images/07_evaluate.png)
-
-⑤**模型发布**
-
-当模型效果满意后,您可根据实际的生产环境需求,选择将模型发布为需要的版本。
-
-![](./images/08_deploy.png)
diff --git a/docs/conf.py b/docs/conf.py
old mode 100644
new mode 100755
diff --git a/docs/convertor.md b/docs/convertor.md
deleted file mode 100644
index 2f1b4eacb0a1d936b1e937b2837c9796c04ffdc6..0000000000000000000000000000000000000000
--- a/docs/convertor.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# 模型转换
-
-## 转ONNX模型
-PaddleX基于[Paddle2ONNX工具](https://github.com/PaddlePaddle/paddle2onnx),提供了便捷的API,支持用户将PaddleX训练保存的模型导出为ONNX模型。
-通过如下示例代码,用户即可将PaddleX训练好的MobileNetV2模型导出
-```
-import paddlex as pdx
-pdx.convertor.to_onnx(model_dir='paddle_mobilenet', save_dir='onnx_mobilenet')
-```
-
-## 转PaddleLite模型
-PaddleX可支持导出为[PaddleLite](https://github.com/PaddlePaddle/Paddle-Lite)支持的模型格式,用于支持用户将模型部署更多硬件设备。
-通过如下示例代码,用户即可将PaddleX训练好的MobileNetV2模型导出
-```
-import paddlex as pdx
-pdx.convertor.to_lite(model_dir='paddle_mobilenet', save_dir='lite_mobilnet', terminal='arm')
-```
diff --git a/docs/cv_solutions.md b/docs/cv_solutions.md
new file mode 100755
index 0000000000000000000000000000000000000000..5bf084870ba3cbf581c89657daeaff0bebb2d66e
--- /dev/null
+++ b/docs/cv_solutions.md
@@ -0,0 +1,63 @@
+# PaddleX视觉方案介绍
+
+PaddleX目前提供了4种视觉任务解决方案,分别为图像分类、目标检测、实例分割和语义分割。用户可以根据自己的任务类型按需选取。
+
+## 图像分类
+图像分类任务指的是输入一张图片,模型预测图片的类别,如识别为风景、动物、车等。
+
+![](./images/image_classification.png)
+
+对于图像分类任务,针对不同的应用场景,PaddleX提供了百度改进的模型,见下表所示
+
+| 模型 | 模型大小 | GPU预测速度 | CPU预测速度 | ARM芯片预测速度 | 准确率 | 备注 |
+| :--------- | :------ | :---------- | :-----------| :------------- | :----- | :--- |
+| MobileNetV3_small_ssld | 12M | ? | ? | ? | 71.3% |适用于移动端场景 |
+| MobileNetV3_large_ssld | 21M | ? | ? | ? | 79.0% | 适用于移动端/服务端场景 |
+| ResNet50_vd_ssld | 102.8MB | ? | ? | ? | 82.4% | 适用于服务端场景 |
+| ResNet101_vd_ssld | 179.2MB | ? | ? | ? |83.7% | 适用于服务端场景 |
+
+除上述模型外,PaddleX还支持近20种图像分类模型,模型列表可参考[PaddleX模型库](../appendix/model_zoo.md)
+
+
+## 目标检测
+目标检测任务指的是输入图像,模型识别出图像中物体的位置(用矩形框框出来,并给出框的位置),和物体的类别,如在手机等零件质检中,用于检测外观上的瑕疵等。
+
+![](./images/object_detection.png)
+
+对于目标检测,针对不同的应用场景,PaddleX提供了主流的YOLOv3模型和Faster-RCNN模型,见下表所示
+
+| 模型 | 模型大小 | GPU预测速度 | CPU预测速度 |ARM芯片预测速度 | BoxMAP | 备注 |
+| :------- | :------- | :--------- | :---------- | :------------- | :----- | :--- |
+| YOLOv3-MobileNetV1 | 101.2M | ? | ? | ? | 29.3 | |
+| YOLOv3-MobileNetV3 | 94.6M | ? | ? | ? | 31.6 | |
+| YOLOv3-ResNet34 | 169.7M | ? | ? | ? | 36.2 | |
+| YOLOv3-DarkNet53 | 252.4 | ? | ? | ? | 38.9 | |
+
+除YOLOv3模型外,PaddleX同时也支持FasterRCNN模型,支持FPN结构和5种backbone网络,详情可参考[PaddleX模型库](../appendix/model_zoo.md)
+
+## 实例分割
+在目标检测中,模型识别出图像中物体的位置和物体的类别。而实例分割则是在目标检测的基础上,做了像素级的分类,将框内的属于目标物体的像素识别出来。
+
+![](./images/instance_segmentation.png)
+
+PaddleX目前提供了实例分割MaskRCNN模型,支持5种不同的backbone网络,详情可参考[PaddleX模型库](../appendix/model_zoo.md)
+
+| 模型 | 模型大小 | GPU预测速度 | CPU预测速度 | ARM芯片预测速度 | BoxMAP | SegMAP | 备注 |
+| :---- | :------- | :---------- | :---------- | :------------- | :----- | :----- | :--- |
+| MaskRCNN-ResNet50_vd-FPN | 185.5M | ? | ? | ? | 39.8 | 35.4 | |
+| MaskRCNN-ResNet101_vd-FPN | 268.6M | ? | ? | ? | 41.4 | 36.8 | |
+
+
+## 语义分割
+语义分割用于对图像做像素级的分类,应用在人像分类、遥感图像识别等场景。
+
+![](./images/semantic_segmentation.png)
+
+对于语义分割,PaddleX也针对不同的应用场景,提供了不同的模型选择,如下表所示
+
+| 模型 | 模型大小 | GPU预测速度 | CPU预测速度 | ARM芯片预测速度 | mIOU | 备注 |
+| :---- | :------- | :---------- | :---------- | :------------- | :----- | :----- |
+| DeepLabv3p-MobileNetV2_x0.25 | | ? | ? | ? | ? | ? |
+| DeepLabv3p-MobileNetV2_x1.0 | | ? | ? | ? | ? | ? |
+| DeepLabv3p-Xception65 | | ? | ? | ? | ? | ? |
+| UNet | | ? | ? | ? | ? | ? |
diff --git "a/docs/images/._\346\226\207\344\273\266(p37) BDSZYF000132754-docs jiangjiajun$ pwd :Users:jiangjiajun:Downloads:PaddleX-develop:docs:vdl1.png" "b/docs/images/._\346\226\207\344\273\266(p37) BDSZYF000132754-docs jiangjiajun$ pwd :Users:jiangjiajun:Downloads:PaddleX-develop:docs:vdl1.png"
new file mode 100644
index 0000000000000000000000000000000000000000..0eea21e4388200485959746b4135f58d45711883
Binary files /dev/null and "b/docs/images/._\346\226\207\344\273\266(p37) BDSZYF000132754-docs jiangjiajun$ pwd :Users:jiangjiajun:Downloads:PaddleX-develop:docs:vdl1.png" differ
diff --git a/docs/images/00_loaddata.png b/docs/images/00_loaddata.png
old mode 100644
new mode 100755
diff --git a/docs/images/01_datasplit.png b/docs/images/01_datasplit.png
old mode 100644
new mode 100755
diff --git a/docs/images/02_newproject.png b/docs/images/02_newproject.png
old mode 100644
new mode 100755
diff --git a/docs/images/03_choosedata.png b/docs/images/03_choosedata.png
old mode 100644
new mode 100755
diff --git a/docs/images/04_parameter.png b/docs/images/04_parameter.png
old mode 100644
new mode 100755
diff --git a/docs/images/05_train.png b/docs/images/05_train.png
old mode 100644
new mode 100755
diff --git a/docs/images/06_VisualDL.png b/docs/images/06_VisualDL.png
old mode 100644
new mode 100755
diff --git a/docs/images/07_evaluate.png b/docs/images/07_evaluate.png
old mode 100644
new mode 100755
diff --git a/docs/images/08_deploy.png b/docs/images/08_deploy.png
old mode 100644
new mode 100755
diff --git a/docs/images/PaddleX-Pipe-Line.png b/docs/images/PaddleX-Pipe-Line.png
old mode 100644
new mode 100755
diff --git a/docs/images/QQGroup.jpeg b/docs/images/QQGroup.jpeg
old mode 100644
new mode 100755
diff --git a/docs/images/anaconda_windows.png b/docs/images/anaconda_windows.png
old mode 100644
new mode 100755
diff --git a/docs/images/cls_eval.png b/docs/images/cls_eval.png
old mode 100644
new mode 100755
diff --git a/docs/images/cls_train.png b/docs/images/cls_train.png
old mode 100644
new mode 100755
diff --git a/docs/images/faster_eval.png b/docs/images/faster_eval.png
old mode 100644
new mode 100755
diff --git a/docs/images/faster_train.png b/docs/images/faster_train.png
old mode 100644
new mode 100755
diff --git a/docs/images/garbage.bmp b/docs/images/garbage.bmp
old mode 100644
new mode 100755
diff --git a/docs/images/image_classification.png b/docs/images/image_classification.png
new file mode 100644
index 0000000000000000000000000000000000000000..093b132c3c713e9d4842e70113ebdbbed38a914f
Binary files /dev/null and b/docs/images/image_classification.png differ
diff --git a/docs/images/instance_segmentation.png b/docs/images/instance_segmentation.png
new file mode 100644
index 0000000000000000000000000000000000000000..b697981e8d522a8a14729ab97a3797f7ea426dbc
Binary files /dev/null and b/docs/images/instance_segmentation.png differ
diff --git a/docs/images/mask_eval.png b/docs/images/mask_eval.png
old mode 100644
new mode 100755
diff --git a/docs/images/mask_train.png b/docs/images/mask_train.png
old mode 100644
new mode 100755
diff --git a/docs/images/object_detection.png b/docs/images/object_detection.png
new file mode 100644
index 0000000000000000000000000000000000000000..a322de78d5664347d80022b6a0c97e8555b12120
Binary files /dev/null and b/docs/images/object_detection.png differ
diff --git a/docs/images/paddlex.jpg b/docs/images/paddlex.jpg
old mode 100644
new mode 100755
diff --git a/docs/images/paddlex.png b/docs/images/paddlex.png
old mode 100644
new mode 100755
diff --git a/docs/images/seg_eval.png b/docs/images/seg_eval.png
old mode 100644
new mode 100755
diff --git a/docs/images/seg_train.png b/docs/images/seg_train.png
old mode 100644
new mode 100755
diff --git a/docs/images/semantic_segmentation.png b/docs/images/semantic_segmentation.png
new file mode 100644
index 0000000000000000000000000000000000000000..b59cc601685b8e6227c9b889fb6498bd011fc258
Binary files /dev/null and b/docs/images/semantic_segmentation.png differ
diff --git a/docs/images/vdl1.jpg b/docs/images/vdl1.jpg
index 57b189830edc336b169c6b19c054ae3d9c62e385..5b0c90d28bc9bda583008fe2fb9729a7c3e06df6 100644
Binary files a/docs/images/vdl1.jpg and b/docs/images/vdl1.jpg differ
diff --git a/docs/images/vdl2.jpg b/docs/images/vdl2.jpg
index f8b2911a9b6549e83bb8b7087e5e2ec920bab549..502a5f861104e2b20869b06cf8eb215ec58f0435 100644
Binary files a/docs/images/vdl2.jpg and b/docs/images/vdl2.jpg differ
diff --git a/docs/images/vdl3.jpg b/docs/images/vdl3.jpg
index 4eb585681b13def5b0428f3f2231833317acd8bf..a16d6924d8867949ecae258ee588296845c6da86 100644
Binary files a/docs/images/vdl3.jpg and b/docs/images/vdl3.jpg differ
diff --git a/docs/images/visualized_deeplab.jpg b/docs/images/visualized_deeplab.jpg
old mode 100644
new mode 100755
diff --git a/docs/images/visualized_fasterrcnn.jpg b/docs/images/visualized_fasterrcnn.jpg
old mode 100644
new mode 100755
diff --git a/docs/images/visualized_maskrcnn.jpeg b/docs/images/visualized_maskrcnn.jpeg
old mode 100644
new mode 100755
diff --git a/docs/images/voc_eval.png b/docs/images/voc_eval.png
old mode 100644
new mode 100755
diff --git a/docs/images/yolo_train.png b/docs/images/yolo_train.png
old mode 100644
new mode 100755
diff --git "a/docs/images/\346\226\207\344\273\266(p37) BDSZYF000132754-docs jiangjiajun$ pwd :Users:jiangjiajun:Downloads:PaddleX-develop:docs:vdl1.png" "b/docs/images/\346\226\207\344\273\266(p37) BDSZYF000132754-docs jiangjiajun$ pwd :Users:jiangjiajun:Downloads:PaddleX-develop:docs:vdl1.png"
new file mode 100644
index 0000000000000000000000000000000000000000..17e25a531e68c7655e46ad52d6c607e62bdcc6d6
Binary files /dev/null and "b/docs/images/\346\226\207\344\273\266(p37) BDSZYF000132754-docs jiangjiajun$ pwd :Users:jiangjiajun:Downloads:PaddleX-develop:docs:vdl1.png" differ
diff --git a/docs/index.rst b/docs/index.rst
old mode 100644
new mode 100755
index b8c2177a2a323eb6f4dc7d75321c9ea4672db230..3e4c80103288de087952261e623295041e96770a
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -1,26 +1,35 @@
欢迎使用PaddleX!
=======================================
-PaddleX是基于飞桨技术生态的深度学习全流程开发工具。具备易集成,易使用,全流程等特点。PaddleX作为深度学习开发工具,不仅提供了开源的内核代码,可供用户灵活使用或集成,同时也提供了配套的前端可视化客户端套件,让用户以可视化地方式进行模型开发,相关细节可查阅PaddleX官网。
+PaddleX是基于飞桨核心框架、开发套件和工具组件的深度学习全流程开发工具。具备 **全流程打通** 、**融合产业实践** 、**易用易集成** 三大特点。
-本文档为PaddleX内核代码使用手册
+
+全流程打通
+ | - **数据准备**: 支持LabelMe,精灵标注等主流数据标注工具协议,同时无缝集成 `EasyData智能数据服务平台 `_ ,助力开发者高效获取AI开发所需高质量数据。
+ | - **模型训练**: 基于飞桨核心框架集成 `PaddleClas `_ ,`PaddleDetection `_ ,`PaddleSeg `_ 视觉开发套件 ,`VisualDL `_ 可视化分析组件,高效完成模型训练。
+ | _ **多端部署**: 内置 `PaddleSlim `_ 模型压缩工具和AES模型加密SDK,结合Paddle Inference和 `Paddle Lite `_ 便捷完成高性能且可靠的多端部署。
+
+融合产业实践
+ | - 精选飞桨产业实践的成熟模型结构,开放案例实践教程,加速开发者产业落地。
+ | - 通过 `PaddleHub `_ 内置丰富的飞桨高质量预训练模型,助力开发者高效实现飞桨Master模式。
+
+易用易集成
+ | - PadldeX提供简洁易用的全流程API,几行代码即可实现上百种数据增强、模型可解释性、C++模型部署等功能。
+ | - 提供以PaddleX API为核心集成的跨平台GUI界面,降低深度学习全流程应用门槛。
.. toctree::
- :maxdepth: 1
- :caption: 目录:
+ :maxdepth: 2
+ :caption: 文档目录:
quick_start.md
install.md
- model_zoo.md
- slim/index
- apis/index
- datasets.md
- gpu_configure.md
tutorials/index.rst
- metrics.md
- deploy.md
- client_use.md
+ cv_solutions.md
+ apis/index.rst
+ paddlex_gui/index.rst
+ update.md
FAQ.md
+ appendix/index.rst
* PaddleX版本: v0.1.7
* 项目官网: http://www.paddlepaddle.org.cn/paddle/paddlex
diff --git a/docs/install.md b/docs/install.md
old mode 100644
new mode 100755
index 45630f0eea962acbafbd015ea2d9e855698c167d..cdbc84cab3dc825e69e325348b3c528d83bcd225
--- a/docs/install.md
+++ b/docs/install.md
@@ -1,14 +1,21 @@
-# 安装
+# 快速安装
以下安装过程默认用户已安装好**paddlepaddle-gpu或paddlepaddle(版本大于或等于1.7.1)**,paddlepaddle安装方式参照[飞桨官网](https://www.paddlepaddle.org.cn/install/quick)
-> 推荐使用Anaconda Python环境,Anaconda下安装PaddleX参考文档[Anaconda安装使用](./anaconda_install.md)
+> 推荐使用Anaconda Python环境,Anaconda下安装PaddleX参考文档[Anaconda安装使用](../appendix/anaconda_install.md)
-## Github代码安装
-github代码会跟随开发进度不断更新
+## pip安装
> 注意其中pycocotools在Windows安装较为特殊,可参考下面的Windows安装命令
+```
+pip install paddlex -i https://mirror.baidu.com/pypi/simple
+```
+
+
+## Github代码安装
+github代码会跟随开发进度不断更新
+
```
git clone https://github.com/PaddlePaddle/PaddleX.git
cd PaddleX
@@ -16,19 +23,16 @@ git checkout develop
python setup.py install
```
-## pip安装
-```
-pip install paddlex -i https://mirror.baidu.com/pypi/simple
-```
## 安装问题
### 1. pycocotools安装问题
> PaddleX依赖pycocotools包,如安装pycocotools失败,可参照如下方式安装pycocotools
**Windows**
+> Windows安装时可能会提示缺少`Microsoft Visual C++ 2015 build tools`,[点击下载](https://go.microsoft.com/fwlink/?LinkId=691126)安装再执行如下pip命令
```
pip install cython
-pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI
+pip install git+https://gitee.com/jiangjiajun/philferriere-cocoapi.git#subdirectory=PythonAPI
```
**Linux/Mac安装**
diff --git a/docs/make.bat b/docs/make.bat
old mode 100644
new mode 100755
diff --git a/docs/model_zoo.md b/docs/model_zoo.md
deleted file mode 100644
index 4460f7eca360cf6402b3c0c9453dc1a3b4fa9043..0000000000000000000000000000000000000000
--- a/docs/model_zoo.md
+++ /dev/null
@@ -1,72 +0,0 @@
-# 模型库
-本文档梳理了PaddleX v0.1.0支持的模型,同时也提供了在各个数据集上的预训练模型和对应验证集上的指标。用户也可自行下载对应的代码,在安装PaddleX后,即可使用相应代码训练模型。
-
-表中相关模型也可下载好作为相应模型的预训练模型,通过`pretrain_weights`指定目录加载使用。
-
-## 图像分类模型
-> 表中模型相关指标均为在ImageNet数据集上使用PaddlePaddle Python预测接口测试得到(测试GPU型号为Nvidia Tesla P40),预测速度为每张图片预测用时(不包括预处理和后处理),表中符号`-`表示相关指标暂未测试。
-
-
-| 模型 | 模型大小 | 预测速度(毫秒) | Top1准确率(%) | Top5准确率(%) |
-| :----| :------- | :----------- | :--------- | :--------- |
-| ResNet18| 46.9MB | 1.3568 | 71.0 | 89.9 |
-| ResNet34| 87.5MB | 2.23092 | 74.6 | 92.1 |
-| ResNet50| 102.7MB | 2.63824 | 76.5 | 93.0 |
-| ResNet101 |179.1MB | 5.04037 | 77.6 | 93.6 |
-| ResNet50_vd |102.8MB | 2.65164 | 79.1 | 94.4 |
-| ResNet101_vd| 179.2MB | 5.05972 | 80.2 | 95.0 |
-| ResNet50_vd_ssld |102.8MB | 2.65164 | 82.4 | 96.1 |
-| ResNet101_vd_ssld| 179.2MB | 5.05972 | 83.7 | 96.7 |
-| DarkNet53|166.9MB | 3.18101 | 78.0 | 94.1 |
-| MobileNetV1 | 16.0MB | 0.71942 | 71.0 | 89.7 |
-| MobileNetV2 | 14.0MB | 2.78603 | 72.2 | 90.7 |
-| MobileNetV3_large| 21.0MB | 2.20149 | 75.3 | 93.2 |
-| MobileNetV3_small | 12.0MB | 1.73933 | 68.2 | 88.1 |
-| MobileNetV3_large_ssld| 21.0MB | 2.20149 | 79.0 | 94.5 |
-| MobileNetV3_small_ssld | 12.0MB | 1.73933 | 71.3 | 90.1 |
-| Xception41 |92.4MB | 2.85934 | 79.6 | 94.4 |
-| Xception65 | 144.6MB | 4.06803 | 80.3 | 94.5 |
-| DenseNet121 | 32.8MB | 4.16436 | 75.7 | 92.6 |
-| DenseNet161|116.3MB | 9.27249 | 78.6 | 94.1 |
-| DenseNet201| 84.6MB | 7.9617 | 77.6 | 93.7 |
-| ShuffleNetV2 | 9.0MB | 1.95064 | 68.8 | 88.5 |
-
-## 目标检测模型
-
-> 表中模型相关指标均为在MSCOCO数据集上使用PaddlePaddle Python预测接口测试得到(测试GPU型号为Nvidia Tesla V100测试得到,表中符号`-`表示相关指标暂未测试。
-
-| 模型 | 模型大小 | 预测时间(毫秒) | BoxAP(%) |
-|:-------|:-----------|:-------------|:----------|
-|FasterRCNN-ResNet50|135.6MB| 78.450 | 35.2 |
-|FasterRCNN-ResNet50_vd| 135.7MB | 79.523 | 36.4 |
-|FasterRCNN-ResNet101| 211.7MB | 107.342 | 38.3 |
-|FasterRCNN-ResNet50-FPN| 167.2MB | 44.897 | 37.2 |
-|FasterRCNN-ResNet50_vd-FPN|168.7MB | 45.773 | 38.9 |
-|FasterRCNN-ResNet101-FPN| 251.7MB | 55.782 | 38.7 |
-|FasterRCNN-ResNet101_vd-FPN |252MB | 58.785 | 40.5 |
-|YOLOv3-DarkNet53|252.4MB | 21.944 | 38.9 |
-|YOLOv3-MobileNetv1 |101.2MB | 12.771 | 29.3 |
-|YOLOv3-MobileNetv3|94.6MB | - | 31.6 |
-| YOLOv3-ResNet34|169.7MB | 15.784 | 36.2 |
-
-## 实例分割模型
-
-> 表中模型相关指标均为在MSCOCO数据集上测试得到。
-
-| 模型 |模型大小 | 预测时间(毫秒) | BoxAP | SegAP(%) |
-|:---------|:---------|:----------|:---------|:--------|
-|MaskRCNN-ResNet50|51.2MB| 86.096 | 36.5 |32.2|
-|MaskRCNN-ResNet50-FPN|184.6MB | 65.859 | 37.9 |34.2|
-|MaskRCNN-ResNet50_vd-FPN |185.5MB | 63.191 | 39.8 |35.4|
-|MaskRCNN-ResNet101-FPN|268.6MB | 77.024 | 39.5 |35.2|
-|MaskRCNN-ResNet101vd-FPN |268.6MB | 76.307 | 41.4 |36.8|
-
-## 语义分割模型
-
-> 表中符号`-`表示相关指标暂未测试。
-
-| 模型| 模型大小 | 预测速度 | mIOU |
-|:--------|:----------|:----------|:----------|
-| UNet|53.7M | - |-|
-| DeepLabv3+/Xception65| 165.1M |- | 0.7930 |
-| DeepLabv3+/MobileNetV2 | 7.4M | - | 0.6981 |
diff --git a/docs/paddlex_gui/download.md b/docs/paddlex_gui/download.md
new file mode 100644
index 0000000000000000000000000000000000000000..102326977c57ba65c614abca52f65d8a63c80259
--- /dev/null
+++ b/docs/paddlex_gui/download.md
@@ -0,0 +1 @@
+# PaddleX GUI下载安装
diff --git a/docs/paddlex_gui/how_to_use.md b/docs/paddlex_gui/how_to_use.md
new file mode 100644
index 0000000000000000000000000000000000000000..1e9a3eeb69d276596636e814f48fad4fe9f3e9d0
--- /dev/null
+++ b/docs/paddlex_gui/how_to_use.md
@@ -0,0 +1 @@
+# PaddleX GUI如何训练模型
diff --git a/docs/paddlex_gui/index.rst b/docs/paddlex_gui/index.rst
new file mode 100755
index 0000000000000000000000000000000000000000..be17573f2540032b954a4b1b7a96fed5729e32a0
--- /dev/null
+++ b/docs/paddlex_gui/index.rst
@@ -0,0 +1,29 @@
+PaddleX GUI使用文档
+=======================================
+
+PaddleX GUI是基于PaddleX开发实现的可视化模型训练套件,可以让开发者免去代码开发的步骤,通过点选式地操作就可以快速完成模型的训练开发。PaddleXGUI具有 **数据集可视化分析** 、**模型参数自动推荐** 、**跨平台使用** 三大特点。
+
+数据集可视化分析
+ | PaddleX支持导入常见的图像分类、目标检测、实例分割和语义分割数据集,并对数据集的样本分布,标注结果进行可视化展示,数据集的情况一目了然!
+
+模型参数自动推荐
+ | 根据用户的电脑配置和数据集情况,自动推荐模型训练参数,免去用户查看文档,被各种参数所烦的忧心事!
+
+跨平台使用
+ | PaddleX GUI完全跨平台,支持Linux、Windows和Mac三大主流系统!
+
+
+.. toctree::
+ :maxdepth: 2
+ :caption: 文档目录:
+
+ download.md
+ how_to_use.md
+ xx.md
+
+* PaddleX版本: v0.1.7
+* 项目官网: http://www.paddlepaddle.org.cn/paddle/paddlex
+* 项目GitHub: https://github.com/PaddlePaddle/PaddleX/tree/develop
+* 官方QQ用户群: 1045148026
+* GitHub Issue反馈: http://www.github.com/PaddlePaddle/PaddleX/issues
+
diff --git a/docs/paddlex_gui/xx.md b/docs/paddlex_gui/xx.md
new file mode 100644
index 0000000000000000000000000000000000000000..97fd16977da33ba4f122f5c556527fdead2109e5
--- /dev/null
+++ b/docs/paddlex_gui/xx.md
@@ -0,0 +1 @@
+# 其它
diff --git a/docs/quick_start.md b/docs/quick_start.md
old mode 100644
new mode 100755
index 38a67e12750c636d09bdc0c1263ece049214b17d..6810046632da7e89f02e8608c142293295de4888
--- a/docs/quick_start.md
+++ b/docs/quick_start.md
@@ -2,22 +2,31 @@
本文档在一个小数据集上展示了如何通过PaddleX进行训练,您可以阅读PaddleX的**使用教程**来了解更多模型任务的训练使用方式。本示例同步在AIStudio上,可直接[在线体验模型训练](https://aistudio.baidu.com/aistudio/projectdetail/439860)
-## 1. 准备蔬菜分类数据集
+
+## 1. 安装PaddleX
+> 安装相关过程和问题可以参考PaddleX的[安装文档](./install.md)。
```
-wget https://bj.bcebos.com/paddlex/datasets/vegetables_cls.tar.gz
-tar xzvf vegetables_cls.tar.gz
+pip install paddlex -i https://mirror.baidu.com/pypi/simple
```
-## 2. 训练代码开发
-通过如下`train.py`代码进行训练
-> 设置使用0号GPU卡
+## 2. 准备蔬菜分类数据集
```
-import os
-os.environ['CUDA_VISIBLE_DEVICES'] = '0'
-import paddlex as pdx
+wget https://bj.bcebos.com/paddlex/datasets/vegetables_cls.tar.gz
+tar xzvf vegetables_cls.tar.gz
```
-> 定义训练和验证时的数据处理流程, 在`train_transforms`中加入了`RandomCrop`和`RandomHorizontalFlip`两种数据增强方式
+## 3. 训练代码开发
+PaddleX的所有模型训练和预测均只涉及到5个API接口,分别是
+> - [transforms](apis/transforms/index) 图像数据处理
+> - [datasets](apis/datasets.md) 数据集加载
+> - [models](apis/models.md) 模型类型定义
+> - [train](apis/models.md) 开始训练
+> - [predict](apis/models.md) 模型预测
+
+在本示例,通过如下`train.py`代码进行训练, 训练环境为1张Tesla P40 GPU卡。
+
+### 3.1 定义`transforms`数据处理流程
+由于训练时数据增强操作的加入,因此模型在训练和验证过程中,数据处理流程需要分别进行定义。如下所示,代码在`train_transforms`中加入了[RandomCrop](apis/transforms/cls_transforms.html#RandomCrop)和[RandomHorizontalFlip](apis/transforms/cls_transforms.html#RandomHorizontalFlip)两种数据增强方式
```
from paddlex.cls import transforms
train_transforms = transforms.Compose([
diff --git a/docs/requirements.txt b/docs/requirements.txt
old mode 100644
new mode 100755
diff --git a/docs/tutorials/README.md b/docs/tutorials/README.md
old mode 100644
new mode 100755
diff --git a/docs/tutorials/compress/classification.md b/docs/tutorials/compress/classification.md
old mode 100644
new mode 100755
diff --git a/docs/tutorials/compress/detection.md b/docs/tutorials/compress/detection.md
old mode 100644
new mode 100755
diff --git a/docs/tutorials/compress/index.rst b/docs/tutorials/compress/index.rst
old mode 100644
new mode 100755
diff --git a/docs/tutorials/compress/segmentation.md b/docs/tutorials/compress/segmentation.md
old mode 100644
new mode 100755
diff --git a/docs/slim/index.rst b/docs/tutorials/compress/slim/index.rst
old mode 100644
new mode 100755
similarity index 100%
rename from docs/slim/index.rst
rename to docs/tutorials/compress/slim/index.rst
diff --git a/docs/slim/prune.md b/docs/tutorials/compress/slim/prune.md
old mode 100644
new mode 100755
similarity index 100%
rename from docs/slim/prune.md
rename to docs/tutorials/compress/slim/prune.md
diff --git a/docs/slim/quant.md b/docs/tutorials/compress/slim/quant.md
old mode 100644
new mode 100755
similarity index 100%
rename from docs/slim/quant.md
rename to docs/tutorials/compress/slim/quant.md
diff --git a/docs/tutorials/dataset_prepare.md b/docs/tutorials/dataset_prepare.md
new file mode 100644
index 0000000000000000000000000000000000000000..87f368bc29d80aff12b9f6597a1d3901b427c4d7
--- /dev/null
+++ b/docs/tutorials/dataset_prepare.md
@@ -0,0 +1,7 @@
+# 数据准备
+
+## 数据标注
+
+## 主流标注软件支持
+
+## EasyData数据标注支持
diff --git a/docs/datasets.md b/docs/tutorials/datasets.md
old mode 100644
new mode 100755
similarity index 100%
rename from docs/datasets.md
rename to docs/tutorials/datasets.md
diff --git a/docs/deploy/deploy.md b/docs/tutorials/deploy/deploy.md
old mode 100644
new mode 100755
similarity index 100%
rename from docs/deploy/deploy.md
rename to docs/tutorials/deploy/deploy.md
diff --git a/docs/deploy/deploy_cpp_linux.md b/docs/tutorials/deploy/deploy_cpp_linux.md
old mode 100644
new mode 100755
similarity index 100%
rename from docs/deploy/deploy_cpp_linux.md
rename to docs/tutorials/deploy/deploy_cpp_linux.md
diff --git a/docs/deploy/deploy_cpp_win_vs2019.md b/docs/tutorials/deploy/deploy_cpp_win_vs2019.md
old mode 100644
new mode 100755
similarity index 100%
rename from docs/deploy/deploy_cpp_win_vs2019.md
rename to docs/tutorials/deploy/deploy_cpp_win_vs2019.md
diff --git a/docs/deploy/images/vs2019_step1.png b/docs/tutorials/deploy/images/vs2019_step1.png
old mode 100644
new mode 100755
similarity index 100%
rename from docs/deploy/images/vs2019_step1.png
rename to docs/tutorials/deploy/images/vs2019_step1.png
diff --git a/docs/deploy/images/vs2019_step2.png b/docs/tutorials/deploy/images/vs2019_step2.png
old mode 100644
new mode 100755
similarity index 100%
rename from docs/deploy/images/vs2019_step2.png
rename to docs/tutorials/deploy/images/vs2019_step2.png
diff --git a/docs/deploy/images/vs2019_step3.png b/docs/tutorials/deploy/images/vs2019_step3.png
old mode 100644
new mode 100755
similarity index 100%
rename from docs/deploy/images/vs2019_step3.png
rename to docs/tutorials/deploy/images/vs2019_step3.png
diff --git a/docs/deploy/images/vs2019_step4.png b/docs/tutorials/deploy/images/vs2019_step4.png
old mode 100644
new mode 100755
similarity index 100%
rename from docs/deploy/images/vs2019_step4.png
rename to docs/tutorials/deploy/images/vs2019_step4.png
diff --git a/docs/deploy/images/vs2019_step5.png b/docs/tutorials/deploy/images/vs2019_step5.png
old mode 100644
new mode 100755
similarity index 100%
rename from docs/deploy/images/vs2019_step5.png
rename to docs/tutorials/deploy/images/vs2019_step5.png
diff --git a/docs/deploy/images/vs2019_step6.png b/docs/tutorials/deploy/images/vs2019_step6.png
old mode 100644
new mode 100755
similarity index 100%
rename from docs/deploy/images/vs2019_step6.png
rename to docs/tutorials/deploy/images/vs2019_step6.png
diff --git a/docs/tutorials/deploy/index.rst b/docs/tutorials/deploy/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..022d15ab9ea0ee2963cd9b2cd2a8e2cc6c00c06b
--- /dev/null
+++ b/docs/tutorials/deploy/index.rst
@@ -0,0 +1,2 @@
+多端部署
+==============
diff --git a/docs/tutorials/index.rst b/docs/tutorials/index.rst
old mode 100644
new mode 100755
index 47eaf6abc6df7080a0d2dcba9681bcb247a35d19..b05bfae7f517a9ec64d82a590dc2bb5ff2404dfb
--- a/docs/tutorials/index.rst
+++ b/docs/tutorials/index.rst
@@ -1,8 +1,10 @@
-使用教程
+PaddleX全流程开发教程
=========================
.. toctree::
:maxdepth: 1
+ dataset_prepare.md
train/index.rst
compress/index.rst
+ deploy/index.rst
diff --git a/docs/tutorials/train/classification.md b/docs/tutorials/train/classification.md
old mode 100644
new mode 100755
diff --git a/docs/tutorials/train/detection.md b/docs/tutorials/train/detection.md
old mode 100644
new mode 100755
diff --git a/docs/tutorials/train/index.rst b/docs/tutorials/train/index.rst
old mode 100644
new mode 100755
diff --git a/docs/tutorials/train/instance_segmentation.md b/docs/tutorials/train/instance_segmentation.md
old mode 100644
new mode 100755
diff --git a/docs/tutorials/train/segmentation.md b/docs/tutorials/train/segmentation.md
old mode 100644
new mode 100755
diff --git a/docs/tutorials/train/visualdl.md b/docs/tutorials/train/visualdl.md
old mode 100644
new mode 100755
diff --git a/docs/update.md b/docs/update.md
new file mode 100644
index 0000000000000000000000000000000000000000..881cf72e4ad6bcd1e76360a04a7519fce1069d5e
--- /dev/null
+++ b/docs/update.md
@@ -0,0 +1,9 @@
+# 更新日志
+
+- 2020.05.17
+> - 发布v0.1.8 pip更新
+> - 修复部分代码Bug
+> - 新增EasyData平台数据标注格式支持
+> - 支持imgaug数据增强库的pixel-level算子
+
+
diff --git a/docs/xx b/docs/xx
new file mode 100644
index 0000000000000000000000000000000000000000..c4db2de92166858e0130e90c6333f8f636a99526
--- /dev/null
+++ b/docs/xx
@@ -0,0 +1,99 @@
+.
+./._tutorials
+./._README.md
+./._FAQ.md
+./apis/._visualize.md
+./apis/._deploy.md
+./apis/._images
+./apis/._models.md
+./apis/transforms/._cls_transforms.md
+./apis/transforms/._seg_transforms.md
+./apis/transforms/._det_transforms.md
+./apis/transforms/._index.rst
+./apis/._datasets.md
+./apis/images/._insect_bbox_pr_curve(iou-0.5).png
+./apis/._transforms
+./apis/._load_model.md
+./apis/._slim.md
+./apis/._index.rst
+./._images
+./._conf.py
+./._cv_solutions.md
+./._make.bat
+./images/._voc_eval.png
+./images/._08_deploy.png
+./images/._paddlex.png
+./images/._vdl2.jpg
+./images/._05_train.png
+./images/._faster_eval.png
+./images/._object_detection.png
+./images/._visualized_deeplab.jpg
+./images/._02_newproject.png
+./images/._PaddleX-Pipe-Line.png
+./images/._visualized_fasterrcnn.jpg
+./images/._04_parameter.png
+./images/._cls_train.png
+./images/._instance_segmentation.png
+./images/._paddlex.jpg
+./images/._anaconda_windows.png
+./images/._00_loaddata.png
+./images/._mask_train.png
+./images/._seg_train.png
+./images/._yolo_train.png
+./images/._faster_train.png
+./images/._cls_eval.png
+./images/._mask_eval.png
+./images/._06_VisualDL.png
+./images/._seg_eval.png
+./images/._visualized_maskrcnn.jpeg
+./images/._QQGroup.jpeg
+./images/._garbage.bmp
+./images/._semantic_segmentation.png
+./images/._03_choosedata.png
+./images/._07_evaluate.png
+./images/._01_datasplit.png
+./images/._image_classification.png
+./images/._vdl1.jpg
+./images/._vdl3.jpg
+./._requirements.txt
+./._Makefile
+./._apis
+./appendix/._metrics.md
+./appendix/._how_to_offline_run.md
+./appendix/._index.rst
+./appendix/._gpu_configure.md
+./appendix/._anaconda_install.md
+./._install.md
+./._paddlex_gui.md
+./._index.rst
+./._quick_start.md
+./tutorials/._README.md
+./tutorials/deploy/._deploy.md
+./tutorials/deploy/._images
+./tutorials/deploy/._deploy_cpp_win_vs2019.md
+./tutorials/deploy/._deploy_cpp_linux.md
+./tutorials/deploy/images/._vs2019_step4.png
+./tutorials/deploy/images/._vs2019_step3.png
+./tutorials/deploy/images/._vs2019_step6.png
+./tutorials/deploy/images/._vs2019_step1.png
+./tutorials/deploy/images/._vs2019_step5.png
+./tutorials/deploy/images/._vs2019_step2.png
+./tutorials/._compress
+./tutorials/._datasets.md
+./tutorials/._train
+./tutorials/train/._detection.md
+./tutorials/train/._visualdl.md
+./tutorials/train/._instance_segmentation.md
+./tutorials/train/._classification.md
+./tutorials/train/._index.rst
+./tutorials/train/._segmentation.md
+./tutorials/compress/._slim
+./tutorials/compress/._detection.md
+./tutorials/compress/._classification.md
+./tutorials/compress/._index.rst
+./tutorials/compress/slim/._prune.md
+./tutorials/compress/slim/._quant.md
+./tutorials/compress/slim/._index.rst
+./tutorials/compress/._segmentation.md
+./tutorials/._index.rst
+./tutorials/._deploy