pyreader队列size周期性变化导致训练速度时快时慢
Created by: Yogurt2019
hi,我使用
print("queue size:", train_py_reader.queue.size())
打印queuesize,发现queuesize一直增长,等size满了以后就不增长了,一直下降为0,然后所有GPU使用率都为0,卡住一段时间以后queue才增长,我发现这个现象严重影响训练时间,如何让queue一直为满,GPU使用率不为0,充分利用计算资源?
我使用的是paddlepaddle1.6版本 和1.6版本的models,ubuntu 18.04 CUDA10.0 cuDNN7.3
使用的是多进程训练
我已经开启了double_buffer,models1.6版本代码已经开启了这个功能
py_reader = fluid.io.DataLoader.from_generator( feed_list=[feed_image, feed_label], capacity=32, use_double_buffer=True, iterable=False)
以及训练参数:
------------- Configuration Arguments -------------
batch_size : 80
checkpoint : ./output/tax/0/ResNet34/4
class_dim : 6711
crop_img_size : 336
crop_size : 672
data_dir : /data
decay_epochs : 2.4
decay_rate : 0.97
drop_connect_rate : 0.2
ema_decay : 0.9999
image_mean : [0.485, 0.456, 0.406]
image_shape : 3,672,672
image_std : [0.229, 0.224, 0.225]
interpolation : None
l2_decay : 0.0001
label_smoothing_epsilon : 0.1
lower_ratio : 0.75
lower_scale : 0.08
lr : 0.1
lr_strategy : piecewise_decay
mixup_alpha : 0.2
model : ResNet34
model_save_dir : ./output
momentum_rate : 0.9
num_epochs : 100
padding_type : SAME
pretrained_model : None
print_step : 10
random_seed : None
reader_buf_size : 512
reader_thread : 10
resize_short_size : 0
save_step : 1
step_epochs : [10, 20, 30]
test_batch_size : 40
total_images : 439860
upper_ratio : 1.3333333333333333
use_aa : False
use_distill : False
use_ema : False
use_gpu : True
use_label_smoothing : False
use_mixup : False
use_se : False
warm_up_epochs : 5.0