Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleOCR
提交
2160b2fd
P
PaddleOCR
项目概览
PaddlePaddle
/
PaddleOCR
大约 1 年 前同步成功
通知
1528
Star
32962
Fork
6643
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
108
列表
看板
标记
里程碑
合并请求
7
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleOCR
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
108
Issue
108
列表
看板
标记
里程碑
合并请求
7
合并请求
7
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
2160b2fd
编写于
11月 15, 2022
作者:
littletomatodonkey
提交者:
GitHub
11月 15, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix finetune (#8301)
上级
6da00add
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
21 deletion
+10
-21
doc/doc_ch/finetune.md
doc/doc_ch/finetune.md
+10
-21
未找到文件。
doc/doc_ch/finetune.md
浏览文件 @
2160b2fd
...
@@ -26,21 +26,11 @@ PaddleOCR提供的PP-OCR系列模型在通用场景中性能优异,能够解
...
@@ -26,21 +26,11 @@ PaddleOCR提供的PP-OCR系列模型在通用场景中性能优异,能够解
### 2.2 模型选择
### 2.2 模型选择
建议选择PP-OCRv
2模型(配置文件:
[
ch_PP-OCRv2_det_student.yml
](
../../configs/det/ch_PP-OCRv2/ch_PP-OCRv2_det_student.yml
)
,预训练模型:
[
ch_PP-OCRv2_det_distill_train.tar
](
https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2
_det_distill_train.tar
)
)进行微调,其精度与泛化性能是目前提供的最优预训练模型。
建议选择PP-OCRv
3模型(配置文件:
[
ch_PP-OCRv3_det_student.yml
](
../../configs/det/ch_PP-OCRv3/ch_PP-OCRv3_det_student.yml
)
,预训练模型:
[
ch_PP-OCRv3_det_distill_train.tar
](
https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3
_det_distill_train.tar
)
)进行微调,其精度与泛化性能是目前提供的最优预训练模型。
更多PP-OCR系列模型,请参考
[
P
addleOCR 首页说明文档
](
../../README_ch
.md
)
。
更多PP-OCR系列模型,请参考
[
P
P-OCR 系列模型库
](
./models_list
.md
)
。
注意:在使用上述预训练模型的时候,由于保存的模型中包含教师模型,因此需要将其中的学生模型单独提取出来,再加载学生模型即可进行模型微调。
注意:在使用上述预训练模型的时候,需要使用文件夹中的
`student.pdparams`
文件作为预训练模型,即,仅使用学生模型。
```
python
import
paddle
# 加载完整的检测预训练模型
a
=
paddle
.
load
(
"ch_PP-OCRv2_det_distill_train/best_accuracy.pdparams"
)
# 提取学生模型的参数
b
=
{
k
[
len
(
"student_model."
):]:
a
[
k
]
for
k
in
a
if
"student_model."
in
k
}
# 保存模型,用于后续模型微调
paddle
.
save
(
b
,
"ch_PP-OCRv2_det_student.pdparams"
)
```
### 2.3 训练超参选择
### 2.3 训练超参选择
...
@@ -49,7 +39,7 @@ paddle.save(b, "ch_PP-OCRv2_det_student.pdparams")
...
@@ -49,7 +39,7 @@ paddle.save(b, "ch_PP-OCRv2_det_student.pdparams")
```
yaml
```
yaml
Global
:
Global
:
pretrained_model
:
./
pretrain_models
/student.pdparams
# 预训练模型路径
pretrained_model
:
./
ch_PP-OCRv3_det_distill_train
/student.pdparams
# 预训练模型路径
Optimizer
:
Optimizer
:
lr
:
lr
:
name
:
Cosine
name
:
Cosine
...
@@ -67,7 +57,7 @@ Train:
...
@@ -67,7 +57,7 @@ Train:
num_workers
:
4
num_workers
:
4
```
```
上述配置文件中,首先需要将
`pretrained_model`
字段指定为
2.2章节中提取出来的
`ch_PP-OCRv2_det_
student.pdparams`
文件路径。
上述配置文件中,首先需要将
`pretrained_model`
字段指定为
`
student.pdparams`
文件路径。
PaddleOCR提供的配置文件是在8卡训练(相当于总的batch size是
`8*8=64`
)、且没有加载预训练模型情况下的配置文件,因此您的场景中,学习率与总的batch size需要对应线性调整,例如
PaddleOCR提供的配置文件是在8卡训练(相当于总的batch size是
`8*8=64`
)、且没有加载预训练模型情况下的配置文件,因此您的场景中,学习率与总的batch size需要对应线性调整,例如
...
@@ -88,7 +78,7 @@ PaddleOCR提供的配置文件是在8卡训练(相当于总的batch size是`8*
...
@@ -88,7 +78,7 @@ PaddleOCR提供的配置文件是在8卡训练(相当于总的batch size是`8*
| det_db_score_mode | str | "fast" | DB的检测结果得分计算方法,支持
`fast`
和
`slow`
,
`fast`
是根据polygon的外接矩形边框内的所有像素计算平均得分,
`slow`
是根据原始polygon内的所有像素计算平均得分,计算速度相对较慢一些,但是更加准确一些。 |
| det_db_score_mode | str | "fast" | DB的检测结果得分计算方法,支持
`fast`
和
`slow`
,
`fast`
是根据polygon的外接矩形边框内的所有像素计算平均得分,
`slow`
是根据原始polygon内的所有像素计算平均得分,计算速度相对较慢一些,但是更加准确一些。 |
更多关于推理方法的介绍可以参考
[
Paddle Inference推理教程
](
./
inference
.md
)
。
更多关于推理方法的介绍可以参考
[
Paddle Inference推理教程
](
./
./inference_ppocr
.md
)
。
## 3. 文本识别模型微调
## 3. 文本识别模型微调
...
@@ -109,9 +99,9 @@ PaddleOCR提供的配置文件是在8卡训练(相当于总的batch size是`8*
...
@@ -109,9 +99,9 @@ PaddleOCR提供的配置文件是在8卡训练(相当于总的batch size是`8*
### 3.2 模型选择
### 3.2 模型选择
建议选择PP-OCRv
2模型(配置文件:
[
ch_PP-OCRv2_rec_distillation.yml
](
../../configs/rec/ch_PP-OCRv2/ch_PP-OCRv2_rec_distillation.yml
)
,预训练模型:
[
ch_PP-OCRv2_rec_train.tar
](
https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2
_rec_train.tar
)
)进行微调,其精度与泛化性能是目前提供的最优预训练模型。
建议选择PP-OCRv
3模型(配置文件:
[
ch_PP-OCRv3_rec_distillation.yml
](
../../configs/rec/PP-OCRv3/ch_PP-OCRv3_rec_distillation.yml
)
,预训练模型:
[
ch_PP-OCRv3_rec_train.tar
](
https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3
_rec_train.tar
)
)进行微调,其精度与泛化性能是目前提供的最优预训练模型。
更多PP-OCR系列
,模型请参考
[
PaddleOCR 首页说明文档
](
../../README_ch
.md
)
。
更多PP-OCR系列
模型,请参考
[
PP-OCR 系列模型库
](
./models_list
.md
)
。
### 3.3 训练超参选择
### 3.3 训练超参选择
...
@@ -147,7 +137,7 @@ Train:
...
@@ -147,7 +137,7 @@ Train:
```
```
上述配置文件中,首先需要将
`pretrained_model`
字段指定为2.2章节中解压得到的
`ch_PP-OCRv
2
_rec_train/best_accuracy.pdparams`
文件路径。
上述配置文件中,首先需要将
`pretrained_model`
字段指定为2.2章节中解压得到的
`ch_PP-OCRv
3
_rec_train/best_accuracy.pdparams`
文件路径。
PaddleOCR提供的配置文件是在8卡训练(相当于总的batch size是
`8*128=1024`
)、且没有加载预训练模型情况下的配置文件,因此您的场景中,学习率与总的batch size需要对应线性调整,例如:
PaddleOCR提供的配置文件是在8卡训练(相当于总的batch size是
`8*128=1024`
)、且没有加载预训练模型情况下的配置文件,因此您的场景中,学习率与总的batch size需要对应线性调整,例如:
...
@@ -175,5 +165,4 @@ Train:
...
@@ -175,5 +165,4 @@ Train:
### 3.4 训练调优
### 3.4 训练调优
训练过程并非一蹴而就的,完成一个阶段的训练评估后,建议收集分析当前模型在真实场景中的 badcase,有针对性的调整训练数据比例,或者进一步新增合成数据。
训练过程并非一蹴而就的,完成一个阶段的训练评估后,建议收集分析当前模型在真实场景中的 badcase,有针对性的调整训练数据比例,或者进一步新增合成数据。通过多次迭代训练,不断优化模型效果。
通过多次迭代训练,不断优化模型效果。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录