问题遇到的现象和发生背景
训练paddleOCR文字方向模型的时候发生错误
数据格式是正确的,在同事电脑上已经跑过,在我电脑上就不行
操作环境、软件版本等信息
window10
Python 3.8.19
尝试过的解决方法
百度 Google gpt都无解
我想要达到的结果
想正常跑通代码
这是我的配置文件:
Global:
use_gpu: True
epoch_num: 100
log_smooth_window: 20
print_batch_step: 10
save_model_dir: ./output/cls/mv3/
save_epoch_step: 3
# evaluation is run every 5000 iterations after the 4000th iteration
eval_batch_step: [0, 1000]
cal_metric_during_train: True
pretrained_model:
checkpoints:
save_inference_dir:
use_visualdl: False
infer_img: doc/imgs_words_en/word_10.png
label_list: ['0','180']
Architecture:
model_type: cls
algorithm: CLS
Transform:
Backbone:
name: MobileNetV3
scale: 0.35
model_name: small
Neck:
Head:
name: ClsHead
class_dim: 2
Loss:
name: ClsLoss
Optimizer:
name: Adam
beta1: 0.9
beta2: 0.999
lr:
name: Cosine
learning_rate: 0.001
regularizer:
name: 'L2'
factor: 0
PostProcess:
name: ClsPostProcess
Metric:
name: ClsMetric
main_indicator: acc
Train:
dataset:
name: SimpleDataSet
data_dir: ./train_data/cls/train
label_file_list:
- ./train_data/cls/cls_gt_train.txt
transforms:
- DecodeImage: # load image
img_mode: BGR
channel_first: False
- ClsLabelEncode: # Class handling label
- BaseDataAugmentation:
- RandAugment:
- ClsResizeImg:
image_shape: [3, 30, 300]
- KeepKeys:
keep_keys: ['image', 'label'] # dataloader will return list in this order
loader:
shuffle: True
batch_size_per_card: 1
drop_last: True
num_workers: 0
Eval:
dataset:
name: SimpleDataSet
data_dir: ./train_data/cls/train
label_file_list:
- ./train_data/cls/cls_gt_train.txt
transforms:
- DecodeImage: # load image
img_mode: BGR
channel_first: False
- ClsLabelEncode: # Class handling label
- ClsResizeImg:
image_shape: [3, 30, 300]
- KeepKeys:
keep_keys: ['image', 'label'] # dataloader will return list in this order
loader:
shuffle: False
drop_last: False
batch_size_per_card: 1
num_workers: 0
##这是我的报错信息
(paddleOCR) D:\PaddleOCR-release-2.7.1>python tools/train.py -c configs/cls/cls_mv3.yml
[2024/08/12 13:26:44] ppocr INFO: Architecture :
[2024/08/12 13:26:44] ppocr INFO: Backbone :
[2024/08/12 13:26:44] ppocr INFO: model_name : small
[2024/08/12 13:26:44] ppocr INFO: name : MobileNetV3
[2024/08/12 13:26:44] ppocr INFO: scale : 0.35
[2024/08/12 13:26:44] ppocr INFO: Head :
[2024/08/12 13:26:44] ppocr INFO: class_dim : 2
[2024/08/12 13:26:44] ppocr INFO: name : ClsHead
[2024/08/12 13:26:44] ppocr INFO: Neck : None
[2024/08/12 13:26:44] ppocr INFO: Transform : None
[2024/08/12 13:26:44] ppocr INFO: algorithm : CLS
[2024/08/12 13:26:44] ppocr INFO: model_type : cls
[2024/08/12 13:26:44] ppocr INFO: Eval :
[2024/08/12 13:26:44] ppocr INFO: dataset :
[2024/08/12 13:26:44] ppocr INFO: data_dir : ./train_data/cls/train
[2024/08/12 13:26:44] ppocr INFO: label_file_list : ['./train_data/cls/cls_gt_train.txt']
[2024/08/12 13:26:44] ppocr INFO: name : SimpleDataSet
[2024/08/12 13:26:44] ppocr INFO: transforms :
[2024/08/12 13:26:44] ppocr INFO: DecodeImage :
[2024/08/12 13:26:44] ppocr INFO: channel_first : False
[2024/08/12 13:26:44] ppocr INFO: img_mode : BGR
[2024/08/12 13:26:44] ppocr INFO: ClsLabelEncode : None
[2024/08/12 13:26:44] ppocr INFO: ClsResizeImg :
[2024/08/12 13:26:44] ppocr INFO: image_shape : [3, 30, 300]
[2024/08/12 13:26:44] ppocr INFO: KeepKeys :
[2024/08/12 13:26:44] ppocr INFO: keep_keys : ['image', 'label']
[2024/08/12 13:26:44] ppocr INFO: loader :
[2024/08/12 13:26:44] ppocr INFO: batch_size_per_card : 1
[2024/08/12 13:26:44] ppocr INFO: drop_last : False
[2024/08/12 13:26:44] ppocr INFO: num_workers : 0
[2024/08/12 13:26:44] ppocr INFO: shuffle : False
[2024/08/12 13:26:44] ppocr INFO: Global :
[2024/08/12 13:26:44] ppocr INFO: cal_metric_during_train : True
[2024/08/12 13:26:44] ppocr INFO: checkpoints : None
[2024/08/12 13:26:44] ppocr INFO: distributed : False
[2024/08/12 13:26:44] ppocr INFO: epoch_num : 100
[2024/08/12 13:26:44] ppocr INFO: eval_batch_step : [0, 1000]
[2024/08/12 13:26:44] ppocr INFO: infer_img : doc/imgs_words_en/word_10.png
[2024/08/12 13:26:44] ppocr INFO: label_list : ['0', '180']
[2024/08/12 13:26:44] ppocr INFO: log_smooth_window : 20
[2024/08/12 13:26:44] ppocr INFO: pretrained_model : None
[2024/08/12 13:26:44] ppocr INFO: print_batch_step : 10
[2024/08/12 13:26:44] ppocr INFO: save_epoch_step : 3
[2024/08/12 13:26:44] ppocr INFO: save_inference_dir : None
[2024/08/12 13:26:44] ppocr INFO: save_model_dir : ./output/cls/mv3/
[2024/08/12 13:26:44] ppocr INFO: use_gpu : True
[2024/08/12 13:26:44] ppocr INFO: use_visualdl : False
[2024/08/12 13:26:44] ppocr INFO: Loss :
[2024/08/12 13:26:44] ppocr INFO: name : ClsLoss
[2024/08/12 13:26:44] ppocr INFO: Metric :
[2024/08/12 13:26:44] ppocr INFO: main_indicator : acc
[2024/08/12 13:26:44] ppocr INFO: name : ClsMetric
[2024/08/12 13:26:44] ppocr INFO: Optimizer :
[2024/08/12 13:26:44] ppocr INFO: beta1 : 0.9
[2024/08/12 13:26:44] ppocr INFO: beta2 : 0.999
[2024/08/12 13:26:44] ppocr INFO: lr :
[2024/08/12 13:26:44] ppocr INFO: learning_rate : 0.001
[2024/08/12 13:26:44] ppocr INFO: name : Cosine
[2024/08/12 13:26:44] ppocr INFO: name : Adam
[2024/08/12 13:26:44] ppocr INFO: regularizer :
[2024/08/12 13:26:44] ppocr INFO: factor : 0
[2024/08/12 13:26:44] ppocr INFO: name : L2
[2024/08/12 13:26:44] ppocr INFO: PostProcess :
[2024/08/12 13:26:44] ppocr INFO: name : ClsPostProcess
[2024/08/12 13:26:44] ppocr INFO: Train :
[2024/08/12 13:26:44] ppocr INFO: dataset :
[2024/08/12 13:26:44] ppocr INFO: data_dir : ./train_data/cls/train
[2024/08/12 13:26:44] ppocr INFO: label_file_list : ['./train_data/cls/cls_gt_train.txt']
[2024/08/12 13:26:44] ppocr INFO: name : SimpleDataSet
[2024/08/12 13:26:44] ppocr INFO: transforms :
[2024/08/12 13:26:44] ppocr INFO: DecodeImage :
[2024/08/12 13:26:44] ppocr INFO: channel_first : False
[2024/08/12 13:26:44] ppocr INFO: img_mode : BGR
[2024/08/12 13:26:44] ppocr INFO: ClsLabelEncode : None
[2024/08/12 13:26:44] ppocr INFO: BaseDataAugmentation : None
[2024/08/12 13:26:44] ppocr INFO: RandAugment : None
[2024/08/12 13:26:44] ppocr INFO: ClsResizeImg :
[2024/08/12 13:26:44] ppocr INFO: image_shape : [3, 30, 300]
[2024/08/12 13:26:44] ppocr INFO: KeepKeys :
[2024/08/12 13:26:44] ppocr INFO: keep_keys : ['image', 'label']
[2024/08/12 13:26:44] ppocr INFO: loader :
[2024/08/12 13:26:44] ppocr INFO: batch_size_per_card : 1
[2024/08/12 13:26:44] ppocr INFO: drop_last : True
[2024/08/12 13:26:44] ppocr INFO: num_workers : 0
[2024/08/12 13:26:44] ppocr INFO: shuffle : True
[2024/08/12 13:26:44] ppocr INFO: profiler_options : None
[2024/08/12 13:26:44] ppocr INFO: train with paddle 2.6.1 and device Place(gpu:0)
[2024/08/12 13:26:44] ppocr INFO: Initialize indexs of datasets:['./train_data/cls/cls_gt_train.txt']
list index out of range
[2024/08/12 13:26:44] ppocr INFO: Initialize indexs of datasets:['./train_data/cls/cls_gt_train.txt']
W0812 13:26:44.671368 520 gpu_resources.cc:119] Please NOTE: device: 0, GPU Compute Capability: 6.1, Driver API Version: 12.6, Runtime API Version: 11.7
W0812 13:26:44.674342 520 gpu_resources.cc:164] device: 0, cuDNN Version: 8.9.
[2024/08/12 13:26:45] ppocr INFO: train dataloader has 12362 iters
[2024/08/12 13:26:45] ppocr INFO: valid dataloader has 12362 iters
[2024/08/12 13:26:45] ppocr INFO: train from scratch
[2024/08/12 13:26:45] ppocr INFO: During the training process, after the 0th iteration, an evaluation is run every 1000 iterations
[2024/08/12 13:26:46] ppocr ERROR: When parsing line cam#0-NG(OCR)-20240629-195141-478_crop_0.png 0
, error happened with msg: Traceback (most recent call last):
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 157, in __getitem__
data['image'] = img
RecursionError: maximum recursion depth exceeded while calling a Python object
Fatal Python error: Cannot recover from stack overflow.
Python runtime state: initialized
Current thread 0x000012b4 (most recent call first):
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 157 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
File "D:\PaddleOCR-release-2.7.1\ppocr\data\simple_dataset.py", line 169 in __getitem__
...
Thread 0x00000208 (most recent call first):
File "D:\ProgramData\anaconda3\envs\paddleOCR\lib\site-packages\paddle\io\dataloader\dataloader_iter.py", line 291 in __next__
File "D:\PaddleOCR-release-2.7.1\tools\program.py", line 272 in train
File "tools/train.py", line 200 in main
File "tools/train.py", line 229 in <module>