Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_41840029
PaddleOCR
提交
1ef7dbc9
P
PaddleOCR
项目概览
weixin_41840029
/
PaddleOCR
与 Fork 源项目一致
Fork自
PaddlePaddle / PaddleOCR
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleOCR
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
1ef7dbc9
编写于
5月 24, 2021
作者:
D
Double_V
提交者:
GitHub
5月 24, 2021
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #2888 from LDOUBLEV/fix_2.1
fix doc and init model before qat
上级
323986a7
1018d7ef
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
8 addition
and
27 deletion
+8
-27
deploy/slim/prune/README.md
deploy/slim/prune/README.md
+3
-2
deploy/slim/prune/README_en.md
deploy/slim/prune/README_en.md
+2
-2
deploy/slim/quantization/quant.py
deploy/slim/quantization/quant.py
+3
-23
未找到文件。
deploy/slim/prune/README.md
浏览文件 @
1ef7dbc9
...
@@ -24,6 +24,7 @@
...
@@ -24,6 +24,7 @@
```
bash
```
bash
git clone https://github.com/PaddlePaddle/PaddleSlim.git
git clone https://github.com/PaddlePaddle/PaddleSlim.git
cd
PaddleSlim
cd
PaddleSlim
git checkout develop
python3 setup.py
install
python3 setup.py
install
```
```
...
@@ -48,14 +49,14 @@ python3 setup.py install
...
@@ -48,14 +49,14 @@ python3 setup.py install
进入PaddleOCR根目录,通过以下命令对模型进行敏感度分析训练:
进入PaddleOCR根目录,通过以下命令对模型进行敏感度分析训练:
```
bash
```
bash
python3.7 deploy/slim/prune/sensitivity_anal.py
-c
configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml
-o
Global.pretrained_model
=
"your trained model"
python3.7 deploy/slim/prune/sensitivity_anal.py
-c
configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml
-o
Global.pretrained_model
=
"your trained model"
Global.save_model_dir
=
./output/prune_model/
```
```
### 4. 导出模型、预测部署
### 4. 导出模型、预测部署
在得到裁剪训练保存的模型后,我们可以将其导出为inference_model:
在得到裁剪训练保存的模型后,我们可以将其导出为inference_model:
```
bash
```
bash
pytho3.7 deploy/slim/prune/export_prune_model.py
-c
configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml
-o
Global.pretrained_model
=
./output/det_db/best_accuracy Global.save_inference_dir
=
inference_model
pytho3.7 deploy/slim/prune/export_prune_model.py
-c
configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml
-o
Global.pretrained_model
=
./output/det_db/best_accuracy Global.save_inference_dir
=
./prune/prune_
inference_model
```
```
inference model的预测和部署参考:
inference model的预测和部署参考:
...
...
deploy/slim/prune/README_en.md
浏览文件 @
1ef7dbc9
...
@@ -54,7 +54,7 @@ Enter the PaddleOCR root directory,perform sensitivity analysis on the model w
...
@@ -54,7 +54,7 @@ Enter the PaddleOCR root directory,perform sensitivity analysis on the model w
```
bash
```
bash
python3.7 deploy/slim/prune/sensitivity_anal.py
-c
configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml
-o
Global.pretrained_model
=
"your trained model"
python3.7 deploy/slim/prune/sensitivity_anal.py
-c
configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml
-o
Global.pretrained_model
=
"your trained model"
Global.save_model_dir
=
./output/prune_model/
```
```
...
@@ -63,7 +63,7 @@ python3.7 deploy/slim/prune/sensitivity_anal.py -c configs/det/ch_ppocr_v2.0/ch_
...
@@ -63,7 +63,7 @@ python3.7 deploy/slim/prune/sensitivity_anal.py -c configs/det/ch_ppocr_v2.0/ch_
We can export the pruned model as inference_model for deployment:
We can export the pruned model as inference_model for deployment:
```
bash
```
bash
python deploy/slim/prune/export_prune_model.py
-c
configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml
-o
Global.pretrained_model
=
./output/det_db/best_accuracy
Global.save_inference_dir
=
inference_model
python deploy/slim/prune/export_prune_model.py
-c
configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml
-o
Global.pretrained_model
=
./output/det_db/best_accuracy
Global.save_inference_dir
=
./prune/prune_
inference_model
```
```
Reference for prediction and deployment of inference model:
Reference for prediction and deployment of inference model:
...
...
deploy/slim/quantization/quant.py
浏览文件 @
1ef7dbc9
...
@@ -112,10 +112,6 @@ def main(config, device, logger, vdl_writer):
...
@@ -112,10 +112,6 @@ def main(config, device, logger, vdl_writer):
config
[
'Architecture'
][
"Head"
][
'out_channels'
]
=
char_num
config
[
'Architecture'
][
"Head"
][
'out_channels'
]
=
char_num
model
=
build_model
(
config
[
'Architecture'
])
model
=
build_model
(
config
[
'Architecture'
])
# prepare to quant
quanter
=
QAT
(
config
=
quant_config
,
act_preprocess
=
PACT
)
quanter
.
quantize
(
model
)
if
config
[
'Global'
][
'distributed'
]:
if
config
[
'Global'
][
'distributed'
]:
model
=
paddle
.
DataParallel
(
model
)
model
=
paddle
.
DataParallel
(
model
)
...
@@ -136,31 +132,15 @@ def main(config, device, logger, vdl_writer):
...
@@ -136,31 +132,15 @@ def main(config, device, logger, vdl_writer):
logger
.
info
(
'train dataloader has {} iters, valid dataloader has {} iters'
.
logger
.
info
(
'train dataloader has {} iters, valid dataloader has {} iters'
.
format
(
len
(
train_dataloader
),
len
(
valid_dataloader
)))
format
(
len
(
train_dataloader
),
len
(
valid_dataloader
)))
quanter
=
QAT
(
config
=
quant_config
,
act_preprocess
=
PACT
)
quanter
.
quantize
(
model
)
# start train
# start train
program
.
train
(
config
,
train_dataloader
,
valid_dataloader
,
device
,
model
,
program
.
train
(
config
,
train_dataloader
,
valid_dataloader
,
device
,
model
,
loss_class
,
optimizer
,
lr_scheduler
,
post_process_class
,
loss_class
,
optimizer
,
lr_scheduler
,
post_process_class
,
eval_class
,
pre_best_model_dict
,
logger
,
vdl_writer
)
eval_class
,
pre_best_model_dict
,
logger
,
vdl_writer
)
def
test_reader
(
config
,
device
,
logger
):
loader
=
build_dataloader
(
config
,
'Train'
,
device
,
logger
)
import
time
starttime
=
time
.
time
()
count
=
0
try
:
for
data
in
loader
():
count
+=
1
if
count
%
1
==
0
:
batch_time
=
time
.
time
()
-
starttime
starttime
=
time
.
time
()
logger
.
info
(
"reader: {}, {}, {}"
.
format
(
count
,
len
(
data
[
0
]),
batch_time
))
except
Exception
as
e
:
logger
.
info
(
e
)
logger
.
info
(
"finish reader: {}, Success!"
.
format
(
count
))
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
config
,
device
,
logger
,
vdl_writer
=
program
.
preprocess
(
is_train
=
True
)
config
,
device
,
logger
,
vdl_writer
=
program
.
preprocess
(
is_train
=
True
)
main
(
config
,
device
,
logger
,
vdl_writer
)
main
(
config
,
device
,
logger
,
vdl_writer
)
# test_reader(config, device, logger)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录