diff --git a/fluid/PaddleCV/yolov3/reader.py b/fluid/PaddleCV/yolov3/reader.py index 573480f8ce5023e99e3e51176fd08b3231281e2e..b85852ef381ea5d41124beed617a58c4bcec1525 100644 --- a/fluid/PaddleCV/yolov3/reader.py +++ b/fluid/PaddleCV/yolov3/reader.py @@ -115,7 +115,7 @@ class DataSetReader(object): image_ids = self.COCO.getImgIds() image_ids.sort() imgs = copy.deepcopy(self.COCO.loadImgs(image_ids)) - # imgs = imgs[:8] + imgs = imgs[-8:] for img in imgs: img['image'] = os.path.join(self.img_dir, img['file_name']) assert os.path.exists(img['image']), \ @@ -247,9 +247,13 @@ def train(size=416, interval=10, pyreader_num=1, num_workers=16, - max_queue=32): + max_queue=32, + use_multiprocessing=True): generator = dsr.get_reader('train', size, batch_size, shuffle, random_shape_iter, random_sizes) + if not use_multiprocessing: + return generator + def infinite_reader(): while True: for data in generator(): diff --git a/fluid/PaddleCV/yolov3/train.py b/fluid/PaddleCV/yolov3/train.py index 5e4b0ca246eaa83b7c72c45b06143d396c8295e2..90bfeec418fc2c1aa6088390ecc5f4a4f2b655e8 100644 --- a/fluid/PaddleCV/yolov3/train.py +++ b/fluid/PaddleCV/yolov3/train.py @@ -96,11 +96,11 @@ def train(): random_shape_iter = cfg.max_iter - cfg.start_iter - cfg.tune_iter if cfg.use_pyreader: - train_reader = reader.train(input_size, batch_size=int(hyperparams['batch'])/devices_num, shuffle=True, random_shape_iter=random_shape_iter, random_sizes=random_sizes, interval=10, pyreader_num=devices_num) + train_reader = reader.train(input_size, batch_size=int(hyperparams['batch'])/devices_num, shuffle=True, random_shape_iter=random_shape_iter, random_sizes=random_sizes, interval=10, pyreader_num=devices_num,use_multiprocessing=cfg.use_multiprocess) py_reader = model.py_reader py_reader.decorate_paddle_reader(train_reader) else: - train_reader = reader.train(input_size, batch_size=int(hyperparams['batch']), shuffle=True, random_shape_iter=random_shape_iter, random_sizes=random_sizes, interval=10) + train_reader = reader.train(input_size, batch_size=int(hyperparams['batch']), shuffle=True, random_shape_iter=random_shape_iter, random_sizes=random_sizes, interval=10,use_multiprocessing=cfg.use_multiprocess) feeder = fluid.DataFeeder(place=place, feed_list=model.feeds()) def save_model(postfix): diff --git a/fluid/PaddleCV/yolov3/utility.py b/fluid/PaddleCV/yolov3/utility.py index e489b750e81319da00b454f17d3e9b5d3f487d99..3064c10151b3f32142b765511cf38c42f52c0500 100644 --- a/fluid/PaddleCV/yolov3/utility.py +++ b/fluid/PaddleCV/yolov3/utility.py @@ -106,6 +106,7 @@ def parse_args(): add_arg('use_pyreader', bool, True, "Use pyreader.") add_arg('use_profile', bool, False, "Whether use profiler.") add_arg('start_iter', int, 0, "Start iteration.") + add_arg('use_multiprocess', bool, True, "add multiprocess.") #SOLVER add_arg('learning_rate', float, 0.001, "Learning rate.") add_arg('max_iter', int, 500200, "Iter number.")