PaddlePaddle / PaddleClas

A treasure chest for visual classification and recognition powered by PaddlePaddle
Apache License 2.0
5.41k stars 1.16k forks source link

PaddleClas/docs/en/PULC /PULC_person_attribute python tools/infer.py error #3192

Open VisImage opened 2 months ago

VisImage commented 2 months ago

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:

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:

Metric: Eval:

cuicheng01 commented 1 month ago

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