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/docs/en/PULC /PULC_person_attribute python tools/infer.py error #3192

Open
VisImage opened this issue Jul 18, 2024 · 1 comment
Open
Assignees

Comments

@VisImage
Copy link

Thank you for sharing the code.

When trying to train the model using our customised dataset, following instruction as indicated in PaddleClas/docs/en/PULC /PULC_person_attribute_en.md. I got the error as below,. lease let me know what else I need to modify. Than you

3.3 Training succeeds.
python -m paddle.distributed.launch
--gpus="0"
tools/train.py
-c ./ppcls/configs/PULC/person_attribute/PPLCNet_x1_0_myData.yaml

3.4 Evaluation succeeds.
python tools/eval.py
-c ./ppcls/configs/PULC/person_attribute/PPLCNet_x1_0_myData.yaml
-o Global.pretrained_model="output/best_model/model.pdparams"

3.5 Inference failed.
python tools/infer.py
-c ./ppcls/configs/PULC/person_attribute/PPLCNet_x1_0_myData.yaml
-o Global.pretrained_model="output/best_model/model.pdparams"

ppcls ERROR: Exception occured when parse line: deploy/images/PULC/person_attribute/090007.jpg with msg: list index out of range

The file PPLCNet_x1_0_myData.yaml is shown below, which is based ./ppcls/configs/PULC/person_attribute/PPLCNet_x1_0.yaml with a few modifications:

------------- ./ppcls/configs/PULC/person_attribute/PPLCNet_x1_0_myData.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: 10
print_batch_step: 10
use_visualdl: False

used for static mode and model export

image_shape: [3, 256, 192]
save_inference_dir: "./inference"
use_multilabel: True

model architecture

Arch:
name: "PPLCNet_x1_0"
pretrained: True
use_ssld: True
class_num: 9
#class_num: 26

loss function config for traing/eval process

Loss:
Train:
- MultiLabelLoss:
weight: 1.0
weight_ratio: True
size_sum: True
Eval:
- MultiLabelLoss:
weight: 1.0
weight_ratio: True
size_sum: True

Optimizer:
name: Momentum
momentum: 0.9
lr:
name: Cosine
learning_rate: 0.01
warmup_epoch: 5
regularizer:
name: 'L2'
coeff: 0.0005

data loader for train and eval

DataLoader:
Train:
dataset:
name: MultiLabelDataset
image_root: "dataset/myData/"
cls_label_path: "dataset/myData/train_list.txt"
#image_root: "dataset/pa100k/"
#cls_label_path: "dataset/pa100k/train_list.txt"
label_ratio: True
transform_ops:
- DecodeImage:
to_rgb: True
channel_first: False
- ResizeImage:
size: [192, 256]
- TimmAutoAugment:
prob: 0.8
config_str: rand-m9-mstd0.5-inc1
interpolation: bicubic
img_size: [192, 256]
- Padv2:
size: [212, 276]
pad_mode: 1
fill_value: 0
- RandomCropImage:
size: [192, 256]
- RandFlipImage:
flip_code: 1
- NormalizeImage:
scale: 1.0/255.0
mean: [0.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
order: ''
- RandomErasing:
EPSILON: 0.4
sl: 0.02
sh: 1.0/3.0
r1: 0.3
attempt: 10
use_log_aspect: True
mode: pixel
sampler:
name: DistributedBatchSampler
batch_size: 64
drop_last: True
shuffle: True
loader:
num_workers: 4
use_shared_memory: True
Eval:
dataset:
name: MultiLabelDataset
image_root: "dataset/myData/"
cls_label_path: "dataset/myData/val_list.txt"
#image_root: "dataset/pa100k/"
#cls_label_path: "dataset/pa100k/val_list.txt"
label_ratio: True
transform_ops:
- DecodeImage:
to_rgb: True
channel_first: False
- ResizeImage:
size: [192, 256]
- 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: deploy/images/PULC/person_attribute/
batch_size: 10
transforms:
- DecodeImage:
to_rgb: True
channel_first: False
- ResizeImage:
size: [192, 256]
- NormalizeImage:
scale: 1.0/255.0
mean: [0.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
order: ''
- ToCHWImage:
PostProcess:
name: PersonAttribute
threshold: 0.5 #default threshold
#glasses_threshold: 0.3 #threshold only for glasses
#hold_threshold: 0.6 #threshold only for hold

Metric:
Eval:
- ATTRMetric:

@cuicheng01
Copy link
Collaborator

Hi,may I ask, what are the details of your yaml changes? Can you list them?

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

2 participants