昇腾社区首页
中文
注册

文字识别场景CRNN

CRNN模型训练参数及范围

CRNN模型训练的参数名、类型、取值范围、默认值及说明如表1所示。

表1 CRNN模型训练参数信息(crnn_mindspore/model_train.py)

参数名

类型

取值范围

默认值

说明

--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所示。

图1 CRNN模型训练精度结果

训练结束后日志信息参考如图2所示。

图2 CRNN模型训练日志信息

训练结束后会在“--train_output_path”参数指定的输出目录中生成.ckpt、.a310.om、.a310p.om和.air格式的模型文件。

评估参数及范围

CRNN模型评估的参数名、类型、取值范围、默认值及说明如表2所示。

表2 CRNN模型评估参数信息(crnn_mindspore/model_eval.py)

参数名

类型

取值范围

默认值

说明

--eval_dataset_path

str

-

None

评估数据集路径。

--eval_ckpt_path

str

-

None

用于评估的ckpt路径。

--device_id

int

[0,7]

0

评估NPU的编号。

--eval_output_path

str

-

"eval_output_path"

评估输出路径。

评估命令参考

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所示。

图3 CRNN模型评估精度结果

在评估目录下会生成如图4所示的文件及目录,其中“statistics.csv”统计评估精度,“statistics_ng_samples.csv”统计评估错误的图片及错误预测值,“statistics_ok_samples.csv”统计评估准确的图片及预测值。

图4 CRNN模型评估生成目录