可选参数列表
以下列表可以通过--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 | \ |