PaddlePaddle / PaddleOCR

Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)
https://paddlepaddle.github.io/PaddleOCR/
Apache License 2.0
43.9k stars 7.8k forks source link

文本识别中,TPS模块,为啥参数量并不大,但pdmodel很大 #2779

Closed simplify23 closed 3 years ago

simplify23 commented 3 years ago

测试了一下,TPS的small模块,参数量<1M,但这个模块会让model文件增加7.0+M以上,这个是什么原因呢?是TPS中的卷积或者全连接导致的吗?还是有什么其他原因?

LDOUBLEV commented 3 years ago

参数量和model文件没有大小关系,参数量影响paparams文件的大小,按照Paddle OCR里StartNet和CRNN的对比,加TPS也就相差1M左右;

startnet 模型: https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_mv3_tps_bilstm_ctc_v2.0_train.tar CRNN模型: https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_mv3_none_bilstm_ctc_v2.0_train.tar

simplify23 commented 3 years ago

参数量和model文件没有大小关系,参数量影响paparams文件的大小,按照Paddle OCR里StartNet和CRNN的对比,加TPS也就相差1M左右;

startnet 模型: https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_mv3_tps_bilstm_ctc_v2.0_train.tar CRNN模型: https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_mv3_none_bilstm_ctc_v2.0_train.tar

理解这个意思。我们可以在训练的时候统计参数量来控制pdparams的大小,但model文件的大小和什么相关呢?TPS的small版本,参数<1M,但通过控制变量(startnet和crnn)发现,增加TPS,pdmodel的大小增加了7.0+M,目前测出来发现pdmodel的增加和TPS预测的矫正点的多少有关(如20个点->7.0+ 10个点->3.0+等等)由于比赛的要求,想问一下我该如何控制pdmodel模型的大小,这个又是一个什么样的原理呢

simplify23 commented 3 years ago

另外这个pdmodel,可以通过一些模型压缩手段缩小吗,还是模型压缩仅能压缩参数量影响pdparams?

LDOUBLEV commented 3 years ago

你好,确实发现加入TPS后,pdmodel增加的过大,这个问题我们定位反馈下,你们可以继续做实验

LDOUBLEV commented 3 years ago

你好,修改了TPS 的代码,PR链接,预计pdmodel可以缩减到1.5M

paddle-bot-old[bot] commented 3 years ago

Since you haven\'t replied for more than 3 months, we have closed this issue/pr. If the problem is not solved or there is a follow-up one, please reopen it at any time and we will continue to follow up. It is recommended to pull and try the latest code first. 由于您超过三个月未回复,我们将关闭这个issue/pr。 若问题未解决或有后续问题,请随时重新打开(建议先拉取最新代码进行尝试),我们会继续跟进。