Replies: 1 comment
-
从你的问题和日志信息来看,主要的问题是预训练模型加载后训练的准确率异常低,甚至在简单的预测任务上准确率为0,并且推理模型大小明显减小。这可能涉及多个问题,包括预训练权重的加载、训练集的质量、配置文件的设置等。以下是一些可能的原因和解决方案: 1. 预训练权重未正确加载日志中有多个
这表明部分预训练权重并未成功加载到模型中。这可能是因为:
解决方案:
2. 推理模型文件变小你提到训练后的推理模型文件由 40多MB 缩小到 10MB,这可能是因为:
解决方案:
3. 训练集和数据增强问题日志显示训练准确率一直为0,这可能说明模型在训练时无法有效学习。这可能与训练数据或数据增强相关:
解决方案:
4. 模型配置文件设置问题从配置文件中可以看到以下可能需要注意的地方:
解决方案:
5. 官方讨论的相关问题从 GitHub 讨论链接中可以看到,有类似的问题提到使用预训练模型时,前几个 epoch 的 acc 为0,但通常预训练模型加载成功后,收敛速度会较快。如果你的情况与未使用预训练权重的表现相似,说明预训练权重可能未正确加载。 参考链接: 总结根据上述分析,建议按照以下步骤排查问题:
如果问题依然存在,可详细提供训练日志和模型配置,进一步分析。 Response generated by feifei-bot | chatgpt-4o-latest |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
我下载了是官方的预训练模型在原有的预训练模型基础上进行曾量训练,但是发现训练后准确率异常的低,我用来测试很简单的电脑截图文字准确率居然为0,而且转成了推理模型后,文件变小了很多,预训练文件本来有40几m的文件变成了就剩下10m了,这是不是说明预训练的权重没有添加了模型训练上,导致准确率特别低,虽然我用于增量训练的训练集图片并不多,但是预训练模型本来就是官方预训练过的,不至于准确率为0。我训练预训练模型和训练普通训练模型,配置文件都差不多,不知道是不是对预训练的模型需要再配置文件里更改一些参数才行。以下是我的配置文件的设置。求解大佬感激不尽.
Global:
debug: false
use_gpu: true #是否使用显卡进行训练,true表示使用显卡训练,false表示不使用显卡。
epoch_num: 800 #迭代次数次数越多。训练的模型精度越高
log_smooth_window: 20
print_batch_step: 25
save_model_dir: ./output/ch_pp-OCRv3_rec_distillation #训练后模型所保存的位置。
save_epoch_step: 50 #训练多少次自动保存一次模型
eval_batch_step: 50 #训练多少次进行一次模型评估
cal_metric_during_train: true
pretrained_model: ./pretrain_models/ch_PP-OCRv3_rec_train/best_accuracy.pdparams #预训练模型所保存的路径
checkpoints:
save_inference_dir:
use_visualdl: false
infer_img: doc/imgs_words/ch/word_1.jpg
character_dict_path: ppocr/utils/ppocr_keys_v1.txt
max_text_length: &max_text_length 25
infer_mode: false
use_space_char: true
distributed: true
save_res_path: ./output/rec/predicts_ppocrv3_distillation.txt
d2s_train_image_shape: [3, 48, -1]
Optimizer:
name: Adam
beta1: 0.9
beta2: 0.999
lr:
name: Piecewise
decay_epochs : [700]
values : [0.0005, 0.00005]
warmup_epoch: 5
regularizer:
name: L2
factor: 3.0e-05
Architecture:
model_type: &model_type "rec"
name: DistillationModel
algorithm: Distillation
Models:
Teacher:
pretrained:
freeze_params: false
return_all_feats: true
model_type: *model_type
algorithm: SVTR_LCNet
Transform:
Backbone:
name: MobileNetV1Enhance
scale: 0.5
last_conv_stride: [1, 2]
last_pool_type: avg
last_pool_kernel_size: [2, 2]
Head:
name: MultiHead
head_list:
- CTCHead:
Neck:
name: svtr
dims: 64
depth: 2
hidden_dims: 120
use_guide: True
Head:
fc_decay: 0.00001
- SARHead:
enc_dim: 512
max_text_length: *max_text_length
Student:
pretrained:
freeze_params: false
return_all_feats: true
model_type: *model_type
algorithm: SVTR_LCNet
Transform:
Backbone:
name: MobileNetV1Enhance
scale: 0.5
last_conv_stride: [1, 2]
last_pool_type: avg
last_pool_kernel_size: [2, 2]
Head:
name: MultiHead
head_list:
- CTCHead:
Neck:
name: svtr
dims: 64
depth: 2
hidden_dims: 120
use_guide: True
Head:
fc_decay: 0.00001
- SARHead:
enc_dim: 512
max_text_length: *max_text_length
Loss:
name: CombinedLoss
loss_config_list:
weight: 1.0
act: "softmax"
use_log: true
model_name_pairs:
key: head_out
multi_head: True
dis_head: ctc
name: dml_ctc
weight: 0.5
act: "softmax"
use_log: true
model_name_pairs:
key: head_out
multi_head: True
dis_head: sar
name: dml_sar
weight: 1.0
mode: "l2"
model_name_pairs:
key: backbone_out
weight: 1.0
model_name_list: ["Student", "Teacher"]
key: head_out
multi_head: True
weight: 1.0
model_name_list: ["Student", "Teacher"]
key: head_out
multi_head: True
PostProcess:
name: DistillationCTCLabelDecode
model_name: ["Student", "Teacher"]
key: head_out
multi_head: True
Metric:
name: DistillationMetric
base_metric_name: RecMetric
main_indicator: acc
key: "Student"
ignore_space: False
Train:
dataset:
name: SimpleDataSet
data_dir: ./train_data/ #识别模型数据集所在的文件夹的上一层文件夹
ext_op_transform_idx: 1
label_file_list:
- ./train_data/rec/train.txt #训练数据集所标注文件所在的路径,路径精确到具体的文件的后缀名。
transforms:
- DecodeImage:
img_mode: BGR
channel_first: false
- RecConAug:
prob: 0.5
ext_data_num: 2
image_shape: [48, 320, 3]
max_text_length: *max_text_length
- RecAug:
- MultiLabelEncode:
- RecResizeImg:
image_shape: [3, 48, 320]
- KeepKeys:
keep_keys:
- image
- label_ctc
- label_sar
- length
- valid_ratio
loader:
shuffle: true
batch_size_per_card: 10
drop_last: true
num_workers: 4
Eval:
dataset:
name: SimpleDataSet
data_dir: ./train_data #识别模型数据集所在的文件夹的上一层文件夹
label_file_list:
- ./train_data/rec/val.txt #识别模型数据集标注文件所在的路径,精确的文件后缀名。
transforms:
- DecodeImage:
img_mode: BGR
channel_first: false
- MultiLabelEncode:
- RecResizeImg:
image_shape: [3, 48, 320]
- KeepKeys:
keep_keys:
- image
- label_ctc
- label_sar
- length
- valid_ratio
loader:
shuffle: false
drop_last: false
batch_size_per_card: 10
num_workers: 4
Beta Was this translation helpful? Give feedback.
All reactions