Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
wangsen
paddle_dbnet
Commits
19e69e92
Commit
19e69e92
authored
Jul 13, 2021
by
Leif
Browse files
Merge remote-tracking branch 'origin/dygraph' into dygraph
parents
829d2042
2062b509
Changes
28
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
122 additions
and
81 deletions
+122
-81
test/test.sh
test/test.sh
+83
-67
test1/table/README_ch.md
test1/table/README_ch.md
+23
-1
tools/eval.py
tools/eval.py
+6
-3
tools/infer/predict_det.py
tools/infer/predict_det.py
+4
-4
tools/infer/predict_system.py
tools/infer/predict_system.py
+0
-2
tools/infer/utility.py
tools/infer/utility.py
+2
-2
tools/program.py
tools/program.py
+4
-1
tools/train.py
tools/train.py
+0
-1
No files found.
test/test.sh
View file @
19e69e92
...
@@ -41,59 +41,51 @@ gpu_list=$(func_parser_value "${lines[2]}")
...
@@ -41,59 +41,51 @@ gpu_list=$(func_parser_value "${lines[2]}")
autocast_list
=
$(
func_parser_value
"
${
lines
[3]
}
"
)
autocast_list
=
$(
func_parser_value
"
${
lines
[3]
}
"
)
autocast_key
=
$(
func_parser_key
"
${
lines
[3]
}
"
)
autocast_key
=
$(
func_parser_key
"
${
lines
[3]
}
"
)
epoch_key
=
$(
func_parser_key
"
${
lines
[4]
}
"
)
epoch_key
=
$(
func_parser_key
"
${
lines
[4]
}
"
)
epoch_num
=
$(
func_parser_value
"
${
lines
[4]
}
"
)
save_model_key
=
$(
func_parser_key
"
${
lines
[5]
}
"
)
save_model_key
=
$(
func_parser_key
"
${
lines
[5]
}
"
)
save_infer_key
=
$(
func_parser_key
"
${
lines
[6]
}
"
)
train_batch_key
=
$(
func_parser_key
"
${
lines
[6]
}
"
)
train_batch_key
=
$(
func_parser_key
"
${
lines
[7]
}
"
)
train_use_gpu_key
=
$(
func_parser_key
"
${
lines
[7]
}
"
)
train_use_gpu_key
=
$(
func_parser_key
"
${
lines
[8]
}
"
)
pretrain_model_key
=
$(
func_parser_key
"
${
lines
[8]
}
"
)
pretrain_model_key
=
$(
func_parser_key
"
${
lines
[9]
}
"
)
pretrain_model_value
=
$(
func_parser_value
"
${
lines
[8]
}
"
)
trainer_list
=
$(
func_parser_value
"
${
lines
[10]
}
"
)
trainer_list
=
$(
func_parser_value
"
${
lines
[9]
}
"
)
norm_trainer
=
$(
func_parser_value
"
${
lines
[11]
}
"
)
norm_trainer
=
$(
func_parser_value
"
${
lines
[10]
}
"
)
pact_trainer
=
$(
func_parser_value
"
${
lines
[12]
}
"
)
pact_trainer
=
$(
func_parser_value
"
${
lines
[11]
}
"
)
fpgm_trainer
=
$(
func_parser_value
"
${
lines
[13]
}
"
)
fpgm_trainer
=
$(
func_parser_value
"
${
lines
[12]
}
"
)
distill_trainer
=
$(
func_parser_value
"
${
lines
[14]
}
"
)
distill_trainer
=
$(
func_parser_value
"
${
lines
[13]
}
"
)
eval_py
=
$(
func_parser_value
"
${
lines
[15]
}
"
)
eval_py
=
$(
func_parser_value
"
${
lines
[14]
}
"
)
norm_export
=
$(
func_parser_value
"
${
lines
[16]
}
"
)
pact_export
=
$(
func_parser_value
"
${
lines
[17]
}
"
)
save_infer_key
=
$(
func_parser_key
"
${
lines
[15]
}
"
)
fpgm_export
=
$(
func_parser_value
"
${
lines
[18]
}
"
)
export_weight
=
$(
func_parser_key
"
${
lines
[16]
}
"
)
distill_export
=
$(
func_parser_value
"
${
lines
[19]
}
"
)
norm_export
=
$(
func_parser_value
"
${
lines
[17]
}
"
)
pact_export
=
$(
func_parser_value
"
${
lines
[18]
}
"
)
inference_py
=
$(
func_parser_value
"
${
lines
[20]
}
"
)
fpgm_export
=
$(
func_parser_value
"
${
lines
[19]
}
"
)
use_gpu_key
=
$(
func_parser_key
"
${
lines
[21]
}
"
)
distill_export
=
$(
func_parser_value
"
${
lines
[20]
}
"
)
use_gpu_list
=
$(
func_parser_value
"
${
lines
[21]
}
"
)
use_mkldnn_key
=
$(
func_parser_key
"
${
lines
[22]
}
"
)
inference_py
=
$(
func_parser_value
"
${
lines
[21]
}
"
)
use_mkldnn_list
=
$(
func_parser_value
"
${
lines
[22]
}
"
)
use_gpu_key
=
$(
func_parser_key
"
${
lines
[22]
}
"
)
cpu_threads_key
=
$(
func_parser_key
"
${
lines
[23]
}
"
)
use_gpu_list
=
$(
func_parser_value
"
${
lines
[22]
}
"
)
cpu_threads_list
=
$(
func_parser_value
"
${
lines
[23]
}
"
)
use_mkldnn_key
=
$(
func_parser_key
"
${
lines
[23]
}
"
)
batch_size_key
=
$(
func_parser_key
"
${
lines
[24]
}
"
)
use_mkldnn_list
=
$(
func_parser_value
"
${
lines
[23]
}
"
)
batch_size_list
=
$(
func_parser_value
"
${
lines
[24]
}
"
)
cpu_threads_key
=
$(
func_parser_key
"
${
lines
[24]
}
"
)
use_trt_key
=
$(
func_parser_key
"
${
lines
[25]
}
"
)
cpu_threads_list
=
$(
func_parser_value
"
${
lines
[24]
}
"
)
use_trt_list
=
$(
func_parser_value
"
${
lines
[25]
}
"
)
batch_size_key
=
$(
func_parser_key
"
${
lines
[25]
}
"
)
precision_key
=
$(
func_parser_key
"
${
lines
[26]
}
"
)
batch_size_list
=
$(
func_parser_value
"
${
lines
[25]
}
"
)
precision_list
=
$(
func_parser_value
"
${
lines
[26]
}
"
)
use_trt_key
=
$(
func_parser_key
"
${
lines
[26]
}
"
)
model_dir_key
=
$(
func_parser_key
"
${
lines
[27]
}
"
)
use_trt_list
=
$(
func_parser_value
"
${
lines
[26]
}
"
)
image_dir_key
=
$(
func_parser_key
"
${
lines
[28]
}
"
)
precision_key
=
$(
func_parser_key
"
${
lines
[27]
}
"
)
save_log_key
=
$(
func_parser_key
"
${
lines
[29]
}
"
)
precision_list
=
$(
func_parser_value
"
${
lines
[27]
}
"
)
infer_model_key
=
$(
func_parser_key
"
${
lines
[28]
}
"
)
infer_model
=
$(
func_parser_value
"
${
lines
[28]
}
"
)
image_dir_key
=
$(
func_parser_key
"
${
lines
[29]
}
"
)
infer_img_dir
=
$(
func_parser_value
"
${
lines
[29]
}
"
)
save_log_key
=
$(
func_parser_key
"
${
lines
[30]
}
"
)
LOG_PATH
=
"./test/output"
LOG_PATH
=
"./test/output"
mkdir
-p
${
LOG_PATH
}
mkdir
-p
${
LOG_PATH
}
status_log
=
"
${
LOG_PATH
}
/results.log"
status_log
=
"
${
LOG_PATH
}
/results.log"
if
[
${
MODE
}
=
"lite_train_infer"
]
;
then
export
infer_img_dir
=
"./train_data/icdar2015/text_localization/ch4_test_images/"
export
epoch_num
=
10
elif
[
${
MODE
}
=
"whole_infer"
]
;
then
export
infer_img_dir
=
"./train_data/icdar2015/text_localization/ch4_test_images/"
export
epoch_num
=
10
elif
[
${
MODE
}
=
"whole_train_infer"
]
;
then
export
infer_img_dir
=
"./train_data/icdar2015/text_localization/ch4_test_images/"
export
epoch_num
=
300
else
export
infer_img_dir
=
"./inference/ch_det_data_50/all-sum-510"
export
infer_model_dir
=
"./inference/ch_ppocr_mobile_v2.0_det_train/best_accuracy"
fi
function
func_inference
(){
function
func_inference
(){
IFS
=
'|'
IFS
=
'|'
...
@@ -109,8 +101,8 @@ function func_inference(){
...
@@ -109,8 +101,8 @@ function func_inference(){
for
use_mkldnn
in
${
use_mkldnn_list
[*]
}
;
do
for
use_mkldnn
in
${
use_mkldnn_list
[*]
}
;
do
for
threads
in
${
cpu_threads_list
[*]
}
;
do
for
threads
in
${
cpu_threads_list
[*]
}
;
do
for
batch_size
in
${
batch_size_list
[*]
}
;
do
for
batch_size
in
${
batch_size_list
[*]
}
;
do
_save_log_path
=
"
${
_log_path
}
/infer_cpu_usemkldnn_
${
use_mkldnn
}
_threads_
${
threads
}
_batchsize_
${
batch_size
}
"
_save_log_path
=
"
${
_log_path
}
/infer_cpu_usemkldnn_
${
use_mkldnn
}
_threads_
${
threads
}
_batchsize_
${
batch_size
}
.log
"
command
=
"
${
_python
}
${
_script
}
${
use_gpu_key
}
=
${
use_gpu
}
${
use_mkldnn_key
}
=
${
use_mkldnn
}
${
cpu_threads_key
}
=
${
threads
}
${
model_
dir_
key
}
=
${
_model_dir
}
${
batch_size_key
}
=
${
batch_size
}
${
image_dir_key
}
=
${
_img_dir
}
${
save_log_key
}
=
${
_save_log_path
}
--benchmark=True"
command
=
"
${
_python
}
${
_script
}
${
use_gpu_key
}
=
${
use_gpu
}
${
use_mkldnn_key
}
=
${
use_mkldnn
}
${
cpu_threads_key
}
=
${
threads
}
${
infer_
model_key
}
=
${
_model_dir
}
${
batch_size_key
}
=
${
batch_size
}
${
image_dir_key
}
=
${
_img_dir
}
${
save_log_key
}
=
${
_save_log_path
}
--benchmark=True"
eval
$command
eval
$command
status_check
$?
"
${
command
}
"
"
${
status_log
}
"
status_check
$?
"
${
command
}
"
"
${
status_log
}
"
done
done
...
@@ -123,8 +115,8 @@ function func_inference(){
...
@@ -123,8 +115,8 @@ function func_inference(){
continue
continue
fi
fi
for
batch_size
in
${
batch_size_list
[*]
}
;
do
for
batch_size
in
${
batch_size_list
[*]
}
;
do
_save_log_path
=
"
${
_log_path
}
/infer_gpu_usetrt_
${
use_trt
}
_precision_
${
precision
}
_batchsize_
${
batch_size
}
"
_save_log_path
=
"
${
_log_path
}
/infer_gpu_usetrt_
${
use_trt
}
_precision_
${
precision
}
_batchsize_
${
batch_size
}
.log
"
command
=
"
${
_python
}
${
_script
}
${
use_gpu_key
}
=
${
use_gpu
}
${
use_trt_key
}
=
${
use_trt
}
${
precision_key
}
=
${
precision
}
${
model_
dir_
key
}
=
${
_model_dir
}
${
batch_size_key
}
=
${
batch_size
}
${
image_dir_key
}
=
${
_img_dir
}
${
save_log_key
}
=
${
_save_log_path
}
--benchmark=True"
command
=
"
${
_python
}
${
_script
}
${
use_gpu_key
}
=
${
use_gpu
}
${
use_trt_key
}
=
${
use_trt
}
${
precision_key
}
=
${
precision
}
${
infer_
model_key
}
=
${
_model_dir
}
${
batch_size_key
}
=
${
batch_size
}
${
image_dir_key
}
=
${
_img_dir
}
${
save_log_key
}
=
${
_save_log_path
}
--benchmark=True"
eval
$command
eval
$command
status_check
$?
"
${
command
}
"
"
${
status_log
}
"
status_check
$?
"
${
command
}
"
"
${
status_log
}
"
done
done
...
@@ -138,12 +130,13 @@ if [ ${MODE} != "infer" ]; then
...
@@ -138,12 +130,13 @@ if [ ${MODE} != "infer" ]; then
IFS
=
"|"
IFS
=
"|"
for
gpu
in
${
gpu_list
[*]
}
;
do
for
gpu
in
${
gpu_list
[*]
}
;
do
train_
use_gpu
=
True
use_gpu
=
True
if
[
${
gpu
}
=
"-1"
]
;
then
if
[
${
gpu
}
=
"-1"
]
;
then
train_
use_gpu
=
False
use_gpu
=
False
env
=
""
env
=
""
elif
[
${#
gpu
}
-le
1
]
;
then
elif
[
${#
gpu
}
-le
1
]
;
then
env
=
"export CUDA_VISIBLE_DEVICES=
${
gpu
}
"
env
=
"export CUDA_VISIBLE_DEVICES=
${
gpu
}
"
eval
${
env
}
elif
[
${#
gpu
}
-le
15
]
;
then
elif
[
${#
gpu
}
-le
15
]
;
then
IFS
=
","
IFS
=
","
array
=(
${
gpu
}
)
array
=(
${
gpu
}
)
...
@@ -155,6 +148,7 @@ for gpu in ${gpu_list[*]}; do
...
@@ -155,6 +148,7 @@ for gpu in ${gpu_list[*]}; do
ips
=
${
array
[0]
}
ips
=
${
array
[0]
}
gpu
=
${
array
[1]
}
gpu
=
${
array
[1]
}
IFS
=
"|"
IFS
=
"|"
env
=
" "
fi
fi
for
autocast
in
${
autocast_list
[*]
}
;
do
for
autocast
in
${
autocast_list
[*]
}
;
do
for
trainer
in
${
trainer_list
[*]
}
;
do
for
trainer
in
${
trainer_list
[*]
}
;
do
...
@@ -179,13 +173,32 @@ for gpu in ${gpu_list[*]}; do
...
@@ -179,13 +173,32 @@ for gpu in ${gpu_list[*]}; do
continue
continue
fi
fi
save_log
=
"
${
LOG_PATH
}
/
${
trainer
}
_gpus_
${
gpu
}
_autocast_
${
autocast
}
"
# not set autocast when autocast is null
if
[
${#
gpu
}
-le
2
]
;
then
# epoch_num #TODO
if
[
${
autocast
}
=
"null"
]
;
then
cmd
=
"
${
python
}
${
run_train
}
${
train_use_gpu_key
}
=
${
train_use_gpu
}
${
autocast_key
}
=
${
autocast
}
${
epoch_key
}
=
${
epoch_num
}
${
save_model_key
}
=
${
save_log
}
"
set_autocast
=
" "
elif
[
${#
gpu
}
-le
15
]
;
then
else
cmd
=
"
${
python
}
-m paddle.distributed.launch --gpus=
${
gpu
}
${
run_train
}
${
autocast_key
}
=
${
autocast
}
${
epoch_key
}
=
${
epoch_num
}
${
save_model_key
}
=
${
save_log
}
"
set_autocast
=
"
${
autocast_key
}
=
${
autocast
}
"
fi
# not set epoch when whole_train_infer
if
[
${
MODE
}
!=
"whole_train_infer"
]
;
then
set_epoch
=
"
${
epoch_key
}
=
${
epoch_num
}
"
else
set_epoch
=
" "
fi
# set pretrain
if
[
${
pretrain_model_value
}
!=
"null"
]
;
then
set_pretrain
=
"
${
pretrain_model_key
}
=
${
pretrain_model_value
}
"
else
else
cmd
=
"
${
python
}
-m paddle.distributed.launch --ips=
${
ips
}
--gpus=
${
gpu
}
${
run_train
}
${
autocast_key
}
=
${
autocast
}
${
epoch_key
}
=
${
epoch_num
}
${
save_model_key
}
=
${
save_log
}
"
set_pretrain
=
" "
fi
save_log
=
"
${
LOG_PATH
}
/
${
trainer
}
_gpus_
${
gpu
}
_autocast_
${
autocast
}
"
if
[
${#
gpu
}
-le
2
]
;
then
# train with cpu or single gpu
cmd
=
"
${
python
}
${
run_train
}
${
train_use_gpu_key
}
=
${
use_gpu
}
${
save_model_key
}
=
${
save_log
}
${
set_epoch
}
${
set_pretrain
}
${
set_autocast
}
"
elif
[
${#
gpu
}
-le
15
]
;
then
# train with multi-gpu
cmd
=
"
${
python
}
-m paddle.distributed.launch --gpus=
${
gpu
}
${
run_train
}
${
save_model_key
}
=
${
save_log
}
${
set_epoch
}
${
set_pretrain
}
${
set_autocast
}
"
else
# train with multi-machine
cmd
=
"
${
python
}
-m paddle.distributed.launch --ips=
${
ips
}
--gpus=
${
gpu
}
${
run_train
}
${
save_model_key
}
=
${
save_log
}
${
set_pretrain
}
${
set_epoch
}
${
set_autocast
}
"
fi
fi
# run train
# run train
eval
$cmd
eval
$cmd
...
@@ -198,24 +211,27 @@ for gpu in ${gpu_list[*]}; do
...
@@ -198,24 +211,27 @@ for gpu in ${gpu_list[*]}; do
# run export model
# run export model
save_infer_path
=
"
${
save_log
}
"
save_infer_path
=
"
${
save_log
}
"
export_cmd
=
"
${
python
}
${
run_export
}
${
save_model_key
}
=
${
save_log
}
${
pretrain_model_key
}
=
${
save_log
}
/latest
${
save_infer_key
}
=
${
save_infer_path
}
"
export_cmd
=
"
${
python
}
${
run_export
}
${
save_model_key
}
=
${
save_log
}
${
export_weight
}
=
${
save_log
}
/latest
${
save_infer_key
}
=
${
save_infer_path
}
"
eval
$export_cmd
eval
$export_cmd
status_check
$?
"
${
export_cmd
}
"
"
${
status_log
}
"
status_check
$?
"
${
export_cmd
}
"
"
${
status_log
}
"
#run inference
#run inference
eval
$env
save_infer_path
=
"
${
save_log
}
"
save_infer_path
=
"
${
save_log
}
"
func_inference
"
${
python
}
"
"
${
inference_py
}
"
"
${
save_infer_path
}
"
"
${
LOG_PATH
}
"
"
${
infer_img_dir
}
"
func_inference
"
${
python
}
"
"
${
inference_py
}
"
"
${
save_infer_path
}
"
"
${
LOG_PATH
}
"
"
${
infer_img_dir
}
"
eval
"unset CUDA_VISIBLE_DEVICES"
done
done
done
done
done
done
else
else
save_infer_path
=
"
${
LOG_PATH
}
/
${
MODE
}
"
GPUID
=
$3
run_export
=
${
norm_export
}
if
[
${#
GPUID
}
-le
0
]
;
then
export_cmd
=
"
${
python
}
${
run_export
}
${
save_model_key
}
=
${
save_infer_path
}
${
pretrain_model_key
}
=
${
infer_model_dir
}
${
save_infer_key
}
=
${
save_infer_path
}
"
env
=
" "
eval
$export_cmd
else
status_check
$?
"
${
export_cmd
}
"
"
${
status_log
}
"
env
=
"export CUDA_VISIBLE_DEVICES=
${
GPUID
}
"
fi
echo
$env
#run inference
#run inference
func_inference
"
${
python
}
"
"
${
inference_py
}
"
"
${
save_
infer_
path
}
"
"
${
LOG_PATH
}
"
"
${
infer_img_dir
}
"
func_inference
"
${
python
}
"
"
${
inference_py
}
"
"
${
infer_
model
}
"
"
${
LOG_PATH
}
"
"
${
infer_img_dir
}
"
fi
fi
test1/table/README_ch.md
View file @
19e69e92
...
@@ -19,7 +19,29 @@
...
@@ -19,7 +19,29 @@
### 2.1 训练
### 2.1 训练
TBD
#### 数据准备
训练数据使用公开数据集
[
PubTabNet
](
https://arxiv.org/abs/1911.10683
)
,可以从
[
官网
](
https://github.com/ibm-aur-nlp/PubTabNet
)
下载。PubTabNet数据集包含约50万张表格数据的图像,以及图像对应的html格式的注释。
#### 启动训练
*如果您安装的是cpu版本,请将配置文件中的 `use_gpu` 字段修改为false*
```
shell
# 单机单卡训练
python3 tools/train.py
-c
configs/table/table_mv3.yml
# 单机多卡训练,通过 --gpus 参数设置使用的GPU ID
python3
-m
paddle.distributed.launch
--gpus
'0,1,2,3'
tools/train.py
-c
configs/table/table_mv3.yml
```
上述指令中,通过-c 选择训练使用configs/table/table_mv3.yml配置文件。有关配置文件的详细解释,请参考
[
链接
](
./config.md
)
。
#### 断点训练
如果训练程序中断,如果希望加载训练中断的模型从而恢复训练,可以通过指定Global.checkpoints指定要加载的模型路径:
```
shell
python3 tools/train.py
-c
configs/table/table_mv3.yml
-o
Global.checkpoints
=
./your/trained/model
```
**注意**
:
`Global.checkpoints`
的优先级高于
`Global.pretrain_weights`
的优先级,即同时指定两个参数时,优先加载
`Global.checkpoints`
指定的模型,如果
`Global.checkpoints`
指定的模型路径有误,会加载
`Global.pretrain_weights`
指定的模型。
### 2.2 评估
### 2.2 评估
先cd到PaddleOCR/ppstructure目录下
先cd到PaddleOCR/ppstructure目录下
...
...
tools/eval.py
View file @
19e69e92
...
@@ -27,7 +27,7 @@ from ppocr.data import build_dataloader
...
@@ -27,7 +27,7 @@ from ppocr.data import build_dataloader
from
ppocr.modeling.architectures
import
build_model
from
ppocr.modeling.architectures
import
build_model
from
ppocr.postprocess
import
build_post_process
from
ppocr.postprocess
import
build_post_process
from
ppocr.metrics
import
build_metric
from
ppocr.metrics
import
build_metric
from
ppocr.utils.save_load
import
init_model
from
ppocr.utils.save_load
import
init_model
,
load_pretrained_params
from
ppocr.utils.utility
import
print_dict
from
ppocr.utils.utility
import
print_dict
import
tools.program
as
program
import
tools.program
as
program
...
@@ -55,7 +55,10 @@ def main():
...
@@ -55,7 +55,10 @@ def main():
model
=
build_model
(
config
[
'Architecture'
])
model
=
build_model
(
config
[
'Architecture'
])
use_srn
=
config
[
'Architecture'
][
'algorithm'
]
==
"SRN"
use_srn
=
config
[
'Architecture'
][
'algorithm'
]
==
"SRN"
model_type
=
config
[
'Architecture'
][
'model_type'
]
if
"model_type"
in
config
[
'Architecture'
].
keys
():
model_type
=
config
[
'Architecture'
][
'model_type'
]
else
:
model_type
=
None
best_model_dict
=
init_model
(
config
,
model
)
best_model_dict
=
init_model
(
config
,
model
)
if
len
(
best_model_dict
):
if
len
(
best_model_dict
):
...
@@ -68,7 +71,7 @@ def main():
...
@@ -68,7 +71,7 @@ def main():
# start eval
# start eval
metric
=
program
.
eval
(
model
,
valid_dataloader
,
post_process_class
,
metric
=
program
.
eval
(
model
,
valid_dataloader
,
post_process_class
,
eval_class
,
model_type
,
use_srn
)
eval_class
,
model_type
,
use_srn
)
logger
.
info
(
'metric eval ***************'
)
logger
.
info
(
'metric eval ***************'
)
for
k
,
v
in
metric
.
items
():
for
k
,
v
in
metric
.
items
():
logger
.
info
(
'{}:{}'
.
format
(
k
,
v
))
logger
.
info
(
'{}:{}'
.
format
(
k
,
v
))
...
...
tools/infer/predict_det.py
View file @
19e69e92
...
@@ -175,7 +175,7 @@ class TextDetector(object):
...
@@ -175,7 +175,7 @@ class TextDetector(object):
st
=
time
.
time
()
st
=
time
.
time
()
if
args
.
benchmark
:
if
self
.
args
.
benchmark
:
self
.
autolog
.
times
.
start
()
self
.
autolog
.
times
.
start
()
data
=
transform
(
data
,
self
.
preprocess_op
)
data
=
transform
(
data
,
self
.
preprocess_op
)
...
@@ -186,7 +186,7 @@ class TextDetector(object):
...
@@ -186,7 +186,7 @@ class TextDetector(object):
shape_list
=
np
.
expand_dims
(
shape_list
,
axis
=
0
)
shape_list
=
np
.
expand_dims
(
shape_list
,
axis
=
0
)
img
=
img
.
copy
()
img
=
img
.
copy
()
if
args
.
benchmark
:
if
self
.
args
.
benchmark
:
self
.
autolog
.
times
.
stamp
()
self
.
autolog
.
times
.
stamp
()
self
.
input_tensor
.
copy_from_cpu
(
img
)
self
.
input_tensor
.
copy_from_cpu
(
img
)
...
@@ -195,7 +195,7 @@ class TextDetector(object):
...
@@ -195,7 +195,7 @@ class TextDetector(object):
for
output_tensor
in
self
.
output_tensors
:
for
output_tensor
in
self
.
output_tensors
:
output
=
output_tensor
.
copy_to_cpu
()
output
=
output_tensor
.
copy_to_cpu
()
outputs
.
append
(
output
)
outputs
.
append
(
output
)
if
args
.
benchmark
:
if
self
.
args
.
benchmark
:
self
.
autolog
.
times
.
stamp
()
self
.
autolog
.
times
.
stamp
()
preds
=
{}
preds
=
{}
...
@@ -220,7 +220,7 @@ class TextDetector(object):
...
@@ -220,7 +220,7 @@ class TextDetector(object):
else
:
else
:
dt_boxes
=
self
.
filter_tag_det_res
(
dt_boxes
,
ori_im
.
shape
)
dt_boxes
=
self
.
filter_tag_det_res
(
dt_boxes
,
ori_im
.
shape
)
if
args
.
benchmark
:
if
self
.
args
.
benchmark
:
self
.
autolog
.
times
.
end
(
stamp
=
True
)
self
.
autolog
.
times
.
end
(
stamp
=
True
)
et
=
time
.
time
()
et
=
time
.
time
()
return
dt_boxes
,
et
-
st
return
dt_boxes
,
et
-
st
...
...
tools/infer/predict_system.py
View file @
19e69e92
...
@@ -174,8 +174,6 @@ def main(args):
...
@@ -174,8 +174,6 @@ def main(args):
logger
.
info
(
"The predict total time is {}"
.
format
(
time
.
time
()
-
_st
))
logger
.
info
(
"The predict total time is {}"
.
format
(
time
.
time
()
-
_st
))
logger
.
info
(
"
\n
The predict total time is {}"
.
format
(
total_time
))
logger
.
info
(
"
\n
The predict total time is {}"
.
format
(
total_time
))
img_num
=
text_sys
.
text_detector
.
det_times
.
img_num
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
args
=
utility
.
parse_args
()
args
=
utility
.
parse_args
()
...
...
tools/infer/utility.py
View file @
19e69e92
...
@@ -37,7 +37,7 @@ def init_args():
...
@@ -37,7 +37,7 @@ def init_args():
parser
.
add_argument
(
"--use_gpu"
,
type
=
str2bool
,
default
=
True
)
parser
.
add_argument
(
"--use_gpu"
,
type
=
str2bool
,
default
=
True
)
parser
.
add_argument
(
"--ir_optim"
,
type
=
str2bool
,
default
=
True
)
parser
.
add_argument
(
"--ir_optim"
,
type
=
str2bool
,
default
=
True
)
parser
.
add_argument
(
"--use_tensorrt"
,
type
=
str2bool
,
default
=
False
)
parser
.
add_argument
(
"--use_tensorrt"
,
type
=
str2bool
,
default
=
False
)
parser
.
add_argument
(
"--min_subgraph_size"
,
type
=
int
,
default
=
3
)
parser
.
add_argument
(
"--min_subgraph_size"
,
type
=
int
,
default
=
10
)
parser
.
add_argument
(
"--precision"
,
type
=
str
,
default
=
"fp32"
)
parser
.
add_argument
(
"--precision"
,
type
=
str
,
default
=
"fp32"
)
parser
.
add_argument
(
"--gpu_mem"
,
type
=
int
,
default
=
500
)
parser
.
add_argument
(
"--gpu_mem"
,
type
=
int
,
default
=
500
)
...
@@ -164,7 +164,7 @@ def create_predictor(args, mode, logger):
...
@@ -164,7 +164,7 @@ def create_predictor(args, mode, logger):
config
.
enable_use_gpu
(
args
.
gpu_mem
,
0
)
config
.
enable_use_gpu
(
args
.
gpu_mem
,
0
)
if
args
.
use_tensorrt
:
if
args
.
use_tensorrt
:
config
.
enable_tensorrt_engine
(
config
.
enable_tensorrt_engine
(
precision_mode
=
inference
.
PrecisionType
.
Float32
,
precision_mode
=
precision
,
max_batch_size
=
args
.
max_batch_size
,
max_batch_size
=
args
.
max_batch_size
,
min_subgraph_size
=
args
.
min_subgraph_size
)
min_subgraph_size
=
args
.
min_subgraph_size
)
# skip the minmum trt subgraph
# skip the minmum trt subgraph
...
...
tools/program.py
View file @
19e69e92
...
@@ -186,7 +186,10 @@ def train(config,
...
@@ -186,7 +186,10 @@ def train(config,
model
.
train
()
model
.
train
()
use_srn
=
config
[
'Architecture'
][
'algorithm'
]
==
"SRN"
use_srn
=
config
[
'Architecture'
][
'algorithm'
]
==
"SRN"
model_type
=
config
[
'Architecture'
][
'model_type'
]
try
:
model_type
=
config
[
'Architecture'
][
'model_type'
]
except
:
model_type
=
None
if
'start_epoch'
in
best_model_dict
:
if
'start_epoch'
in
best_model_dict
:
start_epoch
=
best_model_dict
[
'start_epoch'
]
start_epoch
=
best_model_dict
[
'start_epoch'
]
...
...
tools/train.py
View file @
19e69e92
...
@@ -98,7 +98,6 @@ def main(config, device, logger, vdl_writer):
...
@@ -98,7 +98,6 @@ def main(config, device, logger, vdl_writer):
eval_class
=
build_metric
(
config
[
'Metric'
])
eval_class
=
build_metric
(
config
[
'Metric'
])
# load pretrain model
# load pretrain model
pre_best_model_dict
=
load_dygraph_params
(
config
,
model
,
logger
,
optimizer
)
pre_best_model_dict
=
load_dygraph_params
(
config
,
model
,
logger
,
optimizer
)
logger
.
info
(
'train dataloader has {} iters'
.
format
(
len
(
train_dataloader
)))
logger
.
info
(
'train dataloader has {} iters'
.
format
(
len
(
train_dataloader
)))
if
valid_dataloader
is
not
None
:
if
valid_dataloader
is
not
None
:
logger
.
info
(
'valid dataloader has {} iters'
.
format
(
logger
.
info
(
'valid dataloader has {} iters'
.
format
(
...
...
Prev
1
2
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment