Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleSeg
提交
0a60a9ac
P
PaddleSeg
项目概览
PaddlePaddle
/
PaddleSeg
通知
285
Star
8
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
53
列表
看板
标记
里程碑
合并请求
3
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleSeg
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
53
Issue
53
列表
看板
标记
里程碑
合并请求
3
合并请求
3
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
0a60a9ac
编写于
9月 12, 2019
作者:
P
pennypm
提交者:
wuzewu
9月 12, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add pspnet turtorial (#24)
* add pspnet turtorial * add model
上级
245ce02e
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
133 addition
and
5 deletion
+133
-5
README.md
README.md
+1
-0
configs/pspnet.yaml
configs/pspnet.yaml
+6
-3
docs/model_zoo.md
docs/model_zoo.md
+1
-0
pdseg/utils/config.py
pdseg/utils/config.py
+1
-1
pretrained_model/download_model.py
pretrained_model/download_model.py
+3
-1
turtorial/finetune_pspnet.md
turtorial/finetune_pspnet.md
+121
-0
未找到文件。
README.md
浏览文件 @
0a60a9ac
...
...
@@ -49,6 +49,7 @@ PaddleSeg支持多进程IO、多卡并行、跨卡Batch Norm同步等训练加
*
[
如何训练DeepLabv3+
](
./turtorial/finetune_deeplabv3plus.md
)
*
[
如何训练U-Net
](
./turtorial/finetune_unet.md
)
*
[
如何训练ICNet
](
./turtorial/finetune_icnet.md
)
*
[
如何训练PSPNet
](
./turtorial/finetune_pspnet.md
)
### 预测部署
...
...
configs/pspnet.yaml
浏览文件 @
0a60a9ac
...
...
@@ -25,11 +25,14 @@ FREEZE:
MODEL
:
MODEL_NAME
:
"
pspnet"
DEFAULT_NORM_TYPE
:
"
bn"
PSPNET
:
DEPTH_MULTIPLIER
:
1
LAYERS
:
50
TEST
:
TEST_MODEL
:
"
pretrained_model/pspnet50_ADE20K/
"
TEST_MODEL
:
"
snapshots/cityscapes_pspnet50/final
"
TRAIN
:
MODEL_SAVE_DIR
:
"
snapshots/cityscape_pspnet50/"
PRETRAINED_MODEL_DIR
:
u"pretrained_model/pspnet50_
ADE20K
/"
MODEL_SAVE_DIR
:
"
snapshots/cityscape
s
_pspnet50/"
PRETRAINED_MODEL_DIR
:
u"pretrained_model/pspnet50_
bn_cityscapes
/"
SNAPSHOT_EPOCH
:
10
SOLVER
:
LR
:
0.001
...
...
docs/model_zoo.md
浏览文件 @
0a60a9ac
...
...
@@ -42,3 +42,4 @@ train数据集合为Cityscapes训练集合,测试为Cityscapes的验证集合
| DeepLabv3+/Xception65/gn | Cityscapes |
[
deeplabv3p_xception65_cityscapes.tgz
](
https://paddleseg.bj.bcebos.com/models/deeplabv3p_xception65_cityscapes.tgz
)
|16|false| 0.7804 |
| DeepLabv3+/Xception65/bn | Cityscapes |
[
Xception65_deeplab_cityscapes.tgz
](
https://paddleseg.bj.bcebos.com/models/xception65_bn_cityscapes.tgz
)
| 16 | false | 0.7715 |
| ICNet/bn | Cityscapes |
[
icnet_cityscapes.tgz
](
https://paddleseg.bj.bcebos.com/models/icnet6831.tar.gz
)
|16|false| 0.6831 |
| PSPNet/bn | Cityscapes |
[
pspnet50_cityscapes.tgz
](
https://paddleseg.bj.bcebos.com/models/pspnet50_cityscapes.tgz
)
|16|false| 0.6968 |
pdseg/utils/config.py
浏览文件 @
0a60a9ac
...
...
@@ -201,7 +201,7 @@ cfg.MODEL.ICNET.LAYERS = 50
########################## PSPNET模型配置 ######################################
# RESNET backbone scale 设置
cfg
.
MODEL
.
PSPNET
.
DEPTH_MULTIPLIER
=
1
# RESNET
层数 设置 50或101
# RESNET
backbone 层数 设置
cfg
.
MODEL
.
PSPNET
.
LAYERS
=
50
########################## 预测部署模型配置 ###################################
...
...
pretrained_model/download_model.py
浏览文件 @
0a60a9ac
...
...
@@ -56,7 +56,9 @@ model_urls = {
"unet_bn_coco"
:
"https://paddleseg.bj.bcebos.com/models/unet_coco_v3.tgz"
,
"icnet_bn_cityscapes"
:
"https://paddleseg.bj.bcebos.com/models/icnet_cityscapes.tar.gz"
"https://paddleseg.bj.bcebos.com/models/icnet_cityscapes.tar.gz"
,
"pspnet50_bn_cityscapes"
:
"https://paddleseg.bj.bcebos.com/models/pspnet50_cityscapes.tgz"
}
if
__name__
==
"__main__"
:
...
...
turtorial/finetune_pspnet.md
0 → 100644
浏览文件 @
0a60a9ac
# PSPNET模型训练教程
*
本教程旨在介绍如何通过使用PaddleSeg提供的
***`PSPNET`**
*
预训练模型在自定义数据集上进行训练
*
在阅读本教程前,请确保您已经了解过PaddleSeg的
[
快速入门
](
../README.md#快速入门
)
和
[
基础功能
](
../README.md#基础功能
)
等章节,以便对PaddleSeg有一定的了解
*
本教程的所有命令都基于PaddleSeg主目录进行执行
## 一. 准备待训练数据
我们提前准备好了一份数据集,通过以下代码进行下载
```
shell
python dataset/download_pet.py
```
## 二. 下载预训练模型
关于PaddleSeg支持的所有预训练模型的列表,我们可以从
[
模型组合
](
#模型组合
)
中查看我们所需模型的名字和配置。
接着下载对应的预训练模型
```
shell
python pretrained_model/download_model.py pspnet50_bn_cityscapes
```
## 三. 准备配置
接着我们需要确定相关配置,从本教程的角度,配置分为三部分:
*
数据集
*
训练集主目录
*
训练集文件列表
*
测试集文件列表
*
评估集文件列表
*
预训练模型
*
预训练模型名称
*
预训练模型的backbone网络
*
预训练模型的Normalization类型
*
预训练模型路径
*
优化策略
*
学习率
*
Batch Size
*
...
在三者中,预训练模型的配置尤为重要,如果模型或者BACKBONE配置错误,会导致预训练的参数没有加载,进而影响收敛速度。预训练模型相关的配置如第二步所示。
数据集的配置和数据路径有关,在本教程中,数据存放在
`dataset/mini_pet`
中
其他配置则根据数据集和机器环境的情况进行调节,最终我们保存一个如下内容的yaml配置文件,存放路径为
`configs/test_pet.yaml`
```
yaml
# 数据集配置
DATASET
:
DATA_DIR
:
"
./dataset/mini_pet/"
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"
# 预训练模型配置
MODEL
:
MODEL_NAME
:
"
pspnet"
DEFAULT_NORM_TYPE
:
"
bn"
PSPNET
:
DEPTH_MULTIPLIER
:
1
LAYERS
:
50
# 其他配置
TRAIN_CROP_SIZE
:
(512, 512)
EVAL_CROP_SIZE
:
(512, 512)
AUG
:
AUG_METHOD
:
"
unpadding"
FIX_RESIZE_SIZE
:
(512, 512)
BATCH_SIZE
:
4
TRAIN
:
PRETRAINED_MODEL_DIR
:
"
./pretrained_model/pspnet50_bn_cityscapes/"
MODEL_SAVE_DIR
:
"
./saved_model/pspnet_pet/"
SNAPSHOT_EPOCH
:
10
TEST
:
TEST_MODEL
:
"
./saved_model/pspnet_pet/final"
SOLVER
:
NUM_EPOCHS
:
100
LR
:
0.005
LR_POLICY
:
"
poly"
OPTIMIZER
:
"
sgd"
```
## 四. 配置/数据校验
在开始训练和评估之前,我们还需要对配置和数据进行一次校验,确保数据和配置是正确的。使用下述命令启动校验流程
```
shell
python pdseg/check.py
--cfg
./configs/test_pet.yaml
```
## 五. 开始训练
校验通过后,使用下述命令启动训练
```
shell
python pdseg/train.py
--use_gpu
--cfg
./configs/test_pet.yaml
```
## 六. 进行评估
模型训练完成,使用下述命令启动评估
```
shell
python pdseg/eval.py
--use_gpu
--cfg
./configs/test_pet.yaml
```
## 模型组合
|预训练模型名称|BackBone|Norm|数据集|配置|
|-|-|-|-|-|
|pspnet50_bn_cityscapes|ResNet50|bn|Cityscapes|MODEL.MODEL_NAME: pspnet
<br>
MODEL.DEFAULT_NORM_TYPE: bn
<br>
MODEL.PSPNET.LAYERS: 50|
|pspnet101_bn_cityscapes|ResNet101|bn|Cityscapes|MODEL.MODEL_NAME: pspnet
<br>
MODEL.DEFAULT_NORM_TYPE: bn
<br>
MODEL.PSPNET.LAYERS: 101|
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录