Replies: 13 comments 9 replies
-
您好,请问在paddle3.0b1上也会内存上涨吗?您那边可以试试,paddle2.6我这边也同步看一下 |
Beta Was this translation helpful? Give feedback.
-
未测试paddle3.0b1,不过我刚把paddle版本降级到2.4.2,就不上涨了,正常执行,不知道是不是paddle版本问题,或者是和tensorrt版本不匹配??工作需要把paddle版本升级到2.6.1,ocr版本升级为2.8.1,所以还是要定位原因。麻烦了 |
Beta Was this translation helpful? Give feedback.
-
到底哪些版本会存在内存泄漏问题,官方能不能具体给个说明? |
Beta Was this translation helpful? Give feedback.
-
您好,您那边可以提供一下导出的配置的文件和官方权重的位置吗? |
Beta Was this translation helpful? Give feedback.
-
model : https://github.com/PaddlePaddle/PaddleOCR/blob/v2.8.1/doc/doc_ch/models_list.md
v3 config:
`Global:
debug: false
epoch_num: 100
log_smooth_window: 20
print_batch_step: 10
save_model_dir: ./output/v3_en_mobile
save_epoch_step: 3
eval_batch_step:
- 0
- 100
cal_metric_during_train: true
pretrained_model: xxxxxxxxxxxxx/pretrain_model/en_PP-OCRv3_rec_train/best_accuracy.pdparams
checkpoints: null
save_inference_dir: null
use_visualdl: false
infer_img: doc/imgs_words/ch/word_1.jpg
character_dict_path: ppocr/utils/en_dict.txt
max_text_length: 25
infer_mode: false
use_space_char: true
distributed: true
save_res_path: ./output/rec/predicts_ppocrv3_en.txt
Optimizer:
name: Adam
beta1: 0.9
beta2: 0.999
lr:
name: Cosine
learning_rate: 0.001
warmup_epoch: 5
regularizer:
name: L2
factor: 3.0e-05
Architecture:
model_type: rec
algorithm: SVTR_LCNet
Transform: null
Backbone:
name: MobileNetV1Enhance
scale: 0.5
last_conv_stride:
- 1
- 2
last_pool_type: avg
last_pool_kernel_size:
- 2
- 2
Head:
name: MultiHead
head_list:
- CTCHead:
Neck:
name: svtr
dims: 64
depth: 2
hidden_dims: 120
use_guide: true
Head:
fc_decay: 1.0e-05
- SARHead:
enc_dim: 512
max_text_length: 25
Loss:
name: MultiLoss
loss_config_list:
- CTCLoss: null
- SARLoss: null
PostProcess:
name: CTCLabelDecode
Metric:
name: RecMetric
main_indicator: acc
ignore_space: false
Train:
dataset:
name: SimpleDataSet
data_dir: xxxxxxxxxxxxxxxxxxxxxxxxxx
ext_op_transform_idx: 1
label_file_list:
- xxxxxxxxxxxxxxxxxxxxxxx/train_list.txt
transforms:
- DecodeImage:
img_mode: BGR
channel_first: false
- RecConAug:
prob: 0.5
ext_data_num: 2
image_shape:
- 48
- 320
- 3
max_text_length: 25
- RecAug: null
- MultiLabelEncode: null
- RecResizeImg:
image_shape:
- 3
- 48
- 320
- KeepKeys:
keep_keys:
- image
- label_ctc
- label_sar
- length
- valid_ratio
loader:
shuffle: true
batch_size_per_card: 128
drop_last: true
num_workers: 4
Eval:
dataset:
name: SimpleDataSet
data_dir: xxxxxxxxxxxxxxxxxxxxxxxxxxxx
label_file_list:
- xxxxxxxxxxxxxxxxxxxxxxx/val_list.txt
transforms:
- DecodeImage:
img_mode: BGR
channel_first: false
- MultiLabelEncode: null
- RecResizeImg:
image_shape:
- 3
- 48
- 320
- KeepKeys:
keep_keys:
- image
- label_ctc
- label_sar
- length
- valid_ratio
loader:
shuffle: false
drop_last: false
batch_size_per_card: 128
num_workers: 4
profiler_options: null
`
v4 config:
`Global:
debug: false
use_gpu: true
epoch_num: 2
amp_level: O1
log_smooth_window: 20
print_batch_step: 10
save_model_dir: xxxxxxxxxxxxxxxxxxxxxxxx
save_epoch_step: 10
eval_batch_step:
- 0
- 80
cal_metric_during_train: true
pretrained_model: xxxxxxxxxxxxxxxxxxx/pretrain_model/en_PP-OCRv4_rec_train/best_accuracy.pdparams
checkpoints: null
save_inference_dir: null
use_visualdl: true
use_wandb: true
infer_img: doc/imgs_words/ch/word_1.jpg
character_dict_path: PaddleOCR/ppocr/utils/en_dict.txt
max_text_length: 25
infer_mode: false
use_space_char: true
distributed: true
save_res_path: PaddleOCR/output/rec/predicts_ppocrv3.txt
Optimizer:
name: Adam
beta1: 0.9
beta2: 0.999
lr:
name: Cosine
learning_rate: 0.0005
warmup_epoch: 5
regularizer:
name: L2
factor: 3.0e-05
Architecture:
model_type: rec
algorithm: SVTR_LCNet
Transform: null
Backbone:
name: PPLCNetV3
scale: 0.95
Head:
name: MultiHead
head_list:
- CTCHead:
Neck:
name: svtr
dims: 120
depth: 2
hidden_dims: 120
kernel_size:
- 1
- 3
use_guide: true
Head:
fc_decay: 1.0e-05
- NRTRHead:
nrtr_dim: 384
max_text_length: 25
Loss:
name: MultiLoss
loss_config_list:
- CTCLoss: null
- NRTRLoss: null
PostProcess:
name: CTCLabelDecode
Metric:
name: RecMetric
main_indicator: acc
ignore_space: false
Train:
dataset:
name: MultiScaleDataSet
ds_width: false
data_dir: xxxxxxxxxxxxxxxxxxxxxxxxxxxx
ext_op_transform_idx: 1
label_file_list:
- xxxxxxxxxxxxxxxxxxxxxxxxxxxx/train_list.txt
transforms:
- DecodeImage:
img_mode: BGR
channel_first: false
- RecConAug:
prob: 0.5
ext_data_num: 2
image_shape:
- 48
- 320
- 3
max_text_length: 25
- RecAug: null
- MultiLabelEncode:
gtc_encode: NRTRLabelEncode
- KeepKeys:
keep_keys:
- image
- label_ctc
- label_gtc
- length
- valid_ratio
sampler:
name: MultiScaleSampler
scales:
- - 320
- 32
- - 320
- 48
- - 320
- 64
first_bs: 96
fix_bs: false
divided_factor:
- 8
- 16
is_training: true
loader:
shuffle: true
batch_size_per_card: 96
drop_last: true
num_workers: 8
Eval:
dataset:
name: SimpleDataSet
data_dir: xxxxxxxxxxxxxxxxxxxxxx
label_file_list:
- xxxxxxxxxxxxxxxxxxxxx/val_list.txt
transforms:
- DecodeImage:
img_mode: BGR
channel_first: false
- MultiLabelEncode:
gtc_encode: NRTRLabelEncode
- RecResizeImg:
image_shape:
- 3
- 48
- 320
- KeepKeys:
keep_keys:
- image
- label_ctc
- label_gtc
- length
- valid_ratio
loader:
shuffle: false
drop_last: false
batch_size_per_card: 128
num_workers: 4
profiler_options: null |
Beta Was this translation helpful? Give feedback.
-
您好,请问您那边测试的图片数量是多少?有测试过官方模型是否会内存泄漏吗?我用官方模型开tensorrt测了一下,并用memory_profiler 可视化了一下内存,发现它确实会涨一下,但是也没有持续的上涨。 |
Beta Was this translation helpful? Give feedback.
-
我这边一张图重复了10万次 |
Beta Was this translation helpful? Give feedback.
-
可视化内存的代码如下predict_rec.py.zip |
Beta Was this translation helpful? Give feedback.
-
每次将图做点修改后,执行,重复10万次呢 |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
什么原因,能说一下吗 |
Beta Was this translation helpful? Give feedback.
-
根据您描述的问题,这是一个使用TensorRT推理时内存持续上涨的问题。以下是一些建议和解决方案:
a) 调整批处理参数: --rec_batch_num=1 # 将批处理大小设为1
--max_batch_size=1 # 限制最大批处理大小 b) 增加内存限制: --gpu_mem=2000 # 根据显卡实际情况设置GPU显存限制 c) 关闭一些不必要的选项: --warmup=False # 关闭预热
--benchmark=False # 关闭基准测试模式
python tools/infer/predict_rec.py \
--rec_model_dir=./inference/rec_ppocr_v4/ \
--image_dir="xx" \
--rec_algorithm="SVTR_LCNet" \
--rec_image_shape="3, 48, 320" \
--rec_batch_num=1 \
--rec_char_dict_path="./ppocr/utils/en_dict.txt" \
--use_gpu=True \
--gpu_mem=2000 \
--use_tensorrt=True \
--precision=fp32 \
--warmup=False \
--benchmark=False 这些优化措施应该能够帮助控制内存使用。如果问题仍然存在,建议提交详细的日志信息到PaddleOCR的GitHub issues以获取更多支持。 相关issue: #14203 希望以上建议对您有帮助。 Response generated by 🤖 feifei-bot | claude-3-5-sonnet-latest |
Beta Was this translation helpful? Give feedback.
-
大家现在有解决办法了吗,怎么处理呢,试了好多方法,只要使用不同图片,仍然会有内存泄露的问题,但是实际使用不可能只识别同样的图片 |
Beta Was this translation helpful? Give feedback.
-
🔎 Search before asking
🐛 Bug (问题描述)
运行命令如上,服务器运行 内存一直涨,直到挂掉,
paddlecor: v2.8.1
tensorrt: 8.6.1.6
python: 3.10
paddle: v2.6.1
这个问题只出现在使用tensorrt推理时。请问到底是什么原因
🏃♂️ Environment (运行环境)
linux
🌰 Minimal Reproducible Example (最小可复现问题的Demo)
使用paddleocr v2.8.1代码训练-导出-推理,使用tensorrt推理出现上述问题,推理参数设置:
Beta Was this translation helpful? Give feedback.
All reactions