def init(config): batchsize = config['train']['batchsize'] current_path = os.path.dirname(os.path.abspath(__file__)) sys.path.append(current_path) import ref as ds ds.init() train, valid = ds.setup_val_split() # 挑选有keypoints的样本作为数据集 dataset = { key: Dataset(config, ds, data) for key, data in zip( ['train', 'valid'], [train, valid] ) } use_data_loader = config['train']['use_data_loader'] loaders = {} for key in dataset: loaders[key] = torch.utils.data.DataLoader(dataset[key], batch_size=batchsize, shuffle=True, num_workers=config['train']['num_workers'], pin_memory=False) def gen(phase): batchsize = config['train']['batchsize'] batchnum = config['train']['{}_iters'.format(phase)] loader = loaders[phase].__iter__() for i in range(batchnum): imgs, masks, keypoints, heatmaps = next(loader) yield { 'imgs': imgs, 'masks': masks, 'heatmaps': heatmaps, 'keypoints': keypoints } return lambda key: gen(key)
def init(config): batchsize = config['train']['batchsize'] current_path = os.path.dirname(os.path.abspath(__file__)) sys.path.append(current_path) import ref as ds ds.init() train, valid = ds.setup_val_split() dataset = { key: Dataset(config, ds, data) for key, data in zip( ['train', 'valid'], [train, valid] ) } use_data_loader = config['train']['use_data_loader'] loaders = {} for key in dataset: loaders[key] = torch.utils.data.DataLoader(dataset[key], batch_size=batchsize, shuffle=True, num_workers=config['train']['num_workers'], pin_memory=False) def gen(phase): batchsize = config['train']['batchsize'] batchnum = config['train']['{}_iters'.format(phase)] loader = loaders[phase].__iter__() for i in range(batchnum): imgs, masks, keypoints, heatmaps = next(loader) yield { 'imgs': imgs, 'masks': masks, 'heatmaps': heatmaps, 'keypoints': keypoints } return lambda key: gen(key)
def init(config): batchsize = config['train']['batchsize'] current_path = os.path.dirname(os.path.abspath(__file__)) sys.path.append(current_path) import ref as ds ds.init() train, valid = ds.setup_val_split() dataset = { key: Dataset(config, ds, data) for key, data in zip(['train', 'valid'], [train, valid]) } use_data_loader = config['train']['use_data_loader'] loaders = {} for key in dataset: loaders[key] = torch.utils.data.DataLoader( dataset[key], batch_size=batchsize, shuffle=True, num_workers=config['train']['num_workers'], pin_memory=False) def gen(phase): batchsize = config['train']['batchsize'] batchnum = config['train']['{}_iters'.format(phase)] loader = loaders[phase].__iter__() for i in range(batchnum): try: imgs, heatmaps = next(loader) except StopIteration: # to avoid no data provided by dataloader loader = loaders[phase].__iter__() imgs, heatmaps = next(loader) yield { 'imgs': imgs, #cropped and augmented 'heatmaps': heatmaps, #based on keypoints. 0 if not in img for joint } return lambda key: gen(key)
def init(opts): batchsize = opts.batchsize current_path = os.path.dirname(os.path.abspath(__file__)) sys.path.append(current_path) import ref as ds ds.init() train, valid = ds.setup_val_split() dataset = { key: Dataset(opts, ds, data) for key, data in zip(['train', 'valid'], [train, valid]) } loaders = {} for key in dataset: loaders[key] = torch.utils.data.DataLoader( dataset[key], batch_size=batchsize, shuffle=True, num_workers=opts.num_workers, pin_memory=False) def gen(phase): batchsize = opts.batchsize if phase == 'train': batchnum = opts.train_iters else: batchnum = opts.valid_iters loader = loaders[phase].__iter__() for i in range(batchnum): imgs, masks, keypoints, heatmaps = next(loader) yield { 'imgs': imgs, 'masks': masks, 'heatmaps': heatmaps, 'keypoints': keypoints } return lambda key: gen(key)