Merge develop

own
Bobholamovic 2 years ago
commit d545aa8efd
  1. 13
      docs/intro/model_zoo.md
  2. 32
      docs/intro/transforms.md
  3. 2
      examples/rs_research/config_utils.py
  4. 2
      paddlers/deploy/predictor.py
  5. 2
      paddlers/tasks/base.py
  6. 28
      paddlers/tasks/object_detector.py
  7. 14
      paddlers/tasks/restorer.py
  8. 13
      paddlers/utils/utils.py
  9. 20
      test_tipc/README.md
  10. 10
      test_tipc/common_func.sh
  11. 2
      test_tipc/config_utils.py
  12. 2
      test_tipc/configs/cd/_base_/airchange.yaml
  13. 2
      test_tipc/configs/cd/bit/bit_airchange.yaml
  14. 2
      test_tipc/configs/cd/bit/bit_levircd.yaml
  15. 2
      test_tipc/configs/cd/bit/train_infer_python.txt
  16. 8
      test_tipc/configs/cd/cdnet/cdnet_airchange.yaml
  17. 8
      test_tipc/configs/cd/cdnet/cdnet_levircd.yaml
  18. 53
      test_tipc/configs/cd/cdnet/train_infer_python.txt
  19. 8
      test_tipc/configs/cd/changeformer/changeformer_airchange.yaml
  20. 8
      test_tipc/configs/cd/changeformer/changeformer_levircd.yaml
  21. 10
      test_tipc/configs/cd/changeformer/train_infer_python.txt
  22. 8
      test_tipc/configs/cd/dsamnet/dsamnet_airchange.yaml
  23. 8
      test_tipc/configs/cd/dsamnet/dsamnet_levircd.yaml
  24. 53
      test_tipc/configs/cd/dsamnet/train_infer_python.txt
  25. 8
      test_tipc/configs/cd/dsifn/dsifn_airchange.yaml
  26. 8
      test_tipc/configs/cd/dsifn/dsifn_levircd.yaml
  27. 53
      test_tipc/configs/cd/dsifn/train_infer_python.txt
  28. 8
      test_tipc/configs/cd/fc_ef/fc_ef_airchange.yaml
  29. 8
      test_tipc/configs/cd/fc_ef/fc_ef_levircd.yaml
  30. 53
      test_tipc/configs/cd/fc_ef/train_infer_python.txt
  31. 8
      test_tipc/configs/cd/fc_siam_conc/fc_siam_conc_airchange.yaml
  32. 8
      test_tipc/configs/cd/fc_siam_conc/fc_siam_conc_levircd.yaml
  33. 53
      test_tipc/configs/cd/fc_siam_conc/train_infer_python.txt
  34. 8
      test_tipc/configs/cd/fc_siam_diff/fc_siam_diff_airchange.yaml
  35. 8
      test_tipc/configs/cd/fc_siam_diff/fc_siam_diff_levircd.yaml
  36. 53
      test_tipc/configs/cd/fc_siam_diff/train_infer_python.txt
  37. 13
      test_tipc/configs/cd/fccdn/fccdn_airchange.yaml
  38. 8
      test_tipc/configs/cd/fccdn/fccdn_levircd.yaml
  39. 14
      test_tipc/configs/cd/fccdn/train_infer_python.txt
  40. 8
      test_tipc/configs/cd/snunet/snunet_airchange.yaml
  41. 8
      test_tipc/configs/cd/snunet/snunet_levircd.yaml
  42. 53
      test_tipc/configs/cd/snunet/train_infer_python.txt
  43. 8
      test_tipc/configs/cd/stanet/stanet_airchange.yaml
  44. 8
      test_tipc/configs/cd/stanet/stanet_levircd.yaml
  45. 53
      test_tipc/configs/cd/stanet/train_infer_python.txt
  46. 2
      test_tipc/configs/clas/_base_/ucmerced.yaml
  47. 10
      test_tipc/configs/clas/hrnet/hrnet_ucmerced.yaml
  48. 6
      test_tipc/configs/clas/hrnet/train_infer_python.txt
  49. 10
      test_tipc/configs/clas/mobilenetv3/mobilenetv3_ucmerced.yaml
  50. 53
      test_tipc/configs/clas/mobilenetv3/train_infer_python.txt
  51. 10
      test_tipc/configs/clas/resnet50_vd/resnet50_vd_ucmerced.yaml
  52. 53
      test_tipc/configs/clas/resnet50_vd/train_infer_python.txt
  53. 72
      test_tipc/configs/det/_base_/rsod.yaml
  54. 4
      test_tipc/configs/det/_base_/sarship.yaml
  55. 10
      test_tipc/configs/det/faster_rcnn/faster_rcnn_rsod.yaml
  56. 10
      test_tipc/configs/det/faster_rcnn/faster_rcnn_sarship.yaml
  57. 53
      test_tipc/configs/det/faster_rcnn/train_infer_python.txt
  58. 10
      test_tipc/configs/det/ppyolo/ppyolo_rsod.yaml
  59. 2
      test_tipc/configs/det/ppyolo/ppyolo_sarship.yaml
  60. 8
      test_tipc/configs/det/ppyolo/train_infer_python.txt
  61. 10
      test_tipc/configs/det/ppyolo_tiny/ppyolo_tiny_rsod.yaml
  62. 10
      test_tipc/configs/det/ppyolo_tiny/ppyolo_tiny_sarship.yaml
  63. 53
      test_tipc/configs/det/ppyolo_tiny/train_infer_python.txt
  64. 10
      test_tipc/configs/det/ppyolov2/ppyolov2_rsod.yaml
  65. 10
      test_tipc/configs/det/ppyolov2/ppyolov2_sarship.yaml
  66. 53
      test_tipc/configs/det/ppyolov2/train_infer_python.txt
  67. 53
      test_tipc/configs/det/yolov3/train_infer_python.txt
  68. 10
      test_tipc/configs/det/yolov3/yolov3_rsod.yaml
  69. 10
      test_tipc/configs/det/yolov3/yolov3_sarship.yaml
  70. 72
      test_tipc/configs/res/_base_/rssr.yaml
  71. 8
      test_tipc/configs/res/drn/drn_rssr.yaml
  72. 53
      test_tipc/configs/res/drn/train_infer_python.txt
  73. 8
      test_tipc/configs/res/esrgan/esrgan_rssr.yaml
  74. 53
      test_tipc/configs/res/esrgan/train_infer_python.txt
  75. 8
      test_tipc/configs/res/lesrcnn/lesrcnn_rssr.yaml
  76. 53
      test_tipc/configs/res/lesrcnn/train_infer_python.txt
  77. 2
      test_tipc/configs/seg/_base_/rsseg.yaml
  78. 11
      test_tipc/configs/seg/deeplabv3p/deeplabv3p_rsseg.yaml
  79. 53
      test_tipc/configs/seg/deeplabv3p/train_infer_python.txt
  80. 8
      test_tipc/configs/seg/unet/train_infer_python.txt
  81. 11
      test_tipc/configs/seg/unet/unet.yaml
  82. 11
      test_tipc/configs/seg/unet/unet_rsseg.yaml
  83. 58
      test_tipc/docs/test_train_inference_python.md
  84. 35
      test_tipc/infer.py
  85. 16
      test_tipc/prepare.sh
  86. 1
      tests/run_examples.sh
  87. 3
      tests/run_tests.sh
  88. 68
      tools/prepare_dataset/common.py
  89. 56
      tools/prepare_dataset/prepare_rsod.py
  90. 3
      tutorials/train/README.md
  91. 2
      tutorials/train/change_detection/bit.py
  92. 2
      tutorials/train/change_detection/cdnet.py
  93. 2
      tutorials/train/change_detection/changeformer.py
  94. 2
      tutorials/train/change_detection/dsamnet.py
  95. 2
      tutorials/train/change_detection/dsifn.py
  96. 2
      tutorials/train/change_detection/fc_ef.py
  97. 2
      tutorials/train/change_detection/fc_siam_conc.py
  98. 2
      tutorials/train/change_detection/fc_siam_diff.py
  99. 2
      tutorials/train/change_detection/snunet.py
  100. 2
      tutorials/train/change_detection/stanet.py
  101. Some files were not shown because too many files have changed in this diff Show More

@ -10,19 +10,20 @@ PaddleRS目前已支持的全部模型如下(标注\*的为遥感专用模型
|--------|---------|------|
| 变化检测 | \*BIT | 是 |
| 变化检测 | \*CDNet | 是 |
| 变化检测 | \*ChangeFormer | 是 |
| 变化检测 | \*ChangeStar | 否 |
| 变化检测 | \*DSAMNet | 是 |
| 变化检测 | \*DSIFN | 否 |
| 变化检测 | \*SNUNet | 是 |
| 变化检测 | \*STANet | 是 |
| 变化检测 | \*FC-EF | 是 |
| 变化检测 | \*FC-Siam-conc | 是 |
| 变化检测 | \*FC-Siam-diff | 是 |
| 变化检测 | \*ChangeStar | 否 |
| 变化检测 | \*ChangeFormer | 是 |
| 变化检测 | \*FCCDN | 是 |
| 变化检测 | \*SNUNet | 是 |
| 变化检测 | \*STANet | 是 |
| 场景分类 | CondenseNetV2 | 是 |
| 场景分类 | HRNet | 是 |
| 场景分类 | MobileNetV3 | 是 |
| 场景分类 | ResNet50-vd | 是 |
| 场景分类 | CondenseNetV2 | 是 |
| 图像复原 | DRN | 否 |
| 图像复原 | ESRGAN | 否 |
| 图像复原 | LESRCNN | 否 |
@ -32,5 +33,5 @@ PaddleRS目前已支持的全部模型如下(标注\*的为遥感专用模型
| 目标检测 | PP-YOLOv2 | 是 |
| 目标检测 | YOLOv3 | 是 |
| 图像分割 | DeepLab V3+ | 是 |
| 图像分割 | UNet | 是 |
| 图像分割 | \*FarSeg | 否 |
| 图像分割 | UNet | 是 |

@ -6,27 +6,27 @@ PaddleRS对不同遥感任务需要的数据预处理/数据增强(合称为
| 数据变换算子名 | 用途 | 任务 | ... |
| -------------------- | ------------------------------------------------- | -------- | ---- |
| Resize | 调整输入影像大小。 | 所有任务 | ... |
| RandomResize | 随机调整输入影像大小。 | 所有任务 | ... |
| ResizeByShort | 调整输入影像大小,保持纵横比不变(根据短边计算缩放系数)。 | 所有任务 | ... |
| RandomResizeByShort | 随机调整输入影像大小,保持纵横比不变(根据短边计算缩放系数)。 | 所有任务 | ... |
| ResizeByLong | 调整输入影像大小,保持纵横比不变(根据长边计算缩放系数)。 | 所有任务 | ... |
| RandomHorizontalFlip | 随机水平翻转输入影像。 | 所有任务 | ... |
| RandomVerticalFlip | 随机垂直翻转输入影像。 | 所有任务 | ... |
| Normalize | 对输入影像应用标准化。 | 所有任务 | ... |
| CenterCrop | 对输入影像进行中心裁剪。 | 所有任务 | ... |
| RandomCrop | 对输入影像进行随机中心裁剪。 | 所有任务 | ... |
| RandomScaleAspect | 裁剪输入影像并重新缩放到原始尺寸。 | 所有任务 | ... |
| RandomExpand | 根据随机偏移扩展输入影像。 | 所有任务 | ... |
| Pad | 将输入影像填充到指定的大小。 | 所有任务 | ... |
| MixupImage | 将两幅影像(及对应的目标检测标注)混合在一起作为新的样本。 | 目标检测 | ... |
| Dehaze | 对输入图像进行去雾。 | 所有任务 | ... |
| MatchRadiance | 对两个时相的输入影像进行相对辐射校正。 | 变化检测 | ... |
| RandomDistort | 对输入施加随机色彩变换。 | 所有任务 | ... |
| MixupImage | 将两幅影像(及对应的目标检测标注)混合在一起作为新的样本。 | 目标检测 | ... |
| Normalize | 对输入影像应用标准化。 | 所有任务 | ... |
| Pad | 将输入影像填充到指定的大小。 | 所有任务 | ... |
| RandomBlur | 对输入施加随机模糊。 | 所有任务 | ... |
| Dehaze | 对输入图像进行去雾。 | 所有任务 | ... |
| RandomCrop | 对输入影像进行随机中心裁剪。 | 所有任务 | ... |
| RandomDistort | 对输入施加随机色彩变换。 | 所有任务 | ... |
| RandomExpand | 根据随机偏移扩展输入影像。 | 所有任务 | ... |
| RandomHorizontalFlip | 随机水平翻转输入影像。 | 所有任务 | ... |
| RandomResize | 随机调整输入影像大小。 | 所有任务 | ... |
| RandomResizeByShort | 随机调整输入影像大小,保持纵横比不变(根据短边计算缩放系数)。 | 所有任务 | ... |
| RandomScaleAspect | 裁剪输入影像并重新缩放到原始尺寸。 | 所有任务 | ... |
| RandomSwap | 随机交换两个时相的输入影像。 | 变化检测 | ... |
| RandomVerticalFlip | 随机竖直翻转输入影像。 | 所有任务 | ... |
| ReduceDim | 对输入图像进行波段降维。 | 所有任务 | ... |
| Resize | 调整输入影像大小。 | 所有任务 | ... |
| ResizeByLong | 调整输入影像大小,保持纵横比不变(根据长边计算缩放系数)。 | 所有任务 | ... |
| ResizeByShort | 调整输入影像大小,保持纵横比不变(根据短边计算缩放系数)。 | 所有任务 | ... |
| SelectBand | 对输入影像进行波段选择。 | 所有任务 | ... |
| RandomSwap | 随机交换两个时相的输入影像。 | 变化检测 | ... |
| ... | ... | ... | ... |
## 组合算子

@ -132,7 +132,7 @@ def parse_args(*args, **kwargs):
conflict_handler='resolve', parents=[cfg_parser])
# Global settings
parser.add_argument('cmd', choices=['train', 'eval'])
parser.add_argument('task', choices=['cd', 'clas', 'det', 'seg'])
parser.add_argument('task', choices=['cd', 'clas', 'det', 'res', 'seg'])
# Data
parser.add_argument('--datasets', type=dict, default={})

@ -105,7 +105,7 @@ class Predictor(object):
logging.warning(
"Semantic segmentation models do not support TensorRT acceleration, "
"TensorRT is forcibly disabled.")
elif 'RCNN' in self._model.__class__.__name__:
elif self._model.model_type == 'detector' and 'RCNN' in self._model.__class__.__name__:
logging.warning(
"RCNN models do not support TensorRT acceleration, "
"TensorRT is forcibly disabled.")

@ -368,7 +368,7 @@ class BaseModel(metaclass=ModelMeta):
else:
outputs = self.train_step(step, data, self.net)
scheduler_step(self.optimizer)
scheduler_step(self.optimizer, outputs['loss'])
train_avg_metrics.update(outputs)
lr = self.optimizer.get_lr()

@ -255,32 +255,18 @@ class BaseDetector(BaseModel):
"""
args = self._pre_train(locals())
args.pop('self')
return self._real_train(**args)
def _pre_train(self, in_args):
return in_args
def _real_train(self,
num_epochs,
train_dataset,
train_batch_size=64,
eval_dataset=None,
optimizer=None,
save_interval_epochs=1,
log_interval_steps=10,
save_dir='output',
pretrain_weights='IMAGENET',
learning_rate=.001,
warmup_steps=0,
warmup_start_lr=0.0,
lr_decay_epochs=(216, 243),
lr_decay_gamma=0.1,
metric=None,
use_ema=False,
early_stop=False,
early_stop_patience=5,
use_vdl=True,
resume_checkpoint=None):
def _real_train(
self, num_epochs, train_dataset, train_batch_size, eval_dataset,
optimizer, save_interval_epochs, log_interval_steps, save_dir,
pretrain_weights, learning_rate, warmup_steps, warmup_start_lr,
lr_decay_epochs, lr_decay_gamma, metric, use_ema, early_stop,
early_stop_patience, use_vdl, resume_checkpoint):
if self.status == 'Infer':
logging.error(

@ -651,7 +651,7 @@ class DRN(BaseRestorer):
def __init__(self,
losses=None,
sr_factor=4,
scale=(2, 4),
scales=(2, 4),
n_blocks=30,
n_feats=16,
n_colors=3,
@ -660,10 +660,10 @@ class DRN(BaseRestorer):
lq_loss_weight=0.1,
dual_loss_weight=0.1,
**params):
if sr_factor != max(scale):
raise ValueError(f"`sr_factor` must be equal to `max(scale)`.")
if sr_factor != max(scales):
raise ValueError(f"`sr_factor` must be equal to `max(scales)`.")
params.update({
'scale': scale,
'scale': scales,
'n_blocks': n_blocks,
'n_feats': n_feats,
'n_colors': n_colors,
@ -672,6 +672,7 @@ class DRN(BaseRestorer):
})
self.lq_loss_weight = lq_loss_weight
self.dual_loss_weight = dual_loss_weight
self.scales = scales
super(DRN, self).__init__(
model_name='DRN', losses=losses, sr_factor=sr_factor, **params)
@ -703,7 +704,7 @@ class DRN(BaseRestorer):
lr.extend([
F.interpolate(
inputs[0], scale_factor=s, mode='bicubic')
for s in net.generator.scale[:-1]
for s in self.scales[:-1]
])
loss = self.losses(sr[-1], inputs[1])
for i in range(1, len(sr)):
@ -716,7 +717,7 @@ class DRN(BaseRestorer):
elif gan_mode == 'forward_dual':
sr, lr = inputs[0], inputs[1]
sr2lr = []
n_scales = len(net.generator.scale)
n_scales = len(self.scales)
for i in range(n_scales):
sr2lr_i = net.generators[1 + i](sr[i - n_scales])
sr2lr.append(sr2lr_i)
@ -741,6 +742,7 @@ class DRN(BaseRestorer):
(outputs['loss_prim'] + outputs['loss_dual']).backward()
self.optimizer.step()
return {
'loss': outputs['loss_prim'] + outputs['loss_dual'],
'loss_prim': outputs['loss_prim'],
'loss_dual': outputs['loss_dual']
}

@ -243,20 +243,17 @@ class Timer(Times):
def to_data_parallel(layers, *args, **kwargs):
from paddlers.tasks.utils.res_adapters import GANAdapter
if isinstance(layers, GANAdapter):
# Inplace modification for efficiency
layers.generators = [
paddle.DataParallel(g, *args, **kwargs) for g in layers.generators
]
layers.discriminators = [
paddle.DataParallel(d, *args, **kwargs)
layers = GANAdapter(
[to_data_parallel(g, *args, **kwargs) for g in layers.generators], [
to_data_parallel(d, *args, **kwargs)
for d in layers.discriminators
]
])
else:
layers = paddle.DataParallel(layers, *args, **kwargs)
return layers
def scheduler_step(optimizer):
def scheduler_step(optimizer, loss=None):
from paddlers.tasks.utils.res_adapters import OptimizerAdapter
if not isinstance(optimizer, OptimizerAdapter):
optimizer = [optimizer]

@ -23,11 +23,29 @@
| 任务类别 | 模型名称 | 基础<br>训练预测 | 更多<br>训练方式 | 更多<br>部署方式 | Slim<br>训练部署 | 更多<br>训练环境 |
| :--- | :--- | :----: | :--------: | :----: | :----: | :----: |
| 变化检测 | BIT | 支持 | - | - | - |
| 变化检测 | CDNet | 支持 | - | - | - |
| 变化检测 | DSAMNet | 支持 | - | - | - |
| 变化检测 | DSIFN | 支持 | - | - | - |
| 变化检测 | SNUNet | 支持 | - | - | - |
| 变化检测 | STANet | 支持 | - | - | - |
| 变化检测 | FC-EF | 支持 | - | - | - |
| 变化检测 | FC-Siam-conc | 支持 | - | - | - |
| 变化检测 | FC-Siam-diff | 支持 | - | - | - |
| 变化检测 | ChangeFormer | 支持 | - | - | - |
| 场景分类 | HRNet | 支持 | - | - | - |
| 场景分类 | MobileNetV3 | 支持 | - | - | - |
| 场景分类 | ResNet50-vd | 支持 | - | - | - |
| 图像复原 | DRN | 支持 | - | - | - |
| 图像复原 | EARGAN | 支持 | - | - | - |
| 图像复原 | LESRCNN | 支持 | - | - | - |
| 目标检测 | Faster R-CNN | 支持 | - | - | - |
| 目标检测 | PP-YOLO | 支持 | - | - | - |
| 目标检测 | PP-YOLO Tiny | 支持 | - | - | - |
| 目标检测 | PP-YOLOv2 | 支持 | - | - | - |
| 目标检测 | YOLOv3 | 支持 | - | - | - |
| 图像分割 | DeepLab V3+ | 支持 | - | - | - |
| 图像分割 | UNet | 支持 | - | - | - |
## 3 测试工具简介
### 3.1 目录介绍

@ -86,12 +86,14 @@ function download_and_unzip_dataset() {
rm -rf "${ds_path}"
fi
wget -nc -P "${ds_dir}" "${url}" --no-check-certificate
wget -O "${ds_dir}/${zip_name}" "${url}" --no-check-certificate
# The extracted file/directory must have the same name as the zip file.
cd "${ds_dir}" && unzip "${zip_name}" \
&& mv "${zip_name%.*}" ${ds_name} && cd - \
&& echo "Successfully downloaded ${zip_name} from ${url}. File saved in ${ds_path}. "
cd "${ds_dir}" && unzip "${zip_name}"
if [ "${zip_name%.*}" != "${ds_name}" ]; then
mv "${zip_name%.*}" "${ds_name}"
fi
cd -
}
function parse_extra_args() {

@ -118,7 +118,7 @@ def parse_args(*args, **kwargs):
conflict_handler='resolve', parents=[cfg_parser])
# Global settings
parser.add_argument('cmd', choices=['train', 'eval'])
parser.add_argument('task', choices=['cd', 'clas', 'det', 'seg'])
parser.add_argument('task', choices=['cd', 'clas', 'det', 'res', 'seg'])
# Data
parser.add_argument('--datasets', type=dict, default={})

@ -60,7 +60,7 @@ download_path: ./test_tipc/data/
num_epochs: 5
train_batch_size: 4
save_interval_epochs: 3
save_interval_epochs: 5
log_interval_steps: 50
save_dir: ./test_tipc/output/cd/
learning_rate: 0.01

@ -1,4 +1,4 @@
# Basic configurations of BIT with AirChange dataset
# Configurations of BIT with AirChange dataset
_base_: ../_base_/airchange.yaml

@ -1,4 +1,4 @@
# Basic configurations of BIT with LEVIR-CD dataset
# Configurations of BIT with LEVIR-CD dataset
_base_: ../_base_/levircd.yaml

@ -6,7 +6,7 @@ use_gpu:null|null
--precision:null
--num_epochs:lite_train_lite_infer=5|lite_train_whole_infer=5|whole_train_whole_infer=10
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=4
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=8
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/cd/bit/bit_airchange.yaml|lite_train_whole_infer=./test_tipc/configs/cd/bit/bit_airchange.yaml|whole_train_whole_infer=./test_tipc/configs/cd/bit/bit_levircd.yaml
train_model_name:best_model

@ -0,0 +1,8 @@
# Configurations of CDNet with AirChange dataset
_base_: ../_base_/airchange.yaml
save_dir: ./test_tipc/output/cd/cdnet/
model: !Node
type: CDNet

@ -0,0 +1,8 @@
# Configurations of cdnet with LEVIR-CD dataset
_base_: ../_base_/levircd.yaml
save_dir: ./test_tipc/output/cd/cdnet/
model: !Node
type: CDNet

@ -0,0 +1,53 @@
===========================train_params===========================
model_name:cd:cdnet
python:python
gpu_list:0|0,1
use_gpu:null|null
--precision:null
--num_epochs:lite_train_lite_infer=5|lite_train_whole_infer=5|whole_train_whole_infer=10
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=8
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/cd/cdnet/cdnet_airchange.yaml|lite_train_whole_infer=./test_tipc/configs/cd/cdnet/cdnet_airchange.yaml|whole_train_whole_infer=./test_tipc/configs/cd/cdnet/cdnet_levircd.yaml
train_model_name:best_model
null:null
##
trainer:norm
norm_train:test_tipc/run_task.py train cd
pact_train:null
fpgm_train:null
distill_train:null
null:null
null:null
##
===========================eval_params===========================
eval:null
null:null
##
===========================export_params===========================
--save_dir:adaptive
--model_dir:adaptive
--fixed_input_shape:[-1,3,256,256]
norm_export:deploy/export/export_model.py
quant_export:null
fpgm_export:null
distill_export:null
export1:null
export2:null
===========================infer_params===========================
infer_model:null
infer_export:null
infer_quant:False
inference:test_tipc/infer.py
--device:cpu|gpu
--enable_mkldnn:True
--cpu_threads:6
--batch_size:1
--use_trt:False
--precision:fp32
--model_dir:null
--config:null
--save_log_path:null
--benchmark:True
--model_name:cdnet
null:null

@ -0,0 +1,8 @@
# Configurations of ChangeFormer with AirChange dataset
_base_: ../_base_/airchange.yaml
save_dir: ./test_tipc/output/cd/changeformer/
model: !Node
type: ChangeFormer

@ -0,0 +1,8 @@
# Configurations of ChangeFormer with LEVIR-CD dataset
_base_: ../_base_/levircd.yaml
save_dir: ./test_tipc/output/cd/changeformer/
model: !Node
type: ChangeFormer

@ -6,14 +6,14 @@ use_gpu:null|null
--precision:null
--num_epochs:lite_train_lite_infer=5|lite_train_whole_infer=5|whole_train_whole_infer=10
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=4
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=8
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/cd/changeformer/changeformer_airchange.yaml|lite_train_whole_infer=./test_tipc/configs/cd/changeformer/changeformer_airchange.yaml|whole_train_whole_infer=./test_tipc/configs/cd/changeformer/changeformer_levircd.yaml
train_model_name:best_model
train_infer_file_list:./test_tipc/data/airchange/:./test_tipc/data/airchange/eval.txt
null:null
##
trainer:norm
norm_train:test_tipc/run_task.py train cd --config ./test_tipc/configs/cd/changeformer/changeformer.yaml
norm_train:test_tipc/run_task.py train cd
pact_train:null
fpgm_train:null
distill_train:null
@ -27,7 +27,7 @@ null:null
===========================export_params===========================
--save_dir:adaptive
--model_dir:adaptive
--fixed_input_shape:[1,3,256,256]
--fixed_input_shape:[-1,3,256,256]
norm_export:deploy/export/export_model.py
quant_export:null
fpgm_export:null
@ -46,7 +46,7 @@ inference:test_tipc/infer.py
--use_trt:False
--precision:fp32
--model_dir:null
--file_list:null:null
--config:null
--save_log_path:null
--benchmark:True
--model_name:changeformer

@ -0,0 +1,8 @@
# Configurations of DSAMNet with AirChange dataset
_base_: ../_base_/airchange.yaml
save_dir: ./test_tipc/output/cd/dsamnet/
model: !Node
type: DSAMNet

@ -0,0 +1,8 @@
# Configurations of DSAMNet with LEVIR-CD dataset
_base_: ../_base_/levircd.yaml
save_dir: ./test_tipc/output/cd/dsamnet/
model: !Node
type: DSAMNet

@ -0,0 +1,53 @@
===========================train_params===========================
model_name:cd:dsamnet
python:python
gpu_list:0|0,1
use_gpu:null|null
--precision:null
--num_epochs:lite_train_lite_infer=5|lite_train_whole_infer=5|whole_train_whole_infer=10
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=8
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/cd/dsamnet/dsamnet_airchange.yaml|lite_train_whole_infer=./test_tipc/configs/cd/dsamnet/dsamnet_airchange.yaml|whole_train_whole_infer=./test_tipc/configs/cd/dsamnet/dsamnet_levircd.yaml
train_model_name:best_model
null:null
##
trainer:norm
norm_train:test_tipc/run_task.py train cd
pact_train:null
fpgm_train:null
distill_train:null
null:null
null:null
##
===========================eval_params===========================
eval:null
null:null
##
===========================export_params===========================
--save_dir:adaptive
--model_dir:adaptive
--fixed_input_shape:[-1,3,256,256]
norm_export:deploy/export/export_model.py
quant_export:null
fpgm_export:null
distill_export:null
export1:null
export2:null
===========================infer_params===========================
infer_model:null
infer_export:null
infer_quant:False
inference:test_tipc/infer.py
--device:cpu|gpu
--enable_mkldnn:True
--cpu_threads:6
--batch_size:1
--use_trt:False
--precision:fp32
--model_dir:null
--config:null
--save_log_path:null
--benchmark:True
--model_name:dsamnet
null:null

@ -0,0 +1,8 @@
# Configurations of DSIFN with AirChange dataset
_base_: ../_base_/airchange.yaml
save_dir: ./test_tipc/output/cd/dsifn/
model: !Node
type: DSIFN

@ -0,0 +1,8 @@
# Configurations of DSIFN with LEVIR-CD dataset
_base_: ../_base_/levircd.yaml
save_dir: ./test_tipc/output/cd/dsifn/
model: !Node
type: DSIFN

@ -0,0 +1,53 @@
===========================train_params===========================
model_name:cd:dsifn
python:python
gpu_list:0|0,1
use_gpu:null|null
--precision:null
--num_epochs:lite_train_lite_infer=5|lite_train_whole_infer=5|whole_train_whole_infer=10
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=8
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/cd/dsifn/dsifn_airchange.yaml|lite_train_whole_infer=./test_tipc/configs/cd/dsifn/dsifn_airchange.yaml|whole_train_whole_infer=./test_tipc/configs/cd/dsifn/dsifn_levircd.yaml
train_model_name:best_model
null:null
##
trainer:norm
norm_train:test_tipc/run_task.py train cd
pact_train:null
fpgm_train:null
distill_train:null
null:null
null:null
##
===========================eval_params===========================
eval:null
null:null
##
===========================export_params===========================
--save_dir:adaptive
--model_dir:adaptive
--fixed_input_shape:[-1,3,256,256]
norm_export:deploy/export/export_model.py
quant_export:null
fpgm_export:null
distill_export:null
export1:null
export2:null
===========================infer_params===========================
infer_model:null
infer_export:null
infer_quant:False
inference:test_tipc/infer.py
--device:cpu|gpu
--enable_mkldnn:True
--cpu_threads:6
--batch_size:1
--use_trt:False
--precision:fp32
--model_dir:null
--config:null
--save_log_path:null
--benchmark:True
--model_name:dsifn
null:null

@ -0,0 +1,8 @@
# Configurations of FC-EF with AirChange dataset
_base_: ../_base_/airchange.yaml
save_dir: ./test_tipc/output/cd/fc_ef/
model: !Node
type: FCEarlyFusion

@ -0,0 +1,8 @@
# Configurations of FC-EF with LEVIR-CD dataset
_base_: ../_base_/levircd.yaml
save_dir: ./test_tipc/output/cd/fc_ef/
model: !Node
type: FCEarlyFusion

@ -0,0 +1,53 @@
===========================train_params===========================
model_name:cd:fc_ef
python:python
gpu_list:0|0,1
use_gpu:null|null
--precision:null
--num_epochs:lite_train_lite_infer=5|lite_train_whole_infer=5|whole_train_whole_infer=20
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=8
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/cd/fc_ef/fc_ef_airchange.yaml|lite_train_whole_infer=./test_tipc/configs/cd/fc_ef/fc_ef_airchange.yaml|whole_train_whole_infer=./test_tipc/configs/cd/fc_ef/fc_ef_levircd.yaml
train_model_name:best_model
null:null
##
trainer:norm
norm_train:test_tipc/run_task.py train cd
pact_train:null
fpgm_train:null
distill_train:null
null:null
null:null
##
===========================eval_params===========================
eval:null
null:null
##
===========================export_params===========================
--save_dir:adaptive
--model_dir:adaptive
--fixed_input_shape:[-1,3,256,256]
norm_export:deploy/export/export_model.py
quant_export:null
fpgm_export:null
distill_export:null
export1:null
export2:null
===========================infer_params===========================
infer_model:null
infer_export:null
infer_quant:False
inference:test_tipc/infer.py
--device:cpu|gpu
--enable_mkldnn:True
--cpu_threads:6
--batch_size:1
--use_trt:False
--precision:fp32
--model_dir:null
--config:null
--save_log_path:null
--benchmark:True
--model_name:fc_ef
null:null

@ -0,0 +1,8 @@
# Configurations of FC-Siam-conc with AirChange dataset
_base_: ../_base_/airchange.yaml
save_dir: ./test_tipc/output/cd/fc_siam_conc/
model: !Node
type: FCSiamConc

@ -0,0 +1,8 @@
# Configurations of FC-Siam-conc with LEVIR-CD dataset
_base_: ../_base_/levircd.yaml
save_dir: ./test_tipc/output/cd/fc_siam_conc/
model: !Node
type: FCSiamConc

@ -0,0 +1,53 @@
===========================train_params===========================
model_name:cd:fc_siam_conc
python:python
gpu_list:0|0,1
use_gpu:null|null
--precision:null
--num_epochs:lite_train_lite_infer=5|lite_train_whole_infer=5|whole_train_whole_infer=20
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=8
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/cd/fc_siam_conc/fc_siam_conc_airchange.yaml|lite_train_whole_infer=./test_tipc/configs/cd/fc_siam_conc/fc_siam_conc_airchange.yaml|whole_train_whole_infer=./test_tipc/configs/cd/fc_siam_conc/fc_siam_conc_levircd.yaml
train_model_name:best_model
null:null
##
trainer:norm
norm_train:test_tipc/run_task.py train cd
pact_train:null
fpgm_train:null
distill_train:null
null:null
null:null
##
===========================eval_params===========================
eval:null
null:null
##
===========================export_params===========================
--save_dir:adaptive
--model_dir:adaptive
--fixed_input_shape:[-1,3,256,256]
norm_export:deploy/export/export_model.py
quant_export:null
fpgm_export:null
distill_export:null
export1:null
export2:null
===========================infer_params===========================
infer_model:null
infer_export:null
infer_quant:False
inference:test_tipc/infer.py
--device:cpu|gpu
--enable_mkldnn:True
--cpu_threads:6
--batch_size:1
--use_trt:False
--precision:fp32
--model_dir:null
--config:null
--save_log_path:null
--benchmark:True
--model_name:fc_siam_conc
null:null

@ -0,0 +1,8 @@
# Configurations of FC-Siam-diff with AirChange dataset
_base_: ../_base_/airchange.yaml
save_dir: ./test_tipc/output/cd/fc_siam_diff/
model: !Node
type: FCSiamDiff

@ -0,0 +1,8 @@
# Configurations of FC-Siam-diff with LEVIR-CD dataset
_base_: ../_base_/levircd.yaml
save_dir: ./test_tipc/output/cd/fc_siam_diff/
model: !Node
type: FCSiamDiff

@ -0,0 +1,53 @@
===========================train_params===========================
model_name:cd:fc_siam_diff
python:python
gpu_list:0|0,1
use_gpu:null|null
--precision:null
--num_epochs:lite_train_lite_infer=5|lite_train_whole_infer=5|whole_train_whole_infer=20
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=8
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/cd/fc_siam_diff/fc_siam_diff_airchange.yaml|lite_train_whole_infer=./test_tipc/configs/cd/fc_siam_diff/fc_siam_diff_airchange.yaml|whole_train_whole_infer=./test_tipc/configs/cd/fc_siam_diff/fc_siam_diff_levircd.yaml
train_model_name:best_model
null:null
##
trainer:norm
norm_train:test_tipc/run_task.py train cd
pact_train:null
fpgm_train:null
distill_train:null
null:null
null:null
##
===========================eval_params===========================
eval:null
null:null
##
===========================export_params===========================
--save_dir:adaptive
--model_dir:adaptive
--fixed_input_shape:[-1,3,256,256]
norm_export:deploy/export/export_model.py
quant_export:null
fpgm_export:null
distill_export:null
export1:null
export2:null
===========================infer_params===========================
infer_model:null
infer_export:null
infer_quant:False
inference:test_tipc/infer.py
--device:cpu|gpu
--enable_mkldnn:True
--cpu_threads:6
--batch_size:1
--use_trt:False
--precision:fp32
--model_dir:null
--config:null
--save_log_path:null
--benchmark:True
--model_name:fc_siam_diff
null:null

@ -0,0 +1,13 @@
# Configurations of FCCDN with AirChange dataset
_base_: ../_base_/airchange.yaml
save_dir: ./test_tipc/output/cd/fccdn/
model: !Node
type: FCCDN
learning_rate: 0.07
lr_decay_power: 0.6
log_interval_steps: 100
save_interval_epochs: 3

@ -0,0 +1,8 @@
# Configurations of FCCDN with LEVIR-CD dataset
_base_: ../_base_/levircd.yaml
save_dir: ./test_tipc/output/cd/fccdn/
model: !Node
type: FCCDN

@ -1,19 +1,19 @@
===========================train_params===========================
model_name:cd:fccdn
python:python
gpu_list:0
gpu_list:0|0,1
use_gpu:null|null
--precision:null
--num_epochs:lite_train_lite_infer=15|lite_train_whole_infer=15|whole_train_whole_infer=15
--num_epochs:lite_train_lite_infer=5|lite_train_whole_infer=5|whole_train_whole_infer=10
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=4
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=8
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/cd/fccdn/fccdn_airchange.yaml|lite_train_whole_infer=./test_tipc/configs/cd/fccdn/fccdn_airchange.yaml|whole_train_whole_infer=./test_tipc/configs/cd/fccdn/fccdn_levircd.yaml
train_model_name:best_model
train_infer_file_list:./test_tipc/data/airchange/:./test_tipc/data/airchange/eval.txt
null:null
##
trainer:norm
norm_train:test_tipc/run_task.py train cd --config ./test_tipc/configs/cd/fccdn/fccdn.yaml
norm_train:test_tipc/run_task.py train cd
pact_train:null
fpgm_train:null
distill_train:null
@ -27,7 +27,7 @@ null:null
===========================export_params===========================
--save_dir:adaptive
--model_dir:adaptive
--fixed_input_shape:[1,3,256,256]
--fixed_input_shape:[-1,3,256,256]
norm_export:deploy/export/export_model.py
quant_export:null
fpgm_export:null
@ -46,7 +46,7 @@ inference:test_tipc/infer.py
--use_trt:False
--precision:fp32
--model_dir:null
--file_list:null:null
--config:null
--save_log_path:null
--benchmark:True
--model_name:fccdn

@ -0,0 +1,8 @@
# Configurations of SNUNet with AirChange dataset
_base_: ../_base_/airchange.yaml
save_dir: ./test_tipc/output/cd/snunet/
model: !Node
type: SNUNet

@ -0,0 +1,8 @@
# Configurations of SNUNet with LEVIR-CD dataset
_base_: ../_base_/levircd.yaml
save_dir: ./test_tipc/output/cd/snunet/
model: !Node
type: SNUNet

@ -0,0 +1,53 @@
===========================train_params===========================
model_name:cd:snunet
python:python
gpu_list:0|0,1
use_gpu:null|null
--precision:null
--num_epochs:lite_train_lite_infer=5|lite_train_whole_infer=5|whole_train_whole_infer=10
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=8
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/cd/snunet/snunet_airchange.yaml|lite_train_whole_infer=./test_tipc/configs/cd/snunet/snunet_airchange.yaml|whole_train_whole_infer=./test_tipc/configs/cd/snunet/snunet_levircd.yaml
train_model_name:best_model
null:null
##
trainer:norm
norm_train:test_tipc/run_task.py train cd
pact_train:null
fpgm_train:null
distill_train:null
null:null
null:null
##
===========================eval_params===========================
eval:null
null:null
##
===========================export_params===========================
--save_dir:adaptive
--model_dir:adaptive
--fixed_input_shape:[-1,3,256,256]
norm_export:deploy/export/export_model.py
quant_export:null
fpgm_export:null
distill_export:null
export1:null
export2:null
===========================infer_params===========================
infer_model:null
infer_export:null
infer_quant:False
inference:test_tipc/infer.py
--device:cpu|gpu
--enable_mkldnn:True
--cpu_threads:6
--batch_size:1
--use_trt:False
--precision:fp32
--model_dir:null
--config:null
--save_log_path:null
--benchmark:True
--model_name:snunet
null:null

@ -0,0 +1,8 @@
# Configurations of STANet with AirChange dataset
_base_: ../_base_/airchange.yaml
save_dir: ./test_tipc/output/cd/stanet/
model: !Node
type: STANet

@ -0,0 +1,8 @@
# Configurations of STANet with LEVIR-CD dataset
_base_: ../_base_/levircd.yaml
save_dir: ./test_tipc/output/cd/stanet/
model: !Node
type: STANet

@ -0,0 +1,53 @@
===========================train_params===========================
model_name:cd:stanet
python:python
gpu_list:0|0,1
use_gpu:null|null
--precision:null
--num_epochs:lite_train_lite_infer=5|lite_train_whole_infer=5|whole_train_whole_infer=10
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=8
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/cd/stanet/stanet_airchange.yaml|lite_train_whole_infer=./test_tipc/configs/cd/stanet/stanet_airchange.yaml|whole_train_whole_infer=./test_tipc/configs/cd/stanet/stanet_levircd.yaml
train_model_name:best_model
null:null
##
trainer:norm
norm_train:test_tipc/run_task.py train cd
pact_train:null
fpgm_train:null
distill_train:null
null:null
null:null
##
===========================eval_params===========================
eval:null
null:null
##
===========================export_params===========================
--save_dir:adaptive
--model_dir:adaptive
--fixed_input_shape:[-1,3,256,256]
norm_export:deploy/export/export_model.py
quant_export:null
fpgm_export:null
distill_export:null
export1:null
export2:null
===========================infer_params===========================
infer_model:null
infer_export:null
infer_quant:False
inference:test_tipc/infer.py
--device:cpu|gpu
--enable_mkldnn:True
--cpu_threads:6
--batch_size:1
--use_trt:False
--precision:fp32
--model_dir:null
--config:null
--save_log_path:null
--benchmark:True
--model_name:stanet
null:null

@ -62,7 +62,7 @@ download_path: ./test_tipc/data/
num_epochs: 2
train_batch_size: 16
save_interval_epochs: 5
save_interval_epochs: 10
log_interval_steps: 50
save_dir: ./test_tipc/output/clas/
learning_rate: 0.01

@ -0,0 +1,10 @@
# Configurations of HRNet with UCMerced dataset
_base_: ../_base_/ucmerced.yaml
save_dir: ./test_tipc/output/clas/hrnet/
model: !Node
type: HRNet_W18_C
args:
num_classes: 21

@ -8,12 +8,12 @@ use_gpu:null|null
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=16|lite_train_whole_infer=16|whole_train_whole_infer=16
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/clas/hrnet/hrnet_ucmerced.yaml|lite_train_whole_infer=./test_tipc/configs/clas/hrnet/hrnet_ucmerced.yaml|whole_train_whole_infer=./test_tipc/configs/clas/hrnet/hrnet_ucmerced.yaml
train_model_name:best_model
train_infer_file_list:./test_tipc/data/ucmerced/:./test_tipc/data/ucmerced/val.txt
null:null
##
trainer:norm
norm_train:test_tipc/run_task.py train clas --config ./test_tipc/configs/clas/hrnet/hrnet.yaml
norm_train:test_tipc/run_task.py train clas
pact_train:null
fpgm_train:null
distill_train:null
@ -46,7 +46,7 @@ inference:test_tipc/infer.py
--use_trt:False
--precision:fp32
--model_dir:null
--file_list:null:null
--config:null
--save_log_path:null
--benchmark:True
--model_name:hrnet

@ -0,0 +1,10 @@
# Configurations of MobileNetV3 with UCMerced dataset
_base_: ../_base_/ucmerced.yaml
save_dir: ./test_tipc/output/clas/mobilenetv3/
model: !Node
type: MobileNetV3_small_x1_0
args:
num_classes: 21

@ -0,0 +1,53 @@
===========================train_params===========================
model_name:clas:mobilenetv3
python:python
gpu_list:0|0,1
use_gpu:null|null
--precision:null
--num_epochs:lite_train_lite_infer=3|lite_train_whole_infer=3|whole_train_whole_infer=10
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=16|lite_train_whole_infer=16|whole_train_whole_infer=16
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/clas/mobilenetv3/mobilenetv3_ucmerced.yaml|lite_train_whole_infer=./test_tipc/configs/clas/mobilenetv3/mobilenetv3_ucmerced.yaml|whole_train_whole_infer=./test_tipc/configs/clas/mobilenetv3/mobilenetv3_ucmerced.yaml
train_model_name:best_model
null:null
##
trainer:norm
norm_train:test_tipc/run_task.py train clas
pact_train:null
fpgm_train:null
distill_train:null
null:null
null:null
##
===========================eval_params===========================
eval:null
null:null
##
===========================export_params===========================
--save_dir:adaptive
--model_dir:adaptive
--fixed_input_shape:[-1,3,256,256]
norm_export:deploy/export/export_model.py
quant_export:null
fpgm_export:null
distill_export:null
export1:null
export2:null
===========================infer_params===========================
infer_model:null
infer_export:null
infer_quant:False
inference:test_tipc/infer.py
--device:cpu|gpu
--enable_mkldnn:True
--cpu_threads:6
--batch_size:1
--use_trt:False
--precision:fp32
--model_dir:null
--config:null
--save_log_path:null
--benchmark:True
--model_name:mobilenetv3
null:null

@ -0,0 +1,10 @@
# Configurations of ResNet50-vd with UCMerced dataset
_base_: ../_base_/ucmerced.yaml
save_dir: ./test_tipc/output/clas/resnet50_vd/
model: !Node
type: ResNet50_vd
args:
num_classes: 21

@ -0,0 +1,53 @@
===========================train_params===========================
model_name:clas:resnet50_vd
python:python
gpu_list:0|0,1
use_gpu:null|null
--precision:null
--num_epochs:lite_train_lite_infer=3|lite_train_whole_infer=3|whole_train_whole_infer=10
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=16|lite_train_whole_infer=16|whole_train_whole_infer=16
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/clas/resnet50_vd/resnet50_vd_ucmerced.yaml|lite_train_whole_infer=./test_tipc/configs/clas/resnet50_vd/resnet50_vd_ucmerced.yaml|whole_train_whole_infer=./test_tipc/configs/clas/resnet50_vd/resnet50_vd_ucmerced.yaml
train_model_name:best_model
null:null
##
trainer:norm
norm_train:test_tipc/run_task.py train clas
pact_train:null
fpgm_train:null
distill_train:null
null:null
null:null
##
===========================eval_params===========================
eval:null
null:null
##
===========================export_params===========================
--save_dir:adaptive
--model_dir:adaptive
--fixed_input_shape:[-1,3,256,256]
norm_export:deploy/export/export_model.py
quant_export:null
fpgm_export:null
distill_export:null
export1:null
export2:null
===========================infer_params===========================
infer_model:null
infer_export:null
infer_quant:False
inference:test_tipc/infer.py
--device:cpu|gpu
--enable_mkldnn:True
--cpu_threads:6
--batch_size:1
--use_trt:False
--precision:fp32
--model_dir:null
--config:null
--save_log_path:null
--benchmark:True
--model_name:resnet50_vd
null:null

@ -0,0 +1,72 @@
# Basic configurations of RSOD dataset
datasets:
train: !Node
type: VOCDetDataset
args:
data_dir: ./test_tipc/data/rsod/
file_list: ./test_tipc/data/rsod/train.txt
label_list: ./test_tipc/data/rsod/labels.txt
shuffle: True
eval: !Node
type: VOCDetDataset
args:
data_dir: ./test_tipc/data/rsod/
file_list: ./test_tipc/data/rsod/val.txt
label_list: ./test_tipc/data/rsod/labels.txt
shuffle: False
transforms:
train:
- !Node
type: DecodeImg
- !Node
type: RandomDistort
- !Node
type: RandomExpand
- !Node
type: RandomCrop
- !Node
type: RandomHorizontalFlip
- !Node
type: BatchRandomResize
args:
target_sizes: [320, 352, 384, 416, 448, 480, 512, 544, 576, 608]
interp: RANDOM
- !Node
type: Normalize
args:
mean: [0.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
- !Node
type: ArrangeDetector
args: ['train']
eval:
- !Node
type: DecodeImg
- !Node
type: Resize
args:
target_size: 608
interp: CUBIC
- !Node
type: Normalize
args:
mean: [0.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
- !Node
type: ArrangeDetector
args: ['eval']
download_on: False
num_epochs: 10
train_batch_size: 4
save_interval_epochs: 10
log_interval_steps: 4
save_dir: ./test_tipc/output/det/
learning_rate: 0.0001
use_vdl: False
resume_checkpoint: ''
train:
pretrain_weights: COCO
warmup_steps: 0
warmup_start_lr: 0.0

@ -62,10 +62,10 @@ download_path: ./test_tipc/data/
num_epochs: 10
train_batch_size: 4
save_interval_epochs: 5
save_interval_epochs: 10
log_interval_steps: 4
save_dir: ./test_tipc/output/det/
learning_rate: 0.0005
learning_rate: 0.0001
use_vdl: False
resume_checkpoint: ''
train:

@ -0,0 +1,10 @@
# Configurations of Faster R-CNN with RSOD dataset
_base_: ../_base_/rsod.yaml
save_dir: ./test_tipc/output/det/faster_rcnn/
model: !Node
type: FasterRCNN
args:
num_classes: 4

@ -0,0 +1,10 @@
# Configurations of Faster R-CNN with SARShip dataset
_base_: ../_base_/sarship.yaml
save_dir: ./test_tipc/output/det/faster_rcnn/
model: !Node
type: FasterRCNN
args:
num_classes: 1

@ -0,0 +1,53 @@
===========================train_params===========================
model_name:det:faster_rcnn
python:python
gpu_list:0|0,1
use_gpu:null|null
--precision:null
--num_epochs:lite_train_lite_infer=3|lite_train_whole_infer=3|whole_train_whole_infer=10
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=4
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/det/faster_rcnn/faster_rcnn_sarship.yaml|lite_train_whole_infer=./test_tipc/configs/det/faster_rcnn/faster_rcnn_sarship.yaml|whole_train_whole_infer=./test_tipc/configs/det/faster_rcnn/faster_rcnn_rsod.yaml
train_model_name:best_model
null:null
##
trainer:norm
norm_train:test_tipc/run_task.py train det
pact_train:null
fpgm_train:null
distill_train:null
null:null
null:null
##
===========================eval_params===========================
eval:null
null:null
##
===========================export_params===========================
--save_dir:adaptive
--model_dir:adaptive
--fixed_input_shape:[-1,3,608,608]
norm_export:deploy/export/export_model.py
quant_export:null
fpgm_export:null
distill_export:null
export1:null
export2:null
===========================infer_params===========================
infer_model:null
infer_export:null
infer_quant:False
inference:test_tipc/infer.py
--device:cpu|gpu
--enable_mkldnn:True
--cpu_threads:6
--batch_size:1
--use_trt:False
--precision:fp32
--model_dir:null
--config:null
--save_log_path:null
--benchmark:True
--model_name:faster_rcnn
null:null

@ -0,0 +1,10 @@
# Configurations of PP-YOLO with RSOD dataset
_base_: ../_base_/rsod.yaml
save_dir: ./test_tipc/output/det/ppyolo/
model: !Node
type: PPYOLO
args:
num_classes: 4

@ -1,4 +1,4 @@
# Basic configurations of PP-YOLO
# Configurations of PP-YOLO with SARShip dataset
_base_: ../_base_/sarship.yaml

@ -4,16 +4,16 @@ python:python
gpu_list:0|0,1
use_gpu:null|null
--precision:null
--num_epochs:lite_train_lite_infer=3|lite_train_whole_infer=3|whole_train_whole_infer=10
--num_epochs:lite_train_lite_infer=3|lite_train_whole_infer=3|whole_train_whole_infer=20
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=4
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/det/ppyolo/ppyolo_sarship.yaml|lite_train_whole_infer=./test_tipc/configs/det/ppyolo/ppyolo_sarship.yaml|whole_train_whole_infer=./test_tipc/configs/det/ppyolo/ppyolo_rsod.yaml
train_model_name:best_model
train_infer_file_list:./test_tipc/data/sarship/:./test_tipc/data/sarship/eval.txt
null:null
##
trainer:norm
norm_train:test_tipc/run_task.py train det --config ./test_tipc/configs/det/ppyolo/ppyolo.yaml
norm_train:test_tipc/run_task.py train det
pact_train:null
fpgm_train:null
distill_train:null
@ -46,7 +46,7 @@ inference:test_tipc/infer.py
--use_trt:False
--precision:fp32
--model_dir:null
--file_list:null:null
--config:null
--save_log_path:null
--benchmark:True
--model_name:ppyolo

@ -0,0 +1,10 @@
# Configurations of PP-YOLO Tiny with RSOD dataset
_base_: ../_base_/rsod.yaml
save_dir: ./test_tipc/output/det/ppyolo_tiny/
model: !Node
type: PPYOLOTiny
args:
num_classes: 4

@ -0,0 +1,10 @@
# Configurations of PP-YOLO Tiny with SARShip dataset
_base_: ../_base_/sarship.yaml
save_dir: ./test_tipc/output/det/ppyolo_tiny/
model: !Node
type: PPYOLOTiny
args:
num_classes: 1

@ -0,0 +1,53 @@
===========================train_params===========================
model_name:det:ppyolo_tiny
python:python
gpu_list:0|0,1
use_gpu:null|null
--precision:null
--num_epochs:lite_train_lite_infer=3|lite_train_whole_infer=3|whole_train_whole_infer=20
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=4
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/det/ppyolo_tiny/ppyolo_tiny_sarship.yaml|lite_train_whole_infer=./test_tipc/configs/det/ppyolo_tiny/ppyolo_tiny_sarship.yaml|whole_train_whole_infer=./test_tipc/configs/det/ppyolo_tiny/ppyolo_tiny_rsod.yaml
train_model_name:best_model
null:null
##
trainer:norm
norm_train:test_tipc/run_task.py train det
pact_train:null
fpgm_train:null
distill_train:null
null:null
null:null
##
===========================eval_params===========================
eval:null
null:null
##
===========================export_params===========================
--save_dir:adaptive
--model_dir:adaptive
--fixed_input_shape:[-1,3,608,608]
norm_export:deploy/export/export_model.py
quant_export:null
fpgm_export:null
distill_export:null
export1:null
export2:null
===========================infer_params===========================
infer_model:null
infer_export:null
infer_quant:False
inference:test_tipc/infer.py
--device:cpu|gpu
--enable_mkldnn:True
--cpu_threads:6
--batch_size:1
--use_trt:False
--precision:fp32
--model_dir:null
--config:null
--save_log_path:null
--benchmark:True
--model_name:ppyolo_tiny
null:null

@ -0,0 +1,10 @@
# Configurations of PP-YOLOv2 with RSOD dataset
_base_: ../_base_/rsod.yaml
save_dir: ./test_tipc/output/det/ppyolov2/
model: !Node
type: PPYOLOv2
args:
num_classes: 4

@ -0,0 +1,10 @@
# Configurations of PP-YOLOv2 with SARShip dataset
_base_: ../_base_/sarship.yaml
save_dir: ./test_tipc/output/det/ppyolov2/
model: !Node
type: PPYOLOv2
args:
num_classes: 1

@ -0,0 +1,53 @@
===========================train_params===========================
model_name:det:ppyolov2
python:python
gpu_list:0|0,1
use_gpu:null|null
--precision:null
--num_epochs:lite_train_lite_infer=3|lite_train_whole_infer=3|whole_train_whole_infer=20
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=4
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/det/ppyolov2/ppyolov2_sarship.yaml|lite_train_whole_infer=./test_tipc/configs/det/ppyolov2/ppyolov2_sarship.yaml|whole_train_whole_infer=./test_tipc/configs/det/ppyolov2/ppyolov2_rsod.yaml
train_model_name:best_model
null:null
##
trainer:norm
norm_train:test_tipc/run_task.py train det
pact_train:null
fpgm_train:null
distill_train:null
null:null
null:null
##
===========================eval_params===========================
eval:null
null:null
##
===========================export_params===========================
--save_dir:adaptive
--model_dir:adaptive
--fixed_input_shape:[-1,3,608,608]
norm_export:deploy/export/export_model.py
quant_export:null
fpgm_export:null
distill_export:null
export1:null
export2:null
===========================infer_params===========================
infer_model:null
infer_export:null
infer_quant:False
inference:test_tipc/infer.py
--device:cpu|gpu
--enable_mkldnn:True
--cpu_threads:6
--batch_size:1
--use_trt:False
--precision:fp32
--model_dir:null
--config:null
--save_log_path:null
--benchmark:True
--model_name:ppyolov2
null:null

@ -0,0 +1,53 @@
===========================train_params===========================
model_name:det:yolov3
python:python
gpu_list:0|0,1
use_gpu:null|null
--precision:null
--num_epochs:lite_train_lite_infer=3|lite_train_whole_infer=3|whole_train_whole_infer=10
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=4
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/det/yolov3/yolov3_sarship.yaml|lite_train_whole_infer=./test_tipc/configs/det/yolov3/yolov3_sarship.yaml|whole_train_whole_infer=./test_tipc/configs/det/yolov3/yolov3_rsod.yaml
train_model_name:best_model
null:null
##
trainer:norm
norm_train:test_tipc/run_task.py train det
pact_train:null
fpgm_train:null
distill_train:null
null:null
null:null
##
===========================eval_params===========================
eval:null
null:null
##
===========================export_params===========================
--save_dir:adaptive
--model_dir:adaptive
--fixed_input_shape:[-1,3,608,608]
norm_export:deploy/export/export_model.py
quant_export:null
fpgm_export:null
distill_export:null
export1:null
export2:null
===========================infer_params===========================
infer_model:null
infer_export:null
infer_quant:False
inference:test_tipc/infer.py
--device:cpu|gpu
--enable_mkldnn:True
--cpu_threads:6
--batch_size:1
--use_trt:False
--precision:fp32
--model_dir:null
--config:null
--save_log_path:null
--benchmark:True
--model_name:yolov3
null:null

@ -0,0 +1,10 @@
# Configurations of YOLOv3 with RSOD dataset
_base_: ../_base_/rsod.yaml
save_dir: ./test_tipc/output/det/yolov3/
model: !Node
type: YOLOv3
args:
num_classes: 4

@ -0,0 +1,10 @@
# Configurations of YOLOv3 with SARShip dataset
_base_: ../_base_/sarship.yaml
save_dir: ./test_tipc/output/det/yolov3/
model: !Node
type: YOLOv3
args:
num_classes: 1

@ -0,0 +1,72 @@
# Basic configurations of RSSR dataset
datasets:
train: !Node
type: ResDataset
args:
data_dir: ./test_tipc/data/rssr/
file_list: ./test_tipc/data/rssr/train.txt
num_workers: 0
shuffle: True
sr_factor: 4
eval: !Node
type: ResDataset
args:
data_dir: ./test_tipc/data/rssr/
file_list: ./test_tipc/data/rssr/val.txt
num_workers: 0
shuffle: False
sr_factor: 4
transforms:
train:
- !Node
type: DecodeImg
- !Node
type: RandomCrop
args:
crop_size: 32
- !Node
type: RandomHorizontalFlip
args:
prob: 0.5
- !Node
type: RandomVerticalFlip
args:
prob: 0.5
- !Node
type: Normalize
args:
mean: [0.0, 0.0, 0.0]
std: [1.0, 1.0, 1.0]
- !Node
type: ArrangeRestorer
args: ['train']
eval:
- !Node
type: DecodeImg
- !Node
type: Resize
args:
target_size: 256
- !Node
type: Normalize
args:
mean: [0.0, 0.0, 0.0]
std: [1.0, 1.0, 1.0]
- !Node
type: ArrangeRestorer
args: ['eval']
download_on: False
download_url: https://paddlers.bj.bcebos.com/datasets/rssr.zip
download_path: ./test_tipc/data/
num_epochs: 10
train_batch_size: 4
save_interval_epochs: 10
log_interval_steps: 10
save_dir: ./test_tipc/output/res/
learning_rate: 0.0005
early_stop: False
early_stop_patience: 5
use_vdl: False
resume_checkpoint: ''

@ -0,0 +1,8 @@
# Configurations of DRN with RSSR dataset
_base_: ../_base_/rssr.yaml
save_dir: ./test_tipc/output/res/drn/
model: !Node
type: DRN

@ -0,0 +1,53 @@
===========================train_params===========================
model_name:res:drn
python:python
gpu_list:0|0,1
use_gpu:null|null
--precision:null
--num_epochs:lite_train_lite_infer=3|lite_train_whole_infer=3|whole_train_whole_infer=20
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=4
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/res/drn/drn_rssr.yaml|lite_train_whole_infer=./test_tipc/configs/res/drn/drn_rssr.yaml|whole_train_whole_infer=./test_tipc/configs/res/drn/drn_rssr.yaml
train_model_name:best_model
null:null
##
trainer:norm
norm_train:test_tipc/run_task.py train res
pact_train:null
fpgm_train:null
distill_train:null
null:null
null:null
##
===========================eval_params===========================
eval:null
null:null
##
===========================export_params===========================
--save_dir:adaptive
--model_dir:adaptive
--fixed_input_shape:[-1,3,256,256]
norm_export:deploy/export/export_model.py
quant_export:null
fpgm_export:null
distill_export:null
export1:null
export2:null
===========================infer_params===========================
infer_model:null
infer_export:null
infer_quant:False
inference:test_tipc/infer.py
--device:cpu|gpu
--enable_mkldnn:True
--cpu_threads:6
--batch_size:1
--use_trt:False
--precision:fp32
--model_dir:null
--config:null
--save_log_path:null
--benchmark:True
--model_name:drn
null:null

@ -0,0 +1,8 @@
# Configurations of ESRGAN with RSSR dataset
_base_: ../_base_/rssr.yaml
save_dir: ./test_tipc/output/res/esrgan/
model: !Node
type: ESRGAN

@ -0,0 +1,53 @@
===========================train_params===========================
model_name:res:esrgan
python:python
gpu_list:0|0,1
use_gpu:null|null
--precision:null
--num_epochs:lite_train_lite_infer=3|lite_train_whole_infer=3|whole_train_whole_infer=20
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=4
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/res/esrgan/esrgan_rssr.yaml|lite_train_whole_infer=./test_tipc/configs/res/esrgan/esrgan_rssr.yaml|whole_train_whole_infer=./test_tipc/configs/res/esrgan/esrgan_rssr.yaml
train_model_name:best_model
null:null
##
trainer:norm
norm_train:test_tipc/run_task.py train res
pact_train:null
fpgm_train:null
distill_train:null
null:null
null:null
##
===========================eval_params===========================
eval:null
null:null
##
===========================export_params===========================
--save_dir:adaptive
--model_dir:adaptive
--fixed_input_shape:[-1,3,256,256]
norm_export:deploy/export/export_model.py
quant_export:null
fpgm_export:null
distill_export:null
export1:null
export2:null
===========================infer_params===========================
infer_model:null
infer_export:null
infer_quant:False
inference:test_tipc/infer.py
--device:cpu|gpu
--enable_mkldnn:True
--cpu_threads:6
--batch_size:1
--use_trt:False
--precision:fp32
--model_dir:null
--config:null
--save_log_path:null
--benchmark:True
--model_name:esrgan
null:null

@ -0,0 +1,8 @@
# Configurations of LESRCNN with RSSR dataset
_base_: ../_base_/rssr.yaml
save_dir: ./test_tipc/output/res/lesrcnn/
model: !Node
type: LESRCNN

@ -0,0 +1,53 @@
===========================train_params===========================
model_name:res:lesrcnn
python:python
gpu_list:0|0,1
use_gpu:null|null
--precision:null
--num_epochs:lite_train_lite_infer=3|lite_train_whole_infer=3|whole_train_whole_infer=20
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=4
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/res/lesrcnn/lesrcnn_rssr.yaml|lite_train_whole_infer=./test_tipc/configs/res/lesrcnn/lesrcnn_rssr.yaml|whole_train_whole_infer=./test_tipc/configs/res/lesrcnn/lesrcnn_rssr.yaml
train_model_name:best_model
null:null
##
trainer:norm
norm_train:test_tipc/run_task.py train res
pact_train:null
fpgm_train:null
distill_train:null
null:null
null:null
##
===========================eval_params===========================
eval:null
null:null
##
===========================export_params===========================
--save_dir:adaptive
--model_dir:adaptive
--fixed_input_shape:[-1,3,256,256]
norm_export:deploy/export/export_model.py
quant_export:null
fpgm_export:null
distill_export:null
export1:null
export2:null
===========================infer_params===========================
infer_model:null
infer_export:null
infer_quant:False
inference:test_tipc/infer.py
--device:cpu|gpu
--enable_mkldnn:True
--cpu_threads:6
--batch_size:1
--use_trt:False
--precision:fp32
--model_dir:null
--config:null
--save_log_path:null
--benchmark:True
--model_name:lesrcnn
null:null

@ -58,7 +58,7 @@ download_path: ./test_tipc/data/
num_epochs: 10
train_batch_size: 4
save_interval_epochs: 5
save_interval_epochs: 10
log_interval_steps: 4
save_dir: ./test_tipc/output/seg/
learning_rate: 0.001

@ -0,0 +1,11 @@
# Configurations of DeepLab V3+ with RSSeg dataset
_base_: ../_base_/rsseg.yaml
save_dir: ./test_tipc/output/seg/deeplabv3p/
model: !Node
type: DeepLabV3P
args:
in_channels: 10
num_classes: 5

@ -0,0 +1,53 @@
===========================train_params===========================
model_name:seg:deeplabv3p
python:python
gpu_list:0|0,1
use_gpu:null|null
--precision:null
--num_epochs:lite_train_lite_infer=3|lite_train_whole_infer=3|whole_train_whole_infer=30
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=4
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/seg/deeplabv3p/deeplabv3p_rsseg.yaml|lite_train_whole_infer=./test_tipc/configs/seg/deeplabv3p/deeplabv3p_rsseg.yaml|whole_train_whole_infer=./test_tipc/configs/seg/deeplabv3p/deeplabv3p_rsseg.yaml
train_model_name:best_model
null:null
##
trainer:norm
norm_train:test_tipc/run_task.py train seg
pact_train:null
fpgm_train:null
distill_train:null
null:null
null:null
##
===========================eval_params===========================
eval:null
null:null
##
===========================export_params===========================
--save_dir:adaptive
--model_dir:adaptive
--fixed_input_shape:[-1,10,512,512]
norm_export:deploy/export/export_model.py
quant_export:null
fpgm_export:null
distill_export:null
export1:null
export2:null
===========================infer_params===========================
infer_model:null
infer_export:null
infer_quant:False
inference:test_tipc/infer.py
--device:cpu|gpu
--enable_mkldnn:True
--cpu_threads:6
--batch_size:1
--use_trt:False
--precision:fp32
--model_dir:null
--config:null
--save_log_path:null
--benchmark:True
--model_name:deeplabv3p
null:null

@ -4,16 +4,16 @@ python:python
gpu_list:0|0,1
use_gpu:null|null
--precision:null
--num_epochs:lite_train_lite_infer=3|lite_train_whole_infer=3|whole_train_whole_infer=10
--num_epochs:lite_train_lite_infer=3|lite_train_whole_infer=3|whole_train_whole_infer=20
--save_dir:adaptive
--train_batch_size:lite_train_lite_infer=4|lite_train_whole_infer=4|whole_train_whole_infer=4
--model_path:null
--config:lite_train_lite_infer=./test_tipc/configs/seg/unet/unet_rsseg.yaml|lite_train_whole_infer=./test_tipc/configs/seg/unet/unet_rsseg.yaml|whole_train_whole_infer=./test_tipc/configs/seg/unet/unet_rsseg.yaml
train_model_name:best_model
train_infer_file_list:./test_tipc/data/rsseg/:./test_tipc/data/rsseg/val.txt
null:null
##
trainer:norm
norm_train:test_tipc/run_task.py train seg --config ./test_tipc/configs/seg/unet/unet.yaml
norm_train:test_tipc/run_task.py train seg
pact_train:null
fpgm_train:null
distill_train:null
@ -46,7 +46,7 @@ inference:test_tipc/infer.py
--use_trt:False
--precision:fp32
--model_dir:null
--file_list:null:null
--config:null
--save_log_path:null
--benchmark:True
--model_name:unet

@ -1,11 +0,0 @@
# Basic configurations of UNet
_base_: ../_base_/rsseg.yaml
save_dir: ./test_tipc/output/seg/unet/
model: !Node
type: UNet
args:
in_channels: 10
num_classes: 5

@ -0,0 +1,11 @@
# Configurations of UNet with RSSeg dataset
_base_: ../_base_/rsseg.yaml
save_dir: ./test_tipc/output/seg/unet/
model: !Node
type: UNet
args:
in_channels: 10
num_classes: 5

@ -6,23 +6,63 @@ Linux GPU/CPU 基础训练推理测试的主程序为`test_train_inference_pytho
- 训练相关:
| 任务类别 | 模型名称 | 单机单卡 | 单机多卡 |
| :----: | :----: | :----: | :----: |
| 变化检测 | BIT | 正常训练 | 正常训练 |
| 场景分类 | HRNet | 正常训练 | 正常训练 |
| 目标检测 | PP-YOLO | 正常训练 | 正常训练 |
| 图像分割 | UNet | 正常训练 | 正常训练 |
| 任务类别 | 模型名称 | 单机单卡 | 单机多卡 | 参考预测精度 |
| :----: | :----: | :----: | :----: | :----: |
| 变化检测 | BIT | 正常训练 | 正常训练 | IoU=71.02% |
| 变化检测 | CDNet | 正常训练 | 正常训练 | IoU=56.02% |
| 变化检测 | ChangeFormer | 正常训练 | 正常训练 | IoU=61.65% |
| 变化检测 | DSAMNet | 正常训练 | 正常训练 | IoU=69.76% |
| 变化检测 | DSIFN | 正常训练 | 正常训练 | IoU=72.88% |
| 变化检测 | SNUNet | 正常训练 | 正常训练 | IoU=68.46% |
| 变化检测 | STANet | 正常训练 | 正常训练 | IoU=65.11% |
| 变化检测 | FC-EF | 正常训练 | 正常训练 | IoU=64.22% |
| 变化检测 | FC-Siam-conc | 正常训练 | 正常训练 | IoU=65.79% |
| 变化检测 | FC-Siam-diff | 正常训练 | 正常训练 | IoU=61.23% |
| 变化检测 | FCCDN | 正常训练 | 正常训练 | IoU=24.42% |
| 场景分类 | HRNet | 正常训练 | 正常训练 | Acc(top1)=99.37% |
| 场景分类 | MobileNetV3 | 正常训练 | 正常训练 | Acc(top1)=99.58% |
| 场景分类 | ResNet50-vd | 正常训练 | 正常训练 | Acc(top1)=99.26% |
| 图像复原 | DRN | 正常训练 | 正常训练 | PSNR=24.23 |
| 图像复原 | ESRGAN | 正常训练 | 正常训练 | PSNR=21.30 |
| 图像复原 | LESRCNN | 正常训练 | 正常训练 | PSNR=23.18 |
| 目标检测 | Faster R-CNN | 正常训练 | 正常训练 | mAP=46.99% |
| 目标检测 | PP-YOLO | 正常训练 | 正常训练 | mAP=56.02% |
| 目标检测 | PP-YOLO Tiny | 正常训练 | 正常训练 | mAP=44.27% |
| 目标检测 | PP-YOLOv2 | 正常训练 | 正常训练 | mAP=59.37% |
| 目标检测 | YOLOv3 | 正常训练 | 正常训练 | mAP=47.33% |
| 图像分割 | DeepLab V3+ | 正常训练 | 正常训练 | mIoU=56.05% |
| 图像分割 | UNet | 正常训练 | 正常训练 | mIoU=55.50% |
*注:参考预测精度为whole_train_whole_infer模式下单卡训练汇报的精度数据。*
- 推理相关:
| 任务类别 | 模型名称 | device_CPU | device_GPU | batchsize |
| :----: | :----: | :----: | :----: | :----: |
| 变化检测 | BIT | 支持 | 支持 | 1 |
| 变化检测 | CDNet | 支持 | 支持 | 1 |
| 变化检测 | ChangeFormer | 支持 | 支持 | 1 |
| 变化检测 | DSAMNet | 支持 | 支持 | 1 |
| 变化检测 | DSIFN | 支持 | 支持 | 1 |
| 变化检测 | SNUNet | 支持 | 支持 | 1 |
| 变化检测 | STANet | 支持 | 支持 | 1 |
| 变化检测 | FC-EF | 支持 | 支持 | 1 |
| 变化检测 | FC-Siam-conc | 支持 | 支持 | 1 |
| 变化检测 | FC-Siam-diff | 支持 | 支持 | 1 |
| 场景分类 | HRNet | 支持 | 支持 | 1 |
| 目标检测 | YOLO | 支持 | 支持 | 1 |
| 场景分类 | MobileNetV3 | 支持 | 支持 | 1 |
| 场景分类 | ResNet50-vd | 支持 | 支持 | 1 |
| 图像复原 | DRN | 支持 | 支持 | 1 |
| 图像复原 | ESRGAN | 支持 | 支持 | 1 |
| 图像复原 | LESRCNN | 支持 | 支持 | 1 |
| 目标检测 | Faster R-CNN | 支持 | 支持 | 1 |
| 目标检测 | PP-YOLO | 支持 | 支持 | 1 |
| 目标检测 | PP-YOLO Tiny | 支持 | 支持 | 1 |
| 目标检测 | PP-YOLOv2 | 支持 | 支持 | 1 |
| 目标检测 | YOLOv3 | 支持 | 支持 | 1 |
| 图像分割 | DeepLab V3+ | 支持 | 支持 | 1 |
| 图像分割 | UNet | 支持 | 支持 | 1 |
## 2 测试流程
### 2.1 环境配置
@ -67,7 +107,7 @@ bash ./test_tipc/test_train_inference_python.sh test_tipc/configs/clas/hrnet/tra
运行相应指令后,在`test_tipc/output`目录中会自动保存运行日志。如lite_train_lite_infer模式下,该目录中可能存在以下文件:
```
test_tipc/output/[task name]/[model name]/
test_tipc/output/{task name}/{model name}/
|- results_python.log # 存储指令执行状态的日志
|- norm_gpus_0_autocast_null/ # GPU 0号卡上的训练日志和模型保存目录
......

@ -13,6 +13,8 @@ from paddle.inference import PrecisionType
from paddlers.tasks import load_model
from paddlers.utils import logging
from config_utils import parse_configs
class _bool(object):
def __new__(cls, x):
@ -101,7 +103,7 @@ class TIPCPredictor(object):
logging.warning(
"Semantic segmentation models do not support TensorRT acceleration, "
"TensorRT is forcibly disabled.")
elif 'RCNN' in self._model.__class__.__name__:
elif self._model.model_type == 'detector' and 'RCNN' in self._model.__class__.__name__:
logging.warning(
"RCNN models do not support TensorRT acceleration, "
"TensorRT is forcibly disabled.")
@ -123,7 +125,7 @@ class TIPCPredictor(object):
)
else:
try:
# Cache 10 different shapes for mkldnn to avoid memory leak
# Cache 10 different shapes for mkldnn to avoid memory leak.
config.set_mkldnn_cache_capacity(10)
config.enable_mkldnn()
config.set_cpu_math_library_num_threads(mkl_thread_num)
@ -158,13 +160,23 @@ class TIPCPredictor(object):
'image2': preprocessed_samples[1],
'ori_shape': preprocessed_samples[2]
}
elif self._model.model_type == 'restorer':
preprocessed_samples = {
'image': preprocessed_samples[0],
'tar_shape': preprocessed_samples[1]
}
else:
logging.error(
"Invalid model type {}".format(self._model.model_type),
exit=True)
return preprocessed_samples
def postprocess(self, net_outputs, topk=1, ori_shape=None, transforms=None):
def postprocess(self,
net_outputs,
topk=1,
ori_shape=None,
tar_shape=None,
transforms=None):
if self._model.model_type == 'classifier':
true_topk = min(self._model.num_classes, topk)
if self._model.postprocess is None:
@ -196,6 +208,12 @@ class TIPCPredictor(object):
for k, v in zip(['bbox', 'bbox_num', 'mask'], net_outputs)
}
preds = self._model.postprocess(net_outputs)
elif self._model.model_type == 'restorer':
res_maps = self._model.postprocess(
net_outputs[0],
batch_tar_shape=tar_shape,
transforms=transforms.transforms)
preds = [{'res_map': res_map} for res_map in res_maps]
else:
logging.error(
"Invalid model type {}.".format(self._model.model_type),
@ -232,6 +250,7 @@ class TIPCPredictor(object):
net_outputs,
topk,
ori_shape=preprocessed_input.get('ori_shape', None),
tar_shape=preprocessed_input.get('tar_shape', None),
transforms=transforms)
if self.benchmark and time_it:
@ -285,7 +304,8 @@ class TIPCPredictor(object):
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--file_list', type=str, nargs=2)
parser.add_argument('--config', type=str)
parser.add_argument('--inherit_off', action='store_true')
parser.add_argument('--model_dir', type=str, default='./')
parser.add_argument(
'--device', type=str, choices=['cpu', 'gpu'], default='cpu')
@ -300,6 +320,11 @@ if __name__ == '__main__':
args = parser.parse_args()
cfg = parse_configs(args.config, not args.inherit_off)
eval_dataset = cfg['datasets']['eval']
data_dir = eval_dataset.args['data_dir']
file_list = eval_dataset.args['file_list']
predictor = TIPCPredictor(
args.model_dir,
device=args.device,
@ -310,7 +335,7 @@ if __name__ == '__main__':
trt_precision_mode=args.precision,
benchmark=args.benchmark)
predictor.predict(args.file_list[0], args.file_list[1])
predictor.predict(data_dir, file_list)
if args.benchmark:
predictor.autolog.report()

@ -35,6 +35,8 @@ if [[ ${MODE} == 'lite_train_lite_infer' \
download_and_unzip_dataset "${DATA_DIR}" ucmerced https://paddlers.bj.bcebos.com/datasets/ucmerced.zip
elif [[ ${task_name} == 'det' ]]; then
download_and_unzip_dataset "${DATA_DIR}" sarship https://paddlers.bj.bcebos.com/datasets/sarship.zip
elif [[ ${task_name} == 'res' ]]; then
download_and_unzip_dataset "${DATA_DIR}" rssr https://paddlers.bj.bcebos.com/datasets/rssr_mini.zip
elif [[ ${task_name} == 'seg' ]]; then
download_and_unzip_dataset "${DATA_DIR}" rsseg https://paddlers.bj.bcebos.com/datasets/rsseg_mini.zip
fi
@ -42,12 +44,26 @@ if [[ ${MODE} == 'lite_train_lite_infer' \
elif [[ ${MODE} == 'whole_train_whole_infer' ]]; then
if [[ ${task_name} == 'cd' ]]; then
rm -rf "${DATA_DIR}/levircd"
download_and_unzip_dataset "${DATA_DIR}" raw_levircd https://paddlers.bj.bcebos.com/datasets/raw/LEVIR-CD.zip \
&& python tools/prepare_dataset/prepare_levircd.py \
--in_dataset_dir "${DATA_DIR}/raw_levircd" \
--out_dataset_dir "${DATA_DIR}/levircd" \
--crop_size 256 \
--crop_stride 256
elif [[ ${task_name} == 'clas' ]]; then
download_and_unzip_dataset "${DATA_DIR}" ucmerced https://paddlers.bj.bcebos.com/datasets/ucmerced.zip
elif [[ ${task_name} == 'det' ]]; then
rm -rf "${DATA_DIR}/rsod"
download_and_unzip_dataset "${DATA_DIR}" raw_rsod https://paddlers.bj.bcebos.com/datasets/raw/RSOD.zip
python tools/prepare_dataset/prepare_rsod.py \
--in_dataset_dir "${DATA_DIR}/raw_rsod" \
--out_dataset_dir "${DATA_DIR}/rsod" \
--seed 114514
elif [[ ${task_name} == 'res' ]]; then
download_and_unzip_dataset "${DATA_DIR}" rssr https://paddlers.bj.bcebos.com/datasets/rssr.zip
elif [[ ${task_name} == 'seg' ]]; then
download_and_unzip_dataset "${DATA_DIR}" rsseg https://paddlers.bj.bcebos.com/datasets/rsseg.zip
fi
fi

@ -1 +0,0 @@
#!/usr/bin/env bash

@ -15,6 +15,3 @@ done
# Test tutorials
bash run_tutorials.sh
# Test examples
bash run_examples.sh

@ -1,4 +1,6 @@
import argparse
import random
import copy
import os
import os.path as osp
from glob import glob
@ -198,6 +200,20 @@ def create_file_list(file_list, path_tuples, sep=' '):
f.write(line + '\n')
def create_label_list(label_list, labels):
"""
Create label list.
Args:
label_list (str): Path of label list to create.
labels (list[str]|tuple[str]]): Label names.
"""
with open(label_list, 'w') as f:
for label in labels:
f.write(label + '\n')
def link_dataset(src, dst):
"""
Make a symbolic link to a dataset.
@ -211,5 +227,57 @@ def link_dataset(src, dst):
raise ValueError(f"{dst} exists and is not a directory.")
elif not osp.exists(dst):
os.makedirs(dst)
src = osp.realpath(src)
name = osp.basename(osp.normpath(src))
os.symlink(src, osp.join(dst, name), target_is_directory=True)
def random_split(samples,
ratios=(0.7, 0.2, 0.1),
inplace=True,
drop_remainder=False):
"""
Randomly split the dataset into two or three subsets.
Args:
samples (list): All samples of the dataset.
ratios (tuple[float], optional): If the length of `ratios` is 2,
the two elements indicate the ratios of samples used for training
and evaluation. If the length of `ratios` is 3, the three elements
indicate the ratios of samples used for training, validation, and
testing. Defaults to (0.7, 0.2, 0.1).
inplace (bool, optional): Whether to shuffle `samples` in place.
Defaults to True.
drop_remainder (bool, optional): Whether to discard the remaining samples.
If False, the remaining samples will be included in the last subset.
For example, if `ratios` is (0.7, 0.1) and `drop_remainder` is False,
the two subsets after splitting will contain 70% and 30% of the samples,
respectively. Defaults to False.
"""
if not inplace:
samples = copy.deepcopy(samples)
if len(samples) == 0:
raise ValueError("There are no samples!")
if len(ratios) not in (2, 3):
raise ValueError("`len(ratios)` must be 2 or 3!")
random.shuffle(samples)
n_samples = len(samples)
acc_r = 0
st_idx, ed_idx = 0, 0
splits = []
for r in ratios:
acc_r += r
ed_idx = round(acc_r * n_samples)
splits.append(samples[st_idx:ed_idx])
st_idx = ed_idx
if ed_idx < len(ratios) and not drop_remainder:
# Append remainder to the last split
splits[-1].append(splits[ed_idx:])
return splits

@ -0,0 +1,56 @@
#!/usr/bin/env python
import random
import os.path as osp
from functools import reduce, partial
from common import (get_default_parser, get_path_tuples, create_file_list,
link_dataset, random_split, create_label_list)
CLASSES = ('aircraft', 'oiltank', 'overpass', 'playground')
SUBSETS = ('train', 'val', 'test')
SUBDIRS = ('JPEGImages', osp.sep.join(['Annotation', 'xml']))
FILE_LIST_PATTERN = "{subset}.txt"
LABEL_LIST_NAME = "labels.txt"
URL = ""
if __name__ == '__main__':
parser = get_default_parser()
parser.add_argument('--seed', type=int, default=None, help="Random seed.")
parser.add_argument(
'--ratios',
type=float,
nargs='+',
default=(0.7, 0.2, 0.1),
help="Ratios of each subset (train/val or train/val/test).")
args = parser.parse_args()
if args.seed is not None:
random.seed(args.seed)
if len(args.ratios) not in (2, 3):
raise ValueError("Wrong number of ratios!")
out_dir = osp.join(args.out_dataset_dir,
osp.basename(osp.normpath(args.in_dataset_dir)))
link_dataset(args.in_dataset_dir, args.out_dataset_dir)
splits_list = []
for cls in CLASSES:
path_tuples = get_path_tuples(
*(osp.join(out_dir, cls, subdir) for subdir in SUBDIRS),
data_dir=args.out_dataset_dir)
splits = random_split(path_tuples, ratios=args.ratios)
splits_list.append(splits)
splits = map(partial(reduce, list.__add__), zip(*splits_list))
for subset, split in zip(SUBSETS, splits):
file_list = osp.join(
args.out_dataset_dir, FILE_LIST_PATTERN.format(subset=subset))
create_file_list(file_list, split)
print(f"Write file list to {file_list}.")
label_list = osp.join(args.out_dataset_dir, LABEL_LIST_NAME)
create_label_list(label_list, CLASSES)
print(f"Write label list to {label_list}.")

@ -12,6 +12,7 @@
|change_detection/fc_ef.py | 变化检测 | FC-EF |
|change_detection/fc_siam_conc.py | 变化检测 | FC-Siam-conc |
|change_detection/fc_siam_diff.py | 变化检测 | FC-Siam-diff |
|change_detection/fccdn.py | 变化检测 | FCCDN |
|change_detection/snunet.py | 变化检测 | SNUNet |
|change_detection/stanet.py | 变化检测 | STANet |
|classification/hrnet.py | 场景分类 | HRNet |
@ -22,7 +23,7 @@
|image_restoration/lesrcnn.py | 图像复原 | LESRCNN |
|object_detection/faster_rcnn.py | 目标检测 | Faster R-CNN |
|object_detection/ppyolo.py | 目标检测 | PP-YOLO |
|object_detection/ppyolotiny.py | 目标检测 | PP-YOLO Tiny |
|object_detection/ppyolo_tiny.py | 目标检测 | PP-YOLO Tiny |
|object_detection/ppyolov2.py | 目标检测 | PP-YOLOv2 |
|object_detection/yolov3.py | 目标检测 | YOLOv3 |
|semantic_segmentation/deeplabv3p.py | 图像分割 | DeepLab V3+ |

@ -78,7 +78,7 @@ model = pdrs.tasks.cd.BIT()
# 执行模型训练
model.train(
num_epochs=5,
num_epochs=10,
train_dataset=train_dataset,
train_batch_size=4,
eval_dataset=eval_dataset,

@ -78,7 +78,7 @@ model = pdrs.tasks.cd.CDNet()
# 执行模型训练
model.train(
num_epochs=5,
num_epochs=10,
train_dataset=train_dataset,
train_batch_size=4,
eval_dataset=eval_dataset,

@ -78,7 +78,7 @@ model = pdrs.tasks.cd.ChangeFormer()
# 执行模型训练
model.train(
num_epochs=5,
num_epochs=10,
train_dataset=train_dataset,
train_batch_size=4,
eval_dataset=eval_dataset,

@ -78,7 +78,7 @@ model = pdrs.tasks.cd.DSAMNet()
# 执行模型训练
model.train(
num_epochs=5,
num_epochs=10,
train_dataset=train_dataset,
train_batch_size=4,
eval_dataset=eval_dataset,

@ -78,7 +78,7 @@ model = pdrs.tasks.cd.DSIFN()
# 执行模型训练
model.train(
num_epochs=5,
num_epochs=10,
train_dataset=train_dataset,
train_batch_size=4,
eval_dataset=eval_dataset,

@ -78,7 +78,7 @@ model = pdrs.tasks.cd.FCEarlyFusion()
# 执行模型训练
model.train(
num_epochs=5,
num_epochs=10,
train_dataset=train_dataset,
train_batch_size=4,
eval_dataset=eval_dataset,

@ -78,7 +78,7 @@ model = pdrs.tasks.cd.FCSiamConc()
# 执行模型训练
model.train(
num_epochs=5,
num_epochs=10,
train_dataset=train_dataset,
train_batch_size=4,
eval_dataset=eval_dataset,

@ -78,7 +78,7 @@ model = pdrs.tasks.cd.FCSiamDiff()
# 执行模型训练
model.train(
num_epochs=5,
num_epochs=10,
train_dataset=train_dataset,
train_batch_size=4,
eval_dataset=eval_dataset,

@ -78,7 +78,7 @@ model = pdrs.tasks.cd.SNUNet()
# 执行模型训练
model.train(
num_epochs=5,
num_epochs=10,
train_dataset=train_dataset,
train_batch_size=4,
eval_dataset=eval_dataset,

@ -78,7 +78,7 @@ model = pdrs.tasks.cd.STANet()
# 执行模型训练
model.train(
num_epochs=5,
num_epochs=10,
train_dataset=train_dataset,
train_batch_size=4,
eval_dataset=eval_dataset,

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save