可选参数列表
以下列表可以通过--help
查看
FLAG |
支持脚本 |
用途 |
默认值 |
备注 |
-c |
ALL |
指定配置文件 |
None |
配置模块说明请参考 参数介绍 |
-o |
ALL |
设置配置文件里的参数内容 |
None |
使用-o配置相较于-c选择的配置文件具有更高的优先级。例如:-o Global.use_gpu=false |
配置文件参数介绍
以 rec_chinese_lite_train_v2.0.yml
为例
Global
字段 |
用途 |
默认值 |
备注 |
use_gpu |
设置代码是否在gpu运行 |
true |
\ |
epoch_num |
最大训练epoch数 |
500 |
\ |
log_smooth_window |
log队列长度,每次打印输出队列里的中间值 |
20 |
\ |
print_batch_step |
设置打印log间隔 |
10 |
\ |
save_model_dir |
设置模型保存路径 |
output/{算法名称} |
\ |
save_epoch_step |
设置模型保存间隔 |
3 |
\ |
eval_batch_step |
设置模型评估间隔 |
2000 或 [1000, 2000] |
2000 表示每2000次迭代评估一次,[1000, 2000]表示从1000次迭代开始,每2000次评估一次 |
cal_metric_during_train |
设置是否在训练过程中评估指标,此时评估的是模型在当前batch下的指标 |
true |
\ |
load_static_weights |
设置预训练模型是否是静态图模式保存(目前仅检测算法需要) |
true |
\ |
pretrained_model |
设置加载预训练模型路径 |
./pretrain_models/CRNN/best_accuracy |
\ |
checkpoints |
加载模型参数路径 |
None |
用于中断后加载参数继续训练 |
use_visualdl |
设置是否启用visualdl进行可视化log展示 |
False |
教程地址 |
infer_img |
设置预测图像路径或文件夹路径 |
./infer_img |
\ |
character_dict_path |
设置字典路径 |
./ppocr/utils/ppocr_keys_v1.txt |
\ |
max_text_length |
设置文本最大长度 |
25 |
\ |
character_type |
设置字符类型 |
ch |
en/ch, en时将使用默认dict,ch时使用自定义dict |
use_space_char |
设置是否识别空格 |
True |
仅在 character_type=ch 时支持空格 |
label_list |
设置方向分类器支持的角度 |
['0','180'] |
仅在方向分类器中生效 |
save_res_path |
设置检测模型的结果保存地址 |
./output/det_db/predicts_db.txt |
仅在检测模型中生效 |
在ppocr中,网络被划分为Transform,Backbone,Neck和Head四个阶段
字段 |
用途 |
默认值 |
备注 |
model_type |
网络类型 |
rec |
目前支持rec ,det ,cls |
algorithm |
模型名称 |
CRNN |
支持列表见algorithm_overview |
Transform |
设置变换方式 |
- |
目前仅rec类型的算法支持, 具体见ppocr/modeling/transform |
name |
变换方式类名 |
TPS |
目前支持TPS |
num_fiducial |
TPS控制点数 |
20 |
上下边各十个 |
loc_lr |
定位网络学习率 |
0.1 |
\ |
model_name |
定位网络大小 |
small |
目前支持small ,large |
Backbone |
设置网络backbone类名 |
- |
具体见ppocr/modeling/backbones |
name |
backbone类名 |
ResNet |
目前支持MobileNetV3 ,ResNet |
layers |
resnet层数 |
34 |
支持18,34,50,101,152,200 |
model_name |
MobileNetV3 网络大小 |
small |
支持small ,large |
Neck |
设置网络neck |
- |
具体见ppocr/modeling/necks |
name |
neck类名 |
SequenceEncoder |
目前支持SequenceEncoder ,DBFPN |
encoder_type |
SequenceEncoder编码器类型 |
rnn |
支持reshape ,fc ,rnn |
hidden_size |
rnn内部单元数 |
48 |
\ |
out_channels |
DBFPN输出通道数 |
256 |
\ |
Head |
设置网络Head |
- |
具体见ppocr/modeling/heads |
name |
head类名 |
CTCHead |
目前支持CTCHead ,DBHead ,ClsHead |
fc_decay |
CTCHead正则化系数 |
0.0004 |
\ |
k |
DBHead二值化系数 |
50 |
\ |
class_dim |
ClsHead输出分类数 |
2 |
\ |
字段 |
用途 |
默认值 |
备注 |
name |
网络loss类名 |
CTCLoss |
目前支持CTCLoss ,DBLoss ,ClsLoss |
balance_loss |
DBLossloss中是否对正负样本数量进行均衡(使用OHEM) |
True |
\ |
ohem_ratio |
DBLossloss中的OHEM的负正样本比例 |
3 |
\ |
main_loss_type |
DBLossloss中shrink_map所采用的的loss |
DiceLoss |
支持DiceLoss ,BCELoss |
alpha |
DBLossloss中shrink_map_loss的系数 |
5 |
\ |
beta |
DBLossloss中threshold_map_loss的系数 |
10 |
\ |
字段 |
用途 |
默认值 |
备注 |
name |
后处理类名 |
CTCLabelDecode |
目前支持CTCLoss ,AttnLabelDecode ,DBPostProcess ,ClsPostProcess |
thresh |
DBPostProcess中分割图进行二值化的阈值 |
0.3 |
\ |
box_thresh |
DBPostProcess中对输出框进行过滤的阈值,低于此阈值的框不会输出 |
0.7 |
\ |
max_candidates |
DBPostProcess中输出的最大文本框数量 |
1000 |
|
unclip_ratio |
DBPostProcess中对文本框进行放大的比例 |
2.0 |
\ |
字段 |
用途 |
默认值 |
备注 |
name |
指标评估方法名称 |
CTCLabelDecode |
目前支持DetMetric ,RecMetric ,ClsMetric |
main_indicator |
主要指标,用于选取最优模型 |
acc |
对于检测方法为hmean,识别和分类方法为acc |
字段 |
用途 |
默认值 |
备注 |
dataset |
每次迭代返回一个样本 |
- |
- |
name |
dataset类名 |
SimpleDataSet |
目前支持SimpleDataSet 和LMDBDateSet |
data_dir |
数据集图片存放路径 |
./train_data |
\ |
label_file_list |
数据标签路径 |
["./train_data/train_list.txt"] |
dataset为LMDBDateSet时不需要此参数 |
ratio_list |
数据集的比例 |
[1.0] |
若label_file_list中有两个train_list,且ratio_list为[0.4,0.6],则从train_list1中采样40%,从train_list2中采样60%组合整个dataset |
transforms |
对图片和标签进行变换的方法列表 |
[DecodeImage,CTCLabelEncode,RecResizeImg,KeepKeys] |
见ppocr/data/imaug |
loader |
dataloader相关 |
- |
|
shuffle |
每个epoch是否将数据集顺序打乱 |
True |
\ |
batch_size_per_card |
训练时单卡batch size |
256 |
\ |
drop_last |
是否丢弃因数据集样本数不能被 batch_size 整除而产生的最后一个不完整的mini-batch |
True |
\ |
num_workers |
用于加载数据的子进程个数,若为0即为不开启子进程,在主进程中进行数据加载 |
8 |
\ |