Replies: 1 comment 1 reply
-
根据你提供的信息,训练过程中报错 Can not find Variable 'embedding_0.w_0' in the Scope.,错误发生在加载预训练模型参数阶段,具体出现在 NRTRHead 的 embedding 层初始化部分: self.embedding.weight.set_value(w0) 该错误的根本原因通常是:当前模型结构和加载的预训练模型结构或参数不匹配。 根据日志,你的配置使用了 MultiHead,其中包含两个 Head:CTCHead 和 NRTRHead,同时训练数据的编码方式设置为: gtc_encode: NRTRLabelEncode 这说明你正在训练一个同时包含 CTC 和 NRTR 的识别多头模型,而且你使用了 NRTR 所需的标签编码方式。这种情况下如果加载的预训练模型不包含 NRTRHead 所需的变量 embedding_0.w_0,就会导致变量找不到。 具体原因总结如下:
解决方案建议如下: ✅ 方案一:检查预训练模型是否支持当前结构 你当前配置是: Head: 等于说需要 CTC 系列参数,也需要 NRTR 系列参数。 而你预训练模型路径为: ./pretrain_models/rec/latest.pdparams 检查该模型是否为包含 MultiHead,且含 NRTRHead 的结构。如果不是(比如它是单头 CTC 预训练模型),那么加载会失败。你可以更换为同时支持 CTC 和 NRTR 的预训练模型(如 PP-OCRv3 的 MultiHead 模型)。确认模型来源是否匹配架构。 ✅ 方案二:修改配置,避免使用 NRTRHead 如果你实际上只需要使用 CTCHead 做识别任务,可以将 Head 改回单头结构: Head: 并将所有 gtc_encode 相关项删除或注释掉,使用单标签编码方式,例如: LabelEncode: 同时将 loss 和 metric 部分简化,不使用 NRTRLoss,仅保留 CTCLoss。 ✅ 方案三:重新训练初始化模型不加载预训练参数 如果你想从头训练模型,可以将配置文件中预训练路径注释掉或设置为 None: pretrained_model: None 此时模型会随机初始化全部参数,虽然训练收敛慢,但不会因加载变量失败而报错。 补充说明:
参考建议可见相关 PaddleOCR 官方模板,比如 PP-OCRv3-rec 多头模型:https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.6/configs/rec/rec_multi_language/rec_ppocrv3_multilang/config.yaml 通过上述方法可有效解决“Can not find Variable 'embedding_0.w_0' in the Scope.”的问题。 Response generated by 🤖 feifei-bot | chatgpt-4o-latest |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
[2025/04/17 19:14:55] ppocr INFO: Architecture :
[2025/04/17 19:14:55] ppocr INFO: Backbone :
[2025/04/17 19:14:55] ppocr INFO: name : PPLCNetV3
[2025/04/17 19:14:55] ppocr INFO: scale : 0.95
[2025/04/17 19:14:55] ppocr INFO: Head :
[2025/04/17 19:14:55] ppocr INFO: head_list :
[2025/04/17 19:14:55] ppocr INFO: CTCHead :
[2025/04/17 19:14:55] ppocr INFO: Head :
[2025/04/17 19:14:55] ppocr INFO: fc_decay : 1e-05
[2025/04/17 19:14:55] ppocr INFO: Neck :
[2025/04/17 19:14:55] ppocr INFO: depth : 2
[2025/04/17 19:14:55] ppocr INFO: dims : 120
[2025/04/17 19:14:55] ppocr INFO: hidden_dims : 120
[2025/04/17 19:14:55] ppocr INFO: kernel_size : [1, 3]
[2025/04/17 19:14:55] ppocr INFO: name : svtr
[2025/04/17 19:14:55] ppocr INFO: use_guide : True
[2025/04/17 19:14:55] ppocr INFO: NRTRHead :
[2025/04/17 19:14:55] ppocr INFO: max_text_length : 25
[2025/04/17 19:14:55] ppocr INFO: nrtr_dim : 384
[2025/04/17 19:14:55] ppocr INFO: name : MultiHead
[2025/04/17 19:14:55] ppocr INFO: Transform : None
[2025/04/17 19:14:55] ppocr INFO: algorithm : SVTR_LCNet
[2025/04/17 19:14:55] ppocr INFO: model_type : rec
[2025/04/17 19:14:55] ppocr INFO: Eval :
[2025/04/17 19:14:55] ppocr INFO: dataset :
[2025/04/17 19:14:55] ppocr INFO: data_dir : ./train_data/1
[2025/04/17 19:14:55] ppocr INFO: label_file_list : ['./producte_line/ce38dcebddc24a9aa361133ce55e4933/rec/val.txt']
[2025/04/17 19:14:55] ppocr INFO: name : SimpleDataSet
[2025/04/17 19:14:55] ppocr INFO: transforms :
[2025/04/17 19:14:55] ppocr INFO: DecodeImage :
[2025/04/17 19:14:55] ppocr INFO: channel_first : False
[2025/04/17 19:14:55] ppocr INFO: img_mode : BGR
[2025/04/17 19:14:55] ppocr INFO: MultiLabelEncode :
[2025/04/17 19:14:55] ppocr INFO: gtc_encode : NRTRLabelEncode
[2025/04/17 19:14:55] ppocr INFO: RecResizeImg :
[2025/04/17 19:14:55] ppocr INFO: image_shape : [3, 48, 320]
[2025/04/17 19:14:55] ppocr INFO: KeepKeys :
[2025/04/17 19:14:55] ppocr INFO: keep_keys : ['image', 'label_ctc', 'label_gtc', 'length', 'valid_ratio']
[2025/04/17 19:14:55] ppocr INFO: loader :
[2025/04/17 19:14:55] ppocr INFO: batch_size_per_card : 64
[2025/04/17 19:14:55] ppocr INFO: drop_last : False
[2025/04/17 19:14:55] ppocr INFO: num_workers : 2
[2025/04/17 19:14:55] ppocr INFO: shuffle : False
[2025/04/17 19:14:55] ppocr INFO: Global :
[2025/04/17 19:14:55] ppocr INFO: cal_metric_during_train : True
[2025/04/17 19:14:55] ppocr INFO: character_dict_path : producte_line/ce38dcebddc24a9aa361133ce55e4933/rec/dict.txt
[2025/04/17 19:14:55] ppocr INFO: checkpoints : None
[2025/04/17 19:14:55] ppocr INFO: debug : False
[2025/04/17 19:14:55] ppocr INFO: distributed : False
[2025/04/17 19:14:55] ppocr INFO: epoch_num : 100
[2025/04/17 19:14:55] ppocr INFO: eval_batch_step : [0, 100]
[2025/04/17 19:14:55] ppocr INFO: infer_img : doc/imgs_words/ch/word_1.jpg
[2025/04/17 19:14:55] ppocr INFO: infer_mode : False
[2025/04/17 19:14:55] ppocr INFO: log_smooth_window : 20
[2025/04/17 19:14:55] ppocr INFO: max_text_length : 25
[2025/04/17 19:14:55] ppocr INFO: pretrained_model : ./pretrain_models/rec/latest.pdparams
[2025/04/17 19:14:55] ppocr INFO: print_batch_step : 10
[2025/04/17 19:14:55] ppocr INFO: save_epoch_step : 10
[2025/04/17 19:14:55] ppocr INFO: save_inference_dir : None
[2025/04/17 19:14:55] ppocr INFO: save_model_dir : ./producte_line/ce38dcebddc24a9aa361133ce55e4933/rec/output
[2025/04/17 19:14:55] ppocr INFO: save_res_path : ./producte_line/ce38dcebddc24a9aa361133ce55e4933/rec/output/predicts_ppocrv3.txt
[2025/04/17 19:14:55] ppocr INFO: use_gpu : True
[2025/04/17 19:14:55] ppocr INFO: use_space_char : True
[2025/04/17 19:14:55] ppocr INFO: use_visualdl : False
[2025/04/17 19:14:55] ppocr INFO: Loss :
[2025/04/17 19:14:55] ppocr INFO: loss_config_list :
[2025/04/17 19:14:55] ppocr INFO: CTCLoss : None
[2025/04/17 19:14:55] ppocr INFO: NRTRLoss : None
[2025/04/17 19:14:55] ppocr INFO: name : MultiLoss
[2025/04/17 19:14:55] ppocr INFO: Metric :
[2025/04/17 19:14:55] ppocr INFO: main_indicator : acc
[2025/04/17 19:14:55] ppocr INFO: name : RecMetric
[2025/04/17 19:14:55] ppocr INFO: Optimizer :
[2025/04/17 19:14:55] ppocr INFO: beta1 : 0.9
[2025/04/17 19:14:55] ppocr INFO: beta2 : 0.999
[2025/04/17 19:14:55] ppocr INFO: lr :
[2025/04/17 19:14:55] ppocr INFO: learning_rate : 0.0001
[2025/04/17 19:14:55] ppocr INFO: name : Cosine
[2025/04/17 19:14:55] ppocr INFO: warmup_epoch : 2
[2025/04/17 19:14:55] ppocr INFO: name : Adam
[2025/04/17 19:14:55] ppocr INFO: regularizer :
[2025/04/17 19:14:55] ppocr INFO: factor : 3e-05
[2025/04/17 19:14:55] ppocr INFO: name : L2
[2025/04/17 19:14:55] ppocr INFO: PostProcess :
[2025/04/17 19:14:55] ppocr INFO: name : CTCLabelDecode
[2025/04/17 19:14:55] ppocr INFO: Train :
[2025/04/17 19:14:55] ppocr INFO: dataset :
[2025/04/17 19:14:55] ppocr INFO: data_dir : ./train_data/1
[2025/04/17 19:14:55] ppocr INFO: ds_width : False
[2025/04/17 19:14:55] ppocr INFO: ext_op_transform_idx : 1
[2025/04/17 19:14:55] ppocr INFO: label_file_list : ['./producte_line/ce38dcebddc24a9aa361133ce55e4933/rec/train.txt']
[2025/04/17 19:14:55] ppocr INFO: name : MultiScaleDataSet
[2025/04/17 19:14:55] ppocr INFO: transforms :
[2025/04/17 19:14:55] ppocr INFO: DecodeImage :
[2025/04/17 19:14:55] ppocr INFO: channel_first : False
[2025/04/17 19:14:55] ppocr INFO: img_mode : BGR
[2025/04/17 19:14:55] ppocr INFO: RecConAug :
[2025/04/17 19:14:55] ppocr INFO: ext_data_num : 2
[2025/04/17 19:14:55] ppocr INFO: image_shape : [48, 320, 3]
[2025/04/17 19:14:55] ppocr INFO: max_text_length : 25
[2025/04/17 19:14:55] ppocr INFO: prob : 0.5
[2025/04/17 19:14:55] ppocr INFO: RecAug : None
[2025/04/17 19:14:55] ppocr INFO: MultiLabelEncode :
[2025/04/17 19:14:55] ppocr INFO: gtc_encode : NRTRLabelEncode
[2025/04/17 19:14:55] ppocr INFO: KeepKeys :
[2025/04/17 19:14:55] ppocr INFO: keep_keys : ['image', 'label_ctc', 'label_gtc', 'length', 'valid_ratio']
[2025/04/17 19:14:55] ppocr INFO: loader :
[2025/04/17 19:14:55] ppocr INFO: batch_size_per_card : 96
[2025/04/17 19:14:55] ppocr INFO: drop_last : True
[2025/04/17 19:14:55] ppocr INFO: num_workers : 4
[2025/04/17 19:14:55] ppocr INFO: shuffle : True
[2025/04/17 19:14:55] ppocr INFO: sampler :
[2025/04/17 19:14:55] ppocr INFO: divided_factor : [8, 16]
[2025/04/17 19:14:55] ppocr INFO: first_bs : 96
[2025/04/17 19:14:55] ppocr INFO: fix_bs : False
[2025/04/17 19:14:55] ppocr INFO: is_training : True
[2025/04/17 19:14:55] ppocr INFO: name : MultiScaleSampler
[2025/04/17 19:14:55] ppocr INFO: scales : [[320, 32], [320, 48], [320, 64]]
[2025/04/17 19:14:55] ppocr INFO: profiler_options : None
[2025/04/17 19:14:55] ppocr INFO: train with paddle 2.6.2 and device Place(gpu:0)
[2025/04/17 19:14:56] ppocr ERROR: 训练异常!!!
[2025/04/17 19:14:56] ppocr ERROR: Can not find Variable 'embedding_0.w_0' in the Scope.
Traceback (most recent call last):
File "/opt/ocr_recovery/PaddleOCR/tools/train.py", line 318, in train_start
main(config, device, logger, vdl_writer, seed)
File "/opt/ocr_recovery/PaddleOCR/tools/train.py", line 142, in main
model = build_model(config["Architecture"])
File "/opt/ocr_recovery/PaddleOCR/ppocr/modeling/architectures/init.py", line 30, in build_model
arch = BaseModel(config)
File "/opt/ocr_recovery/PaddleOCR/ppocr/modeling/architectures/base_model.py", line 76, in init
self.head = build_head(config["Head"])
File "/opt/ocr_recovery/PaddleOCR/ppocr/modeling/heads/init.py", line 103, in build_head
module_class = eval(module_name)(**config)
File "/opt/ocr_recovery/PaddleOCR/ppocr/modeling/heads/rec_multi_head.py", line 104, in init
self.gtc_head = Transformer(
File "/opt/ocr_recovery/PaddleOCR/ppocr/modeling/heads/rec_nrtr_head.py", line 61, in init
self.embedding = Embeddings(
File "/opt/ocr_recovery/PaddleOCR/ppocr/modeling/heads/rec_nrtr_head.py", line 611, in init
self.embedding.weight.set_value(w0)
File "/opt/ocr_recovery/PaddleOCR/PaddleOCR/lib/python3.9/site-packages/paddle/base/framework.py", line 2644, in set_value
raise ValueError(
ValueError: Can not find Variable 'embedding_0.w_0' in the Scope.
Beta Was this translation helpful? Give feedback.
All reactions