Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用PaddleClas训练的分类模型在pphuman中准确率极低 #9264

Open
1 task done
cskkx1 opened this issue Jan 3, 2025 · 1 comment
Open
1 task done

使用PaddleClas训练的分类模型在pphuman中准确率极低 #9264

cskkx1 opened this issue Jan 3, 2025 · 1 comment
Assignees

Comments

@cskkx1
Copy link

cskkx1 commented Jan 3, 2025

问题确认 Search before asking

  • 我已经搜索过问题,但是没有找到解答。I have searched the question and found no related answer.

请提出你的问题 Please ask your question

我在PaddleClas中使用safety_helmet/PPLCNet_x1_0.yaml 配置文件训练自己的数据集(一共两类),

global configs

Global:
checkpoints: null
pretrained_model: null
output_dir: ./output/
device: gpu
save_interval: 1
eval_during_train: True
eval_interval: 1
epochs: 20
print_batch_step: 10
use_visualdl: False

used for static mode and model export

image_shape: [3, 224, 224]
save_inference_dir: ./inference

model architecture

Arch:
name: PPLCNet_x1_0
pretrained: True
use_ssld: True
class_num: 2
use_sync_bn : True

loss function config for traing/eval process

Loss:
Train:
- CELoss:
weight: 1.0
epsilon: 0.1
Eval:
- CELoss:
weight: 1.0

Optimizer:
name: Momentum
momentum: 0.9
lr:
name: Cosine
learning_rate: 0.025
warmup_epoch: 5
regularizer:
name: 'L2'
coeff: 0.00003

data loader for train and eval

DataLoader:
Train:
dataset:
name: ImageNetDataset
image_root: ./dataset/normal_sleep
cls_label_path: ./dataset/normal_sleep/train_list.txt
transform_ops:
- DecodeImage:
to_rgb: True
channel_first: False
- RandCropImage:
size: 176
- RandFlipImage:
flip_code: 1
- TimmAutoAugment:
prob : 0.5
config_str: rand-m9-mstd0.5-inc1
interpolation: bicubic
img_size : 176
- NormalizeImage:
scale: 1.0/255.0
mean: [0.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
order: ''
- RandomErasing:
EPSILON : 0.1
r1 : 0.3
sh : 1.0/3.0
sl : 0.02
attempt : 10
use_log_aspect : True
mode : pixel
sampler:
name: DistributedBatchSampler
batch_size: 64
drop_last: False
shuffle: True
loader:
num_workers: 8
use_shared_memory: True

Eval:
dataset:
name: ImageNetDataset
image_root: ./dataset/normal_sleep
cls_label_path: ./dataset/normal_sleep/val_list.txt
transform_ops:
- DecodeImage:
to_rgb: True
channel_first: False
- ResizeImage:
resize_short: 256
- CropImage:
size: 224
- NormalizeImage:
scale: 1.0/255.0
mean: [0.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
order: ''
sampler:
name: DistributedBatchSampler
batch_size: 64
drop_last: False
shuffle: False
loader:
num_workers: 4
use_shared_memory: True

Infer:
infer_imgs: sleep3.jpg
batch_size: 1
transforms:
- DecodeImage:
to_rgb: True
channel_first: False
- ResizeImage:
resize_short: 256
- CropImage:
size: 224
- NormalizeImage:
scale: 1.0/255.0
mean: [0.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
order: ''
- ToCHWImage:
PostProcess:
name: ThreshOutput
threshold: 0.5
label_0: sleep
label_1: normal

Metric:
Train:
- TopkAcc:
topk: [1]
Eval:
- TprAtFpr:
max_fpr: 0.0001
- TopkAcc:
topk: [1]

直接在PaddleClas中使用python tools/train.py -c ppcls/configs/PULC/safety_helmet/PPLCNet_x1_0.yaml -o Arch.pretrained=True进行训练,因为图片较少,所以只训练了20轮top1就很高了,直接使用训练获得的best model进行预测python3 tools/infer.py -c ./ppcls/configs/PULC/safety_helmet/PPLCNet_x1_0.yaml -o Global.pretrained_model=output/best_model,图片为配置文件中的默认图片,结果是正确的,但是当我将这个模型导出python tools/export_model.py -c ppcls/configs/PULC/safety_helmet/PPLCNet_x1_0.yaml -o weights=output/best_model,再应用到pphuman中时,修改配置文件
212081f6b9ee39458c1117940c9d8c9
使用pipeline进行测试,效果很差,而且测试用的视频就是训练集,但仍然预测不对。

@TingquanGao TingquanGao self-assigned this Jan 3, 2025
@TingquanGao
Copy link
Collaborator

导出后的模型,使用PaddleClas的deploy进行推理预测,结果正确吗?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants