Commit 0d97cc8c authored by Sugon_ldc's avatar Sugon_ldc
Browse files

add new model

parents
Pipeline #316 failed with stages
in 0 seconds
_base_: '../_base_/cityscapes_1024x1024.yml'
batch_size: 1
iters: 160000
model:
type: SegFormer
backbone:
type: MixVisionTransformer_B5
pretrained: https://bj.bcebos.com/paddleseg/dygraph/backbone/mix_vision_transformer_b5.tar.gz
embedding_dim: 768
num_classes: 19
optimizer:
_inherited_: False
type: AdamW
beta1: 0.9
beta2: 0.999
weight_decay: 0.01
lr_scheduler:
type: PolynomialDecay
learning_rate: 0.00006
power: 1
loss:
types:
- type: CrossEntropyLoss
coef: [1]
test_config:
is_slide: True
crop_size: [1024, 1024]
stride: [768, 768]
_base_: '../_base_/cityscapes.yml'
batch_size: 1
iters: 160000
model:
type: SegFormer
backbone:
type: MixVisionTransformer_B5
pretrained: https://bj.bcebos.com/paddleseg/dygraph/backbone/mix_vision_transformer_b5.tar.gz
embedding_dim: 768
num_classes: 19
optimizer:
_inherited_: False
type: AdamW
beta1: 0.9
beta2: 0.999
weight_decay: 0.01
lr_scheduler:
type: PolynomialDecay
learning_rate: 0.00006
power: 1
loss:
types:
- type: CrossEntropyLoss
coef: [1]
# Segmenter: Transformer for Semantic Segmentation
## Reference
> Strudel, Robin, Ricardo Garcia, Ivan Laptev, and Cordelia Schmid. "Segmenter: Transformer for Semantic Segmentation." In Proceedings of the IEEE International Conference on Computer Vision, pp. 7262-7272. 2021.
## Performance
### ADE20k
| Model | Backbone | Head | Patch Size | Resolution | Training Iters | mIoU (slice) | mIoU (flip) | Links |
| :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: |
| Segmenter | ViT small | Linear | 16 | 512*512 | 160000 | 45.48 | 45.69 | [model](https://paddleseg.bj.bcebos.com/dygraph/ade20k/segmenter_vit_small_linear_ade20k_512x512_160k/model.pdparams) \| [log](https://paddleseg.bj.bcebos.com/dygraph/ade20k/segmenter_vit_small_linear_ade20k_512x512_160k/train.log) \| [vdl](https://www.paddlepaddle.org.cn/paddle/visualdl/service/app/scalar?id=4dc954a9b774e4807c07c511c04ce0f6) |
| Segmenter | ViT small | Mask | 16 | 512*512 | 160000 | 45.15 | 45.41 | [model](https://paddleseg.bj.bcebos.com/dygraph/ade20k/segmenter_vit_small_mask_ade20k_512x512_160k/model.pdparams) \| [log](https://paddleseg.bj.bcebos.com/dygraph/ade20k/segmenter_vit_small_mask_ade20k_512x512_160k/train.log) \| [vdl](https://www.paddlepaddle.org.cn/paddle/visualdl/service/app/scalar?id=0fdd5191ecec56bbdf08259cc6c32a21) |
| Segmenter | ViT base | Linear | 16 | 512*512 | 160000 | 48.13 | 48.31 | [model](https://paddleseg.bj.bcebos.com/dygraph/ade20k/segmenter_vit_base_linear_ade20k_512x512_160k/model.pdparams) \| [log](https://paddleseg.bj.bcebos.com/dygraph/ade20k/segmenter_vit_base_linear_ade20k_512x512_160k/train.log) \| [vdl](https://www.paddlepaddle.org.cn/paddle/visualdl/service/app/index?id=992f38b3f937de87dc74a888d217f53e) |
| Segmenter | ViT base | Mask | 16 | 512*512 | 160000 | 48.49 | 48.61 | [model](https://paddleseg.bj.bcebos.com/dygraph/ade20k/segmenter_vit_base_mask_ade20k_512x512_160k/model.pdparams) \| [log](https://paddleseg.bj.bcebos.com/dygraph/ade20k/segmenter_vit_base_mask_ade20k_512x512_160k/train.log) \| [vdl](https://www.paddlepaddle.org.cn/paddle/visualdl/service/app/scalar?id=16a7380069b6435bdf6e566dcc7f4a6b) |
_base_: '../_base_/ade20k.yml'
batch_size: 2
iters: 160000
model:
type: LinearSegmenter
backbone:
type: VisionTransformer
img_size: 512
patch_size: 16
embed_dim: 768
depth: 12
num_heads: 12
mlp_ratio: 4
qkv_bias: True
drop_rate: 0.0
drop_path_rate: 0.1
final_norm: True
pretrained: https://bj.bcebos.com/paddleseg/dygraph/pretrained_models/vit_base_patch16_384_augreg.tar.gz
val_dataset:
transforms:
- type: ResizeByShort
short_size: 512
- type: Normalize
optimizer:
weight_decay: 0.0
lr_scheduler:
learning_rate: 0.001
end_lr: 1.0e-05
test_config:
is_slide: True
crop_size: [512, 512]
stride: [512, 512]
_base_: './segmenter_vit_base_linear_ade20k_512x512_160k.yml'
model:
type: MaskSegmenter
h_embed_dim: 768
h_depth: 2
h_num_heads: 12
h_mlp_ratio: 4
h_drop_rate: 0.0
h_drop_path_rate: 0.1
_base_: './segmenter_vit_base_linear_ade20k_512x512_160k.yml'
model:
type: LinearSegmenter
backbone:
type: VisionTransformer
img_size: 512
patch_size: 16
embed_dim: 384
depth: 12
num_heads: 6
mlp_ratio: 4
qkv_bias: True
drop_rate: 0.0
drop_path_rate: 0.1
final_norm: True
pretrained: https://bj.bcebos.com/paddleseg/dygraph/pretrained_models/vit_small_patch16_384_augreg.tar.gz
_base_: './segmenter_vit_small_linear_ade20k_512x512_160k.yml'
model:
type: MaskSegmenter
h_embed_dim: 384
h_depth: 2
h_num_heads: 6
h_mlp_ratio: 4
h_drop_rate: 0.0
h_drop_path_rate: 0.1
# SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation
## Reference
> Badrinarayanan, Vijay, Alex Kendall, and Roberto Cipolla. "Segnet: A deep convolutional encoder-decoder architecture for image segmentation." IEEE transactions on pattern analysis and machine intelligence 39, no. 12 (2017): 2481-2495.
## Performance
### Cityscapes
| Model | Backbone | Resolution | Training Iters | mIoU | mIoU (flip) | mIoU (ms+flip) | Links |
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|SegNet|-|1024x512|80000|60.09%|60.88%|61.85%|[model](https://bj.bcebos.com/paddleseg/dygraph/cityscapes/segnet_cityscapes_1024x512_80k/model.pdparams) \| [log](https://bj.bcebos.com/paddleseg/dygraph/cityscapes/segnet_cityscapes_1024×512_80k/train.log) \| [vdl](https://paddlepaddle.org.cn/paddle/visualdl/service/app?id=cb3abc86f6a3ebcd2d3033a68b23162d)
_base_: '../_base_/cityscapes.yml'
batch_size: 2
iters: 80000
model:
type: SegNet
pretrained: Null
# Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers
## Reference
> Zheng, Sixiao, Jiachen Lu, Hengshuang Zhao, Xiatian Zhu, Zekun Luo, Yabiao Wang, Yanwei Fu et al. "Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers." arXiv preprint arXiv:2012.15840 (2020).
## Performance
### CityScapes
| Model | Backbone | Head | Resolution | Training Iters | mIoU(slice) | Links |
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|Segmentation Transformer|Vision Transformer|Naive|769x769|40000|77.29%|[model](https://bj.bcebos.com/paddleseg/dygraph/cityscapes/setr_naive_large_cityscapes_769x769_40k/model.pdparams) \| [log](https://bj.bcebos.com/paddleseg/dygraph/cityscapes/setr_naive_large_cityscapes_769x769_40k/train.log) \| [vdl](https://paddlepaddle.org.cn/paddle/visualdl/service/app?id=e21e3b4721366602a9a63c551108da1c)|
|Segmentation Transformer|Vision Transformer|PUP|769x769|40000|78.08%|[model](https://bj.bcebos.com/paddleseg/dygraph/cityscapes/setr_pup_large_cityscapes_769x769_40k/model.pdparams) \| [log](https://bj.bcebos.com/paddleseg/dygraph/cityscapes/setr_pup_large_cityscapes_769x769_40k/train.log) \| [vdl](https://paddlepaddle.org.cn/paddle/visualdl/service/app?id=c25fdd4ac6221704d278b09f19ddf970) |
|Segmentation Transformer|Vision Transformer|MLA|769x769|40000|76.52%|[model](https://bj.bcebos.com/paddleseg/dygraph/cityscapes/setr_mla_large_cityscapes_769x769_40k/model.pdparams) \| [log](https://bj.bcebos.com/paddleseg/dygraph/cityscapes/setr_mla_large_cityscapes_769x769_40k/train.log) \| [vdl](https://paddlepaddle.org.cn/paddle/visualdl/service/app?id=993754909236b762b5276897ebec9c6d) |
_base_: '../_base_/cityscapes_769x769_setr.yml'
model:
type: SegmentationTransformer
backbone:
type: ViT_large_patch16_384
pretrained: https://bj.bcebos.com/paddleseg/dygraph/vit_large_patch16_384.tar.gz
num_classes: 19
backbone_indices: [5, 11, 17, 23]
head: mla
align_corners: True
optimizer:
weight_decay: 0.0
lr_scheduler:
end_lr: 1.0e-4
iters: 40000
loss:
types:
- type: CrossEntropyLoss
- type: CrossEntropyLoss
- type: CrossEntropyLoss
- type: CrossEntropyLoss
- type: CrossEntropyLoss
coef: [1, 0.4, 0.4, 0.4, 0.4]
test_config:
is_slide: True
crop_size: [769, 769]
stride: [512, 512]
_base_: '../_base_/cityscapes_769x769_setr.yml'
model:
type: SegmentationTransformer
backbone:
type: ViT_large_patch16_384
pretrained: https://bj.bcebos.com/paddleseg/dygraph/vit_large_patch16_384.tar.gz
num_classes: 19
backbone_indices: [9, 14, 19, 23]
head: naive
align_corners: True
optimizer:
weight_decay: 0.0
lr_scheduler:
end_lr: 1.0e-4
iters: 40000
loss:
types:
- type: CrossEntropyLoss
- type: CrossEntropyLoss
- type: CrossEntropyLoss
- type: CrossEntropyLoss
coef: [1, 0.4, 0.4, 0.4]
test_config:
is_slide: True
crop_size: [769, 769]
stride: [512, 512]
_base_: '../_base_/cityscapes_769x769_setr.yml'
model:
type: SegmentationTransformer
backbone:
type: ViT_large_patch16_384
pretrained: https://bj.bcebos.com/paddleseg/dygraph/vit_large_patch16_384.tar.gz
num_classes: 19
backbone_indices: [9, 14, 19, 23]
head: pup
align_corners: True
optimizer:
weight_decay: 0.0
lr_scheduler:
end_lr: 1.0e-4
iters: 40000
loss:
types:
- type: CrossEntropyLoss
- type: CrossEntropyLoss
- type: CrossEntropyLoss
- type: CrossEntropyLoss
- type: CrossEntropyLoss
coef: [1, 0.4, 0.4, 0.4, 0.4]
test_config:
is_slide: True
crop_size: [769, 769]
stride: [512, 512]
# Semantic Flow for Fast and Accurate Scene Parsing
## Reference
> Xiangtai Li, Ansheng You, Zhen Zhu, Houlong Zhao, Maoke Yang, Kuiyuan Yang, Shaohua Tan, Yunhai Tong:
Semantic Flow for Fast and Accurate Scene Parsing. ECCV (1) 2020: 775-793 .
## Performance
### Cityscapes
| Model | Backbone | Resolution | Training Iters | mIoU | mIoU (flip) | mIoU (ms+flip) | Links |
|-|-|-|-|-|-|-|-|
|SFNet|ResNet18_OS8|1024x1024|80000|78.72%|79.11%|79.28%|[model](https://bj.bcebos.com/paddleseg/dygraph/cityscapes/sfnet_resnet18_os8_cityscapes_1024x1024_80k/model.pdparams) \| [log](https://bj.bcebos.com/paddleseg/dygraph/cityscapes/sfnet_resnet18_os8_cityscapes_1024x1024_80k/train.log) \| [vdl](https://www.paddlepaddle.org.cn/paddle/visualdl/service/app/scalar?id=0d790ad96282048b136342fcebb08d14)|
|SFNet|ResNet50_OS8|1024x1024|80000|81.49%|81.63%|81.85%|[model](https://bj.bcebos.com/paddleseg/dygraph/cityscapes/sfnet_resnet50_os8_cityscapes_1024x1024_80k/model.pdparams) \| [log](https://bj.bcebos.com/paddleseg/dygraph/cityscapes/sfnet_resnet50_os8_cityscapes_1024x1024_80k/train.log) \| [vdl](https://paddlepaddle.org.cn/paddle/visualdl/service/app?id=d458349ec63ea8ccd6fae84afa8ea981)|
_base_: '../_base_/cityscapes_1024x1024.yml'
batch_size: 4
iters: 80000
model:
type: SFNet
backbone:
type: ResNet18_vd
output_stride: 8
pretrained: https://bj.bcebos.com/paddleseg/dygraph/resnet18_vd_ssld_v2.tar.gz
backbone_indices: [0, 1, 2, 3]
train_dataset:
transforms:
- type: ResizeStepScaling
min_scale_factor: 0.5
max_scale_factor: 2.0
scale_step_size: 0.25
- type: RandomPaddingCrop
crop_size: [1024, 1024]
- type: RandomHorizontalFlip
- type: RandomDistort
brightness_range: 0.4
contrast_range: 0.4
saturation_range: 0.4
- type: Normalize
loss:
types:
- type: OhemCrossEntropyLoss
coef: [1]
optimizer:
type: sgd
momentum: 0.9
weight_decay: 0.0005
_base_: 'sfnet_resnet18_os8_cityscapes_1024x1024_80k.yml'
batch_size: 2
iters: 80000
model:
type: SFNet
backbone:
type: ResNet50_vd
output_stride: 8
pretrained: https://bj.bcebos.com/paddleseg/dygraph/resnet50_vd_ssld_v2.tar.gz
backbone_indices: [0, 1, 2, 3]
> 本目录下的配置文件用于飞桨模型选型工具(PaddleSMRT)。
# PaddleSMRT
## 一、项目介绍
[PaddleSMRT](https://www.paddlepaddle.org.cn/smrt) 是飞桨结合产业落地经验推出的产业模型选型工具,在项目落地过程中,用户根据自身的实际情况,输入自己的需求,即可以得到对应在算法模型、部署硬件以及教程文档的信息。
同时为了更加精准的推荐,增加了数据分析功能,用户上传自己的标注文件,系统可以自动分析数据特点,例如数据分布不均衡、小目标、密集型等,从而提供更加精准的模型以及优化策略,更好的符合场景的需求。
本文档主要介绍PaddleSMRT在分割方向上是如何进行模型选型推荐,以及推荐模型的使用方法。
## 二、数据介绍
PaddleSMRT结合产业真实场景,通过比较算法效果,向用户推荐最适合的模型。目前PaddleSMRT覆盖工业质检、城市安防两大场景,下面介绍PaddleSMRT进行算法对比所使用的数据集。
### 1. 新能源电池质检数据集
数据集为新能源电池电池组件质检数据集,包含15021张图片,覆盖45种缺陷类型,例如掉胶,裂纹,划痕等。
新能源电池数据展示图:
<div align="center">
<img src="https://user-images.githubusercontent.com/48433081/169200335-c77d58e4-8916-46e4-be4b-eb7fe48a2f80.png" width = "600" />
</div>
数据集特点为:
1. 类别分布均衡
2. 属于小目标数据
3. 非密集型数据
### 2. 铝件质检数据集
数据集为铝件生产过程中的质检数据集,包含11293张图片,覆盖5种缺陷类型,例如划伤,压伤,起皮等。
铝件质检数据展示图:
<div align="center">
<img src="https://user-images.githubusercontent.com/48433081/169200252-95a69964-0ae1-40bb-b2b9-2ba17f9bef64.png" width = "600" />
</div>
数据集特点为:
1. 类别分布不均衡
2. 属于小目标数据
3. 非密集型数据
## 三、推荐模型使用全流程
通过飞桨官网的[模型选型工具](https://www.paddlepaddle.org.cn/smrt)明确需要使用的模型后,大家需要进行数据准备、模型训练、模型导出、模型部署,下面我们以一个例子进行简要说明。
### 3.1 准备环境
参考PaddleSeg[安装文档](../../docs/install_cn.md)安装PaddlePaddle、下载PaddleSeg代码、安装PaddleSeg依赖库。
### 3.2 准备数据
详细的数据准备方法,请参考[数据标注文档](../../docs/data/marker/marker_cn.md)[数据配置文档](../../docs/data/custom/data_prepare_cn.md)
此处,我们准备了一个缺陷分割的数据集,点击[链接](https://paddle-smrt.bj.bcebos.com/data/seg/defect_data.zip)下载,或者执行如下命令下载。
```
wget https://paddle-smrt.bj.bcebos.com/data/seg/defect_data.zip
```
将下载的数据集解压,并存放到`PaddleSeg/data/defect_data`目录,如下。
```
PaddleSeg/data/defect_data
├── Annotations
├── JPEGImages
├── test.txt
├── train.txt
└── val.txt
```
该数据集的原始图片保存在JPEGImages文件,标注图片保存在Annotations。
train.txt、val.txt和test.txt分别标识用于训练、验证和测试的数据,其中内容如下,每一行的前面表示原始图像的相对路径、后面表示标注图像的相对路径。
```
JPEGImages/liewen_26.png Annotations/liewen_26.png
JPEGImages/diaojiao_394.png Annotations/diaojiao_394.png
```
标注图像包含背景和3类缺陷目标,总共4类,分别标注的数值使0,1,2,3。
### 3.3 准备配置文件
PaddleSeg推荐使用配置文件的方式来训练、导出模型,简单方便。
针对工业质检任务,我们为模型选型工具推荐的6个模型准备好了配置文件,存放在`PaddleSeg/configs/smrt`目录下。
```
PaddleSeg/configs/smrt
├── base_cfg.yml
├── pp_liteseg_stdc1.yml
├── pp_liteseg_stdc2.yml
├── deeplabv3p_resnet50_os8.yml
├── ocrnet_hrnetw18.yml
├── bisenetv2.yml
└── sfnet_resnet18_os8.yml
```
其中,`base_cfg.yml`是公共配置,包括数据集、优化器、学习率,其他文件包含`base_cfg.yml`,额外定义了模型、损失函数。
在其他应用中,大家可以根据实际情况修改上述配置文件中的字段,而且需要根据模型数据量调整配置文件中的超参,比如训练轮数iters、batch_size、学习率等。
### 3.4 执行训练
本教程简单演示单卡和多卡训练,详细的模型训练方法请参考[文档](../../docs/train/train_cn.md)
**单卡训练**
在PaddleSeg目录下,执行如下命令,使用单卡GPU进行模型训练。
```
export CUDA_VISIBLE_DEVICES=0 # Linux下设置1张可用的卡
# set CUDA_VISIBLE_DEVICES=0 # windows下设置1张可用的卡
cd PaddleSeg
python tools/train.py \
--config configs/smrt/pp_liteseg_stdc2.yml \
--do_eval \
--use_vdl \
--save_interval 1000 \
--save_dir output/pp_liteseg_stdc2
```
说明:
* 上面脚本选择`pp_liteseg_stdc2`模型进行训练,所以加载`configs/smrt/pp_liteseg_stdc2.yml`配置文件,如果需要使用其他模型,可以修改`--config`输入参数。
* `--do_eval`表示训练过程中会进行测试,`--save_interval`设置每训练多少轮会进行一次测试。
* 训练结束后,精度最高的模型保存在`--save_dir`中,比如`output/pp_liteseg_stdc2/best_model/`
* 查看训练的log,可以知道模型训练的最高精度。
* 为了实现最高的精度,大家可以适当调参,重点关注学习率lr、BatchSize、训练轮数iters、损失函数Loss等。
**多卡训练**
在PaddleSeg目录下,执行如下命令,使用多卡GPU进行模型训练。
```
export CUDA_VISIBLE_DEVICES=0,1,2,3 # 设置4张可用的卡
python -m paddle.distributed.launch tools/train.py \
--config configs/smrt/pp_liteseg_stdc2.yml \
--do_eval \
--use_vdl \
--save_interval 1000 \
--save_dir output/pp_liteseg_stdc2
```
### 3.5 模型导出
训练得到精度符合预期的模型后,可以导出预测模型,进行部署。详细的模型导出方法请参考[文档](../../docs/model_export_cn.md)
```
python tools/export.py \
--config configs/smrt/pp_liteseg_stdc2.yml \
--model_path output/pp_liteseg_stdc2/best_model/model.pdparams \
--save_dir output/pp_liteseg_stdc2/infer_models
```
上面脚本加载`pp_liteseg_stdc2`模型精度最高的权重,导出预测模型保存在`output/pp_liteseg_stdc2/infer_models`目录。
### 3.5 部署
导出模型后,大家可以参考如下文档进行部署。
| 端侧 | 库 | 教程 |
| :----------- | :----------- | :----- |
| 服务端端Python部署 | Paddle预测库 | [文档](../../docs/deployment/inference/python_inference_cn.md) |
| 服务器端端C++部署 | PaddleInference预测库 | [文档](../../docs/deployment/inference/cpp_inference_cn.md) |
| 移动端部署 | PaddleLite | [文档](../../docs/deployment/lite/lite_cn.md) |
| 前端部署 | PaddleJS | [文档](../../docs/deployment/web/web_cn.md) |
## 四、部署demo
为了更方便大家部署,我们也提供了完备的可视化部署Demo,欢迎尝试使用
* [Windows Demo下载地址](https://github.com/PaddlePaddle/PaddleX/tree/develop/deploy/cpp/docs/csharp_deploy)
<div align="center">
<img src="https://user-images.githubusercontent.com/48433081/169064583-c931f4c0-dfd6-4bfa-85f1-be68eb351e4a.png" width = "800" />
</div>
* [Linux Demo下载地址](https://github.com/cjh3020889729/The-PaddleX-QT-Visualize-GUI)
<div align="center">
<img src="https://user-images.githubusercontent.com/48433081/169065951-147f8d51-bf3e-4a28-9197-d717968de73f.png" width = "800" />
</div>
## 五、场景范例
为了更方便大家更好的进行产业落地,PaddleSMRT也提供了详细详细的应用范例,欢迎大家使用。
* 工业视觉
* [工业缺陷检测](https://aistudio.baidu.com/aistudio/projectdetail/2598319)
* [表计读数](https://aistudio.baidu.com/aistudio/projectdetail/2598327)
* [钢筋计数](https://aistudio.baidu.com/aistudio/projectdetail/2404188)
batch_size: 8
iters: 10000
train_dataset:
type: Dataset
dataset_root: data/defect_data
num_classes: 4
mode: train
train_path: data/defect_data/train.txt
transforms:
- type: ResizeStepScaling
min_scale_factor: 0.5
max_scale_factor: 2.0
scale_step_size: 0.25
- type: RandomPaddingCrop
crop_size: [512, 512]
- type: RandomHorizontalFlip
- type: RandomDistort
brightness_range: 0.4
contrast_range: 0.4
saturation_range: 0.4
- type: Normalize
val_dataset:
type: Dataset
dataset_root: data/defect_data
num_classes: 4
mode: val
val_path: data/defect_data/val.txt
transforms:
- type: Normalize
optimizer:
type: sgd
momentum: 0.9
weight_decay: 5.0e-4
lr_scheduler:
type: PolynomialDecay
learning_rate: 0.01
end_lr: 0
power: 0.9
warmup_iters: 500
warmup_start_lr: 1.0e-5
\ No newline at end of file
_base_: './base_cfg.yml'
model:
type: BiSeNetV2
loss:
types:
- type: MixedLoss
losses:
- type: OhemCrossEntropyLoss
min_kept: 65000
- type: LovaszSoftmaxLoss
coef: [0.8, 0.2]
coef: [1, 1, 1, 1, 1]
\ No newline at end of file
_base_: './base_cfg.yml'
model:
type: DeepLabV3P
backbone:
type: ResNet50_vd
output_stride: 8
multi_grid: [1, 2, 4]
pretrained: https://bj.bcebos.com/paddleseg/dygraph/resnet50_vd_ssld_v2.tar.gz
backbone_indices: [0, 3]
aspp_ratios: [1, 12, 24, 36]
aspp_out_channels: 256
align_corners: False
pretrained: null
loss:
types:
- type: MixedLoss
losses:
- type: OhemCrossEntropyLoss
min_kept: 65000
- type: LovaszSoftmaxLoss
coef: [0.8, 0.2]
coef: [1]
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment