文字识别场景CRNN
CRNN模型训练参数及范围
CRNN模型训练的参数名、类型、取值范围、默认值及说明如表1所示。
参数名 |
类型 |
取值范围 |
默认值 |
说明 |
---|---|---|---|---|
--save_best_ckpt |
bool |
True 或 False |
True |
边训边验保存最佳ckpt。(后续版本计划删除该参数。目前在“--run_eval”为“True”时默认保存最佳ckpt。) |
--eval_start_epoch |
int |
[1, 10000] |
5 |
训练时多少轮开始评估。 |
--eval_interval |
int |
[1, 10000] |
5 |
评估间隔,保持默认值。 |
--split |
float |
(0, 1) |
0.8 |
训练/验证数据集比例。 |
--device_id |
int |
[0,7] |
0 |
训练NPU的编号。 |
--device_num |
int |
当前仅支持单卡,即只能为1 |
1 |
训练NPU的数量。 |
--epoch_size |
int |
[1, 10000] |
10 |
训练次数。 |
--batch_size |
int |
小于或等于数据集中图片个数 [1, 8192] |
4 |
训练batch数。 |
--pretrained_ckpt_path |
str |
- |
"pre_trained_ckpt" |
预训练模型存放路径。 |
--input_width |
int |
[1, 10000) |
100 |
模型的输入宽度。 |
--init_lr |
float |
(0, 1) |
0.02 |
训练学习率。 |
--train_dataset_path |
str |
- |
None |
训练数据集路径。 |
--train_output_path |
str |
- |
"train_output_path" |
训练输出路径。 |
--run_eval |
bool |
True 或 False |
True |
训练过程中是否评估。 |
CRNN模型训练命令参考
CRNN模型训练的启动参考以下命令执行。
python3 model_train.py --train_dataset_path={train_dataset_path} -- train_output_path =./train_output_path --input_width=100 --batch_size=4 --epoch_size=10 --init_lr=0.02 --run_eval=True --device_id=1 --device_num=1
模型训练过程存在随机性,最终以评估精度为准。训练精度结果如图1所示。
训练结束后日志信息参考如图2所示。
训练结束后会在“--train_output_path”参数指定的输出目录中生成.ckpt、.a310.om、.a310p.om和.air格式的模型文件。
评估参数及范围
CRNN模型评估的参数名、类型、取值范围、默认值及说明如表2所示。
评估命令参考
CRNN模型评估的启动参考以下命令。
python3 model_eval.py --eval_dataset_path={eval_dataset_path} --eval_ckpt_path=./train_output_path --eval_output_path=./eval_output_path --device_id=0
采用训练输出的ckpt,来评估模型的精度值,呈现形式如图3所示。
在评估目录下会生成如图4所示的文件及目录,其中“statistics.csv”统计评估精度,“statistics_ng_samples.csv”统计评估错误的图片及错误预测值,“statistics_ok_samples.csv”统计评估准确的图片及预测值。