use_M=use_M, binary=binary) val_MD = DS.MD(path=gp_path + '/images/' + mask_folder + '/setup' + str(setup) + '/val', H=H, W=W, pow_n=pow_n, aug=False, use_M=use_M, binary=False) dataloaders = { 'train': DS.DataLoader(train_MD, batch_size=batch_size, shuffle=True, num_workers=8, pin_memory=True), 'val': DS.DataLoader(val_MD, batch_size=batch_size, shuffle=True, num_workers=8, pin_memory=True) } num_class = 37 n_input = 1 if Attu == True: model = network.attention_unet.AttU_Net(n_input, num_class).to(device) else:
if args.pretrain_gen is not None: generator = generator_pretrain.train(generator, dataset, args) generator.saveModel(generator.pretrained_path) # Discriminator pretraining if args.pretrain_dis is not None: discriminator = discriminator_pretrain.train(discriminator, dataset, args) discriminator.saveModel(discriminator.pretrained_path) # Main Training if not args.no_train: # TRAINING generator.train() discriminator.train() training_progress = tqdm(total = len(dataset) * args.epochs, desc = "Training") training_iterator = dataset.DataLoader(len(dataset), batch_size=args.batch_size) try: for epoch in range(int(args.epochs)): for real_sample in training_iterator: fake_sample = generator.generate(args.batch_size) print(dataset.decode(fake_sample)) print(dataset.decode(real_sample)) input() # update the progress bar training_progress.update(args.batch_size) # take outputs from discriminator score_real = discriminator(real_sample) score_fake = discriminator(fake_sample)