`ppyolo_r18vd`模型训练结束时报错
Created by: dklinzh
环境:
- PaddlePaddle 1.8.4.post107
- PaddleDetection
release/0.4
9e388947 - GPU单卡8G, 内存32G
- Python 3.7.3
错误日志:
2020-08-27 22:15:53,972-INFO: Save model to ../PaddleDetection_Output/model/ppyolo_r18vd_plate/T0/ppyolo_r18vd_plate/model_final. 2020-08-27 22:15:54,901-INFO: Test iter 0 2020-08-27 22:15:56,121-INFO: Test finish iter 26 2020-08-27 22:15:56,121-INFO: Total number of images: 202, inference time: 157.2117341547254 fps. 2020-08-27 22:15:56,121-INFO: Start evaluate... 2020-08-27 22:15:56,144-INFO: Accumulating evaluatation results... 2020-08-27 22:15:56,145-INFO: mAP(0.50, 11point) = 99.13 2020-08-27 22:15:56,145-INFO: Best test box ap: 99.23065809434371, in iter: 25000 terminate called without an active exception W0827 22:15:56.547019 3768 init.cc:226] Warning: PaddlePaddle catches a failure signal, it may not work properly W0827 22:15:56.547036 3768 init.cc:228] You could check whether you killed PaddlePaddle thread/process accidentally or report the case to PaddlePaddle W0827 22:15:56.547042 3768 init.cc:231] The detail failure signal is:
W0827 22:15:56.547049 3768 init.cc:234] *** Aborted at 1598537756 (unix time) try "date -d @1598537756" if you are using GNU date *** W0827 22:15:56.548934 3768 init.cc:234] PC: @ 0x0 (unknown) W0827 22:15:56.548995 3768 init.cc:234] *** SIGABRT (@0x3e800000aff) received by PID 2815 (TID 0x7f9e4d7fe700) from PID 2815; stack trace: *** W0827 22:15:56.550269 3768 init.cc:234] @ 0x7fa16a0ce730 (unknown) W0827 22:15:56.551038 3768 init.cc:234] @ 0x7fa169d497bb gsignal W0827 22:15:56.551915 3768 init.cc:234] @ 0x7fa169d34535 abort W0827 22:15:56.552793 3768 init.cc:234] @ 0x7fa15205f983 (unknown) W0827 22:15:56.553651 3768 init.cc:234] @ 0x7fa1520658c6 (unknown) W0827 22:15:56.554262 3768 init.cc:234] @ 0x7fa152065901 std::terminate() W0827 22:15:56.554885 3768 init.cc:234] @ 0x7fa152065324 __gxx_personality_v0 W0827 22:15:56.555639 3768 init.cc:234] @ 0x7fa166832f28 (unknown) W0827 22:15:56.556443 3768 init.cc:234] @ 0x7fa16683351c _Unwind_ForcedUnwind W0827 22:15:56.557286 3768 init.cc:234] @ 0x7fa16a0cd0a0 __GI___pthread_unwind W0827 22:15:56.558120 3768 init.cc:234] @ 0x7fa16a0c51f5 __pthread_exit W0827 22:15:56.558395 3768 init.cc:234] @ 0x62e585 PyThread_exit_thread W0827 22:15:56.558507 3768 init.cc:234] @ 0x54e368 PyEval_RestoreThread W0827 22:15:56.559154 3768 init.cc:234] @ 0x7fa1302dd5d5 (unknown) W0827 22:15:56.559283 3768 init.cc:234] @ 0x5d7d54 _PyMethodDef_RawFastCallKeywords W0827 22:15:56.559430 3768 init.cc:234] @ 0x54b780 (unknown) W0827 22:15:56.559494 3768 init.cc:234] @ 0x55286a _PyEval_EvalFrameDefault W0827 22:15:56.559576 3768 init.cc:234] @ 0x54c112 _PyEval_EvalCodeWithName W0827 22:15:56.559655 3768 init.cc:234] @ 0x5d9bbe _PyFunction_FastCallDict W0827 22:15:56.559773 3768 init.cc:234] @ 0x58f07b (unknown) W0827 22:15:56.559850 3768 init.cc:234] @ 0x5d94db _PyObject_FastCallKeywords W0827 22:15:56.559898 3768 init.cc:234] @ 0x552ae8 _PyEval_EvalFrameDefault W0827 22:15:56.559947 3768 init.cc:234] @ 0x5d99f6 _PyFunction_FastCallDict W0827 22:15:56.560061 3768 init.cc:234] @ 0x58f07b (unknown) W0827 22:15:56.560139 3768 init.cc:234] @ 0x5d94db _PyObject_FastCallKeywords W0827 22:15:56.560256 3768 init.cc:234] @ 0x54b811 (unknown) W0827 22:15:56.560314 3768 init.cc:234] @ 0x55286a _PyEval_EvalFrameDefault W0827 22:15:56.560420 3768 init.cc:234] @ 0x54c112 _PyEval_EvalCodeWithName W0827 22:15:56.560487 3768 init.cc:234] @ 0x5d9bbe _PyFunction_FastCallDict W0827 22:15:56.560600 3768 init.cc:234] @ 0x4d9fb2 (unknown) W0827 22:15:56.560714 3768 init.cc:234] @ 0x5dc086 PyObject_Call W0827 22:15:56.560829 3768 init.cc:234] @ 0x6233d6 (unknown) Aborted
使用VOC格式的自定义数据集训练, yml
配置如下:
architecture: YOLOv3
use_gpu: true
max_iters: 100000
log_smooth_window: 20
log_iter: 20
snapshot_iter: 1000
metric: VOC
map_type: 11point # integral
pretrain_weights: https://paddlemodels.bj.bcebos.com/object_detection/ppyolo_r18vd.pdparams
weights: ../PaddleDetection_Output/model/ppyolo_r18vd_plate/T0/ppyolo_r18vd_plate/best_model
save_dir: ../PaddleDetection_Output/model/ppyolo_r18vd_plate/T0
num_classes: 1
use_fine_grained_loss: true
use_ema: true
ema_decay: 0.9998
YOLOv3:
backbone: ResNet
yolo_head: YOLOv3Head
use_fine_grained_loss: true
ResNet:
norm_type: sync_bn
freeze_at: 0
freeze_norm: false
norm_decay: 0.
depth: 18
feature_maps: [4, 5]
variant: d
YOLOv3Head:
anchor_masks: [[3, 4, 5], [0, 1, 2]]
anchors: [[10, 14], [23, 27], [37, 58],
[81, 82], [135, 169], [344, 319]]
norm_decay: 0.
conv_block_num: 0
scale_x_y: 1.05
yolo_loss: YOLOv3Loss
nms: MatrixNMS
drop_block: true
YOLOv3Loss:
batch_size: 8
ignore_thresh: 0.7
scale_x_y: 1.05
label_smooth: false
use_fine_grained_loss: true
iou_loss: IouLoss
IouLoss:
loss_weight: 2.5
max_height: 608
max_width: 608
MatrixNMS:
background_label: -1
keep_top_k: 100
normalized: false
score_threshold: 0.01
post_threshold: 0.01
LearningRate:
base_lr: 0.00025
schedulers:
- !PiecewiseDecay
gamma: 0.1
milestones:
- 60000
- 80000
- !LinearWarmup
start_factor: 0.
steps: 1600
OptimizerBuilder:
optimizer:
momentum: 0.9
type: Momentum
regularizer:
factor: 0.0005
type: L2
_READER_: 'ppyolo_reader.yml'
TrainReader:
inputs_def:
fields: ['image', 'gt_bbox', 'gt_class', 'gt_score']
num_max_boxes: 50
dataset:
!VOCDataSet
dataset_dir: ../PaddleDetection_DataSet/plate_new
anno_path: train.txt
use_default_label: false
with_background: false
sample_transforms:
- !DecodeImage
to_rgb: True
with_mixup: True
- !MixupImage
alpha: 1.5
beta: 1.5
- !ColorDistort {}
- !RandomExpand
fill_value: [123.675, 116.28, 103.53]
- !RandomCrop {}
- !RandomFlipImage
is_normalized: false
- !NormalizeBox {}
- !PadBox
num_max_boxes: 50
- !BboxXYXY2XYWH {}
batch_transforms:
- !RandomShape
sizes: [320, 352, 384, 416, 448, 480, 512, 544, 576, 608]
random_inter: True
- !NormalizeImage
mean: [0.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
is_scale: True
is_channel_first: false
- !Permute
to_bgr: false
channel_first: True
# Gt2YoloTarget is only used when use_fine_grained_loss set as true,
# this operator will be deleted automatically if use_fine_grained_loss
# is set as false
- !Gt2YoloTarget
anchor_masks: [[3, 4, 5], [0, 1, 2]]
anchors: [[10, 14], [23, 27], [37, 58],
[81, 82], [135, 169], [344, 319]]
downsample_ratios: [32, 16]
batch_size: 8
shuffle: true
mixup_epoch: 500
drop_last: true
worker_num: 16
bufsize: 8
use_process: true
EvalReader:
inputs_def:
fields: ['image', 'im_size', 'im_id', 'gt_bbox', 'gt_class', 'is_difficult']
num_max_boxes: 50
dataset:
!VOCDataSet
dataset_dir: ../PaddleDetection_DataSet/plate_new
anno_path: val.txt
use_default_label: false
with_background: false
sample_transforms:
- !DecodeImage
to_rgb: True
- !ResizeImage
target_size: 608
interp: 2
- !NormalizeImage
mean: [0.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
is_scale: True
is_channel_first: false
- !PadBox
num_max_boxes: 50
- !Permute
to_bgr: false
channel_first: True
batch_size: 8
drop_empty: false
worker_num: 8
bufsize: 4
TestReader:
inputs_def:
image_shape: [3, 608, 608]
fields: ['image', 'im_size', 'im_id']
dataset:
!ImageFolder
anno_path: ../PaddleDetection_DataSet/plate_new/label_list.txt
use_default_label: false
with_background: false
sample_transforms:
- !DecodeImage
to_rgb: True
- !ResizeImage
target_size: 608
interp: 2
- !NormalizeImage
mean: [0.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
is_scale: True
is_channel_first: false
- !Permute
to_bgr: false
channel_first: True
batch_size: 1