diff --git a/README.md b/README.md
index 0fb10073f04f7f050be3575ac3217cecd465cce5..56680f6bf6d278674aba9675c3dd1061afa0dfff 100644
--- a/README.md
+++ b/README.md
@@ -31,7 +31,7 @@ PaddleSeg支持多进程IO、多卡并行、跨卡Batch Norm同步等训练加
## 使用教程
-我们提供了一系列的使用教程,来说明如何使用PaddleSeg完成一个语义分割模型的训练、评估、部署。
+我们提供了一系列的使用教程,来说明如何使用PaddleSeg完成语义分割模型的训练、评估、部署。
这一系列的文档被分为**快速入门**、**基础功能**、**预测部署**、**高级功能**四个部分,四个教程由浅至深地介绍PaddleSeg的设计思路和使用方法。
@@ -86,6 +86,10 @@ A: 降低Batch size,使用Group Norm策略;请注意训练过程中当`DEFAU
+#### Q: 出现错误 ModuleNotFoundError: No module named 'paddle.fluid.contrib.mixed_precision'
+
+A: 请将PaddlePaddle升级至1.5.2版本或以上。
+
## 在线体验
PaddleSeg在AI Studio平台上提供了在线体验的教程,欢迎体验:
diff --git a/configs/deeplabv3p_mobilenet-1-0_pet.yaml b/configs/deeplabv3p_mobilenet-1-0_pet.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ae7ec59adc83ba87127847e295a0811d2964edb5
--- /dev/null
+++ b/configs/deeplabv3p_mobilenet-1-0_pet.yaml
@@ -0,0 +1,47 @@
+TRAIN_CROP_SIZE: (512, 512) # (width, height), for unpadding rangescaling and stepscaling
+EVAL_CROP_SIZE: (512, 512) # (width, height), for unpadding rangescaling and stepscaling
+AUG:
+ AUG_METHOD: "unpadding" # choice unpadding rangescaling and stepscaling
+ FIX_RESIZE_SIZE: (512, 512) # (width, height), for unpadding
+
+ INF_RESIZE_VALUE: 500 # for rangescaling
+ MAX_RESIZE_VALUE: 600 # for rangescaling
+ MIN_RESIZE_VALUE: 400 # for rangescaling
+
+ MAX_SCALE_FACTOR: 1.25 # for stepscaling
+ MIN_SCALE_FACTOR: 0.75 # for stepscaling
+ SCALE_STEP_SIZE: 0.25 # for stepscaling
+ MIRROR: True
+BATCH_SIZE: 4
+DATASET:
+ DATA_DIR: "./dataset/mini_pet/"
+ IMAGE_TYPE: "rgb" # choice rgb or rgba
+ NUM_CLASSES: 3
+ TEST_FILE_LIST: "./dataset/mini_pet/file_list/test_list.txt"
+ TRAIN_FILE_LIST: "./dataset/mini_pet/file_list/train_list.txt"
+ VAL_FILE_LIST: "./dataset/mini_pet/file_list/val_list.txt"
+ VIS_FILE_LIST: "./dataset/mini_pet/file_list/test_list.txt"
+ IGNORE_INDEX: 255
+ SEPARATOR: " "
+FREEZE:
+ MODEL_FILENAME: "__model__"
+ PARAMS_FILENAME: "__params__"
+MODEL:
+ MODEL_NAME: "deeplabv3p"
+ DEFAULT_NORM_TYPE: "bn"
+ DEEPLAB:
+ BACKBONE: "mobilenet"
+ DEPTH_MULTIPLIER: 1.0
+ ENCODER_WITH_ASPP: False
+ ENABLE_DECODER: False
+TRAIN:
+ PRETRAINED_MODEL_DIR: "./pretrained_model/deeplabv3p_mobilenetv2-1-0_bn_cityscapes/"
+ MODEL_SAVE_DIR: "./saved_model/deeplabv3p_mobilenetv2-1-0_bn_pet/"
+ SNAPSHOT_EPOCH: 10
+TEST:
+ TEST_MODEL: "./saved_model/deeplabv3p_mobilenetv2-1-0_bn_pet/final"
+SOLVER:
+ NUM_EPOCHS: 100
+ LR: 0.005
+ LR_POLICY: "poly"
+ OPTIMIZER: "sgd"
diff --git a/configs/deeplabv3p_xception65_pet.yaml b/configs/deeplabv3p_xception65_pet.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..1b574497ea882c86c7e5785e16de976e5b33a50f
--- /dev/null
+++ b/configs/deeplabv3p_xception65_pet.yaml
@@ -0,0 +1,44 @@
+TRAIN_CROP_SIZE: (512, 512) # (width, height), for unpadding rangescaling and stepscaling
+EVAL_CROP_SIZE: (512, 512) # (width, height), for unpadding rangescaling and stepscaling
+AUG:
+ AUG_METHOD: "unpadding" # choice unpadding rangescaling and stepscaling
+ FIX_RESIZE_SIZE: (512, 512) # (width, height), for unpadding
+
+ INF_RESIZE_VALUE: 500 # for rangescaling
+ MAX_RESIZE_VALUE: 600 # for rangescaling
+ MIN_RESIZE_VALUE: 400 # for rangescaling
+
+ MAX_SCALE_FACTOR: 1.25 # for stepscaling
+ MIN_SCALE_FACTOR: 0.75 # for stepscaling
+ SCALE_STEP_SIZE: 0.25 # for stepscaling
+ MIRROR: True
+BATCH_SIZE: 4
+DATASET:
+ DATA_DIR: "./dataset/mini_pet/"
+ IMAGE_TYPE: "rgb" # choice rgb or rgba
+ NUM_CLASSES: 3
+ TEST_FILE_LIST: "./dataset/mini_pet/file_list/test_list.txt"
+ TRAIN_FILE_LIST: "./dataset/mini_pet/file_list/train_list.txt"
+ VAL_FILE_LIST: "./dataset/mini_pet/file_list/val_list.txt"
+ VIS_FILE_LIST: "./dataset/mini_pet/file_list/test_list.txt"
+ IGNORE_INDEX: 255
+ SEPARATOR: " "
+FREEZE:
+ MODEL_FILENAME: "__model__"
+ PARAMS_FILENAME: "__params__"
+MODEL:
+ MODEL_NAME: "deeplabv3p"
+ DEFAULT_NORM_TYPE: "bn"
+ DEEPLAB:
+ BACKBONE: "xception_65"
+TRAIN:
+ PRETRAINED_MODEL_DIR: "./pretrained_model/deeplabv3p_xception65_bn_coco/"
+ MODEL_SAVE_DIR: "./saved_model/deeplabv3p_xception65_bn_pet/"
+ SNAPSHOT_EPOCH: 10
+TEST:
+ TEST_MODEL: "./saved_model/deeplabv3p_xception65_bn_pet/final"
+SOLVER:
+ NUM_EPOCHS: 100
+ LR: 0.005
+ LR_POLICY: "poly"
+ OPTIMIZER: "sgd"
diff --git a/configs/icnet_pet.yaml b/configs/icnet_pet.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..0398d131ca12aea7902ec7be6542650377201c25
--- /dev/null
+++ b/configs/icnet_pet.yaml
@@ -0,0 +1,45 @@
+TRAIN_CROP_SIZE: (512, 512) # (width, height), for unpadding rangescaling and stepscaling
+EVAL_CROP_SIZE: (512, 512) # (width, height), for unpadding rangescaling and stepscaling
+AUG:
+ AUG_METHOD: "unpadding" # choice unpadding rangescaling and stepscaling
+ FIX_RESIZE_SIZE: (512, 512) # (width, height), for unpadding
+
+ INF_RESIZE_VALUE: 500 # for rangescaling
+ MAX_RESIZE_VALUE: 600 # for rangescaling
+ MIN_RESIZE_VALUE: 400 # for rangescaling
+
+ MAX_SCALE_FACTOR: 1.25 # for stepscaling
+ MIN_SCALE_FACTOR: 0.75 # for stepscaling
+ SCALE_STEP_SIZE: 0.25 # for stepscaling
+ MIRROR: True
+BATCH_SIZE: 4
+DATASET:
+ DATA_DIR: "./dataset/mini_pet/"
+ IMAGE_TYPE: "rgb" # choice rgb or rgba
+ NUM_CLASSES: 3
+ TEST_FILE_LIST: "./dataset/mini_pet/file_list/test_list.txt"
+ TRAIN_FILE_LIST: "./dataset/mini_pet/file_list/train_list.txt"
+ VAL_FILE_LIST: "./dataset/mini_pet/file_list/val_list.txt"
+ VIS_FILE_LIST: "./dataset/mini_pet/file_list/test_list.txt"
+ IGNORE_INDEX: 255
+ SEPARATOR: " "
+FREEZE:
+ MODEL_FILENAME: "__model__"
+ PARAMS_FILENAME: "__params__"
+MODEL:
+ MODEL_NAME: "icnet"
+ DEFAULT_NORM_TYPE: "bn"
+ MULTI_LOSS_WEIGHT: "[1.0, 0.4, 0.16]"
+ ICNET:
+ DEPTH_MULTIPLIER: 0.5
+TRAIN:
+ PRETRAINED_MODEL_DIR: "./pretrained_model/icnet_bn_cityscapes/"
+ MODEL_SAVE_DIR: "./saved_model/icnet_pet/"
+ SNAPSHOT_EPOCH: 10
+TEST:
+ TEST_MODEL: "./saved_model/icnet_pet/final"
+SOLVER:
+ NUM_EPOCHS: 100
+ LR: 0.005
+ LR_POLICY: "poly"
+ OPTIMIZER: "sgd"
diff --git a/docs/check.md b/docs/check.md
index 6b54af00d3aa2ecfb3c7eed6aea44bd725c06205..c47618b67cbfb2de2bb90758cdd566aaea956310 100644
--- a/docs/check.md
+++ b/docs/check.md
@@ -51,7 +51,5 @@ python pdseg/check.py --cfg ${YAML_FILE_PATH}
- 当`AUG.AUG_METHOD`为rangscaling时,`EVAL_CROP_SIZE`的宽高应不小于缩放后图像中最大的宽高。
-我们将计算并给出`EVAL_CROP_SIZE`的建议值。
-
### 10 数据增强参数`AUG.INF_RESIZE_VALUE`校验
验证`AUG.INF_RESIZE_VALUE`是否在[`AUG.MIN_RESIZE_VALUE`~`AUG.MAX_RESIZE_VALUE`]范围内。若在范围内,则通过校验。
diff --git a/docs/model_zoo.md b/docs/model_zoo.md
index 484c7cfa9c15b9f8f6c9a0e019293193b38c183f..a75edd134b651719006fd14a0aa1d292627cc382 100644
--- a/docs/model_zoo.md
+++ b/docs/model_zoo.md
@@ -28,7 +28,7 @@ PaddleSeg对所有内置的分割模型都提供了公开数据集下的预训
| 模型 | 数据集合 | 下载地址 |Output Strid|multi-scale test| mIoU |
|---|---|---|---|---|---|
-| DeepLabv3+/MobileNetv2/bn | COCO |[deeplabv3plus_coco_bn_init.tgz](https://bj.bcebos.com/v1/paddleseg/deeplabv3plus_coco_bn_init.tgz) | 16 | --| -- |
+| DeepLabv3+/MobileNetv2/bn | COCO |[deeplab_mobilenet_x1_0_coco.tgz](https://bj.bcebos.com/v1/paddleseg/deeplab_mobilenet_x1_0_coco.tgz) | 16 | --| -- |
| DeeplabV3+/Xception65/bn | COCO | [xception65_coco.tgz](https://paddleseg.bj.bcebos.com/models/xception65_coco.tgz)| 16 | -- | -- |
| U-Net/bn | COCO | [unet_coco.tgz](https://paddleseg.bj.bcebos.com/models/unet_coco_v3.tgz) | 16 | -- | -- |
@@ -39,6 +39,6 @@ train数据集合为Cityscapes训练集合,测试为Cityscapes的验证集合
| 模型 | 数据集合 | 下载地址 |Output Stride| mutli-scale test| mIoU on val|
|---|---|---|---|---|---|
| DeepLabv3+/MobileNetv2/bn | Cityscapes |[mobilenet_cityscapes.tgz](https://paddleseg.bj.bcebos.com/models/mobilenet_cityscapes.tgz) |16|false| 0.698|
-| DeepLabv3+/Xception65/gn | Cityscapes |[deeplabv3p_xception65_cityscapes.tgz](https://paddleseg.bj.bcebos.com/models/deeplabv3p_xception65_cityscapes.tgz) |16|false| 0.7824 |
-| DeepLabv3+/Xception65/bn | Cityscapes |[Xception65_deeplab_cityscapes.tgz](https://paddleseg.bj.bcebos.com/models/xception65_bn_cityscapes.tgz) | 16 | false | 0.7930 |
+| DeepLabv3+/Xception65/gn | Cityscapes |[deeplabv3p_xception65_gn_cityscapes.tgz](https://paddleseg.bj.bcebos.com/models/deeplabv3p_xception65_cityscapes.tgz) |16|false| 0.7824 |
+| DeepLabv3+/Xception65/bn | Cityscapes |[deeplabv3p_xception65_bn_cityscapes_.tgz](https://paddleseg.bj.bcebos.com/models/xception65_bn_cityscapes.tgz) | 16 | false | 0.7930 |
| ICNet/bn | Cityscapes |[icnet_cityscapes.tgz](https://paddleseg.bj.bcebos.com/models/icnet6831.tar.gz) |16|false| 0.6831 |
diff --git a/pdseg/check.py b/pdseg/check.py
index 34372e2511c43a252304f8b22170fc4246ab6696..f1b70a6ae545d93990b860d4eb0f4c9ac1330866 100644
--- a/pdseg/check.py
+++ b/pdseg/check.py
@@ -266,7 +266,11 @@ def eval_crop_size_check(max_height, max_width, min_aspectratio, max_aspectratio
.format(cfg.EVAL_CROP_SIZE[0], cfg.EVAL_CROP_SIZE[1],
max_width_rangscaling, cfg.AUG.INF_RESIZE_VALUE))
elif cfg.AUG.AUG_METHOD == "unpadding":
- if cfg.EVAL_CROP_SIZE[0] >= cfg.AUG.FIX_RESIZE_SIZE[0] and cfg.EVAL_CROP_SIZE[1] >= cfg.AUG.FIX_RESIZE_SIZE[1]:
+ if len(cfg.AUG.FIX_RESIZE_SIZE) != 2:
+ logger.info(error_print("EVAL_CROP_SIZE check"))
+ logger.info("you set AUG.AUG_METHOD = 'unpadding', but AUG.FIX_RESIZE_SIZE is wrong. "
+ "AUG.FIX_RESIZE_SIZE should be a tuple of length 2")
+ elif cfg.EVAL_CROP_SIZE[0] >= cfg.AUG.FIX_RESIZE_SIZE[0] and cfg.EVAL_CROP_SIZE[1] >= cfg.AUG.FIX_RESIZE_SIZE[1]:
logger.info(correct_print("EVAL_CROP_SIZE check"))
else:
logger.info(error_print("EVAL_CROP_SIZE check"))
diff --git a/pdseg/loss.py b/pdseg/loss.py
index b2f7d4c924648b54f602095a68ddcd0609e229b0..fbd301ff0c47e7c8095ffa4dba5c19feb9060640 100644
--- a/pdseg/loss.py
+++ b/pdseg/loss.py
@@ -78,4 +78,6 @@ def dice_loss(logit, label, ignore_mask=None, num_classes=2):
label = fluid.layers.cast(label, 'int64')
ignore_mask = fluid.layers.reshape(ignore_mask, [-1, 1])
loss = fluid.layers.dice_loss(logit, label)
+ label.stop_gradient = True
+ ignore_mask.stop_gradient = True
return loss
diff --git a/turtorial/finetune_deeplabv3plus.md b/turtorial/finetune_deeplabv3plus.md
index 7bc3918d36d73d3a4368135f08b89417ec55b570..abc05f52f73b5d32538fdbd4aecc79c9b5a64da4 100644
--- a/turtorial/finetune_deeplabv3plus.md
+++ b/turtorial/finetune_deeplabv3plus.md
@@ -113,7 +113,7 @@ python pdseg/eval.py --use_gpu --cfg ./configs/test_deeplabv3p_pet.yaml
## 模型组合
-|预训练模型名称|BackBone|Norm|数据集|配置|
+|预训练模型名称|BackBone|Norm Type|数据集|配置|
|-|-|-|-|-|
|mobilenetv2-2-0_bn_imagenet|-|bn|ImageNet|MODEL.MODEL_NAME: deeplabv3p
MODEL.DEEPLAB.BACKBONE: mobilenet
MODEL.DEEPLAB.DEPTH_MULTIPLIER: 2.0
MODEL.DEFAULT_NORM_TYPE: bn|
|mobilenetv2-1-5_bn_imagenet|-|bn|ImageNet|MODEL.MODEL_NAME: deeplabv3p
MODEL.DEEPLAB.BACKBONE: mobilenet
MODEL.DEEPLAB.DEPTH_MULTIPLIER: 1.5
MODEL.DEFAULT_NORM_TYPE: bn|