diff --git a/train.py b/train.py index 5fa1dcb079ee..7953308d4b32 100644 --- a/train.py +++ b/train.py @@ -232,7 +232,7 @@ def train(hyp, # path/to/hyp.yaml or hyp dictionary if RANK in [-1, 0]: val_loader = create_dataloader(val_path, imgsz, batch_size // WORLD_SIZE * 2, gs, single_cls, hyp=hyp, cache=None if noval else opt.cache, rect=True, rank=-1, - workers=workers, pad=0.5, + workers=workers * 2, pad=0.5, prefix=colorstr('val: '))[0] if not resume: diff --git a/utils/datasets.py b/utils/datasets.py index e132e04f6d9d..b22603ba9924 100755 --- a/utils/datasets.py +++ b/utils/datasets.py @@ -110,7 +110,7 @@ def create_dataloader(path, imgsz, batch_size, stride, single_cls=False, hyp=Non batch_size = min(batch_size, len(dataset)) nd = torch.cuda.device_count() # number of CUDA devices - nw = min([os.cpu_count() // max(nd, 1), batch_size if batch_size > 1 else 0, workers]) # number of workers + nw = min([2 * os.cpu_count() // max(nd, 1), batch_size if batch_size > 1 else 0, workers]) # number of workers sampler = None if rank == -1 else distributed.DistributedSampler(dataset, shuffle=shuffle) loader = DataLoader if image_weights else InfiniteDataLoader # only DataLoader allows for attribute updates return loader(dataset,