print 'Prepare data loaders...' transform = transforms.Compose([transforms.ToPILImage(), transforms.RandomHorizontalFlip(),\ transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]) trainDataset = CELEBA(root=opts.root, train=True, transform=transform) trainLoader = torch.utils.data.DataLoader(trainDataset, batch_size=opts.batchSize, shuffle=True) transform = transforms.Compose([ transforms.ToPILImage(), \ transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]) testDataset = CELEBA(root=opts.root, train=False, transform=transform) testLoader = torch.utils.data.DataLoader(testDataset, batch_size=opts.batchSize, shuffle=False) print 'Data loaders ready.' ###### Create model ##### IM_SIZE = 64 gen = GEN(imSize=IM_SIZE, nz=opts.nz, fSize=opts.fSize) dis = DIS(imSize=IM_SIZE, fSize=opts.fSize, WGAN=opts.WGAN) gen, dis = train_mode(gen, dis, trainLoader, useNoise=opts.useNoise, beta1=0.5, c=opts.c, k=opts.k, WGAN=opts.WGAN)
]) testDataset = CELEBA( root=opts.root, train=False, labels=opts.labels, transform=transform, Ntest=1000 ) #most models trained with Ntest=1000, but using 100 to prevent memory errors testLoader = torch.utils.data.DataLoader(testDataset, batch_size=opts.batchSize, shuffle=False) print 'Data loader ready.' #Load model gen = GEN(imSize=IM_SIZE, nz=opts.nz, fSize=opts.fSize) if gen.useCUDA: torch.cuda.set_device(opts.gpuNo) gen.cuda() gen.load_params(opts.exDir, gpuNo=opts.gpuNo) gen.eval() print 'params loaded' # Get the data: data = iter(testLoader).next() x, y = prep_data(data, useCUDA=gen.useCUDA) # Get men with glasses idx_men_w_glasses = np.argwhere( torch.prod(y.data == torch.Tensor([1, 1]).cuda(), dim=1))[0] img_men_w_glasses = x[idx_men_w_glasses[:opts.numSamples]]
print 'already exists' print 'Outputs will be saved to:', exDir save_input_args(exDir, opts) ####### Test data set ####### IM_SIZE = opts.imSize print 'Prepare data loaders...' transform = transforms.Compose([ transforms.ToPILImage(), transforms.Resize((IM_SIZE, IM_SIZE)), \ transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]) if opts.data == 'CELEBA': testDataset = CELEBA( root=opts.root, train=False, transform=transform, Ntest=100 ) #most models trained with Ntest=1000, but using 100 to prevent memory errors gen = GEN(imSize=IM_SIZE, nz=opts.nz, fSize=opts.fSize) elif opts.data == 'OMNI': print 'using Omniglot eval dataset...' testDataset = OMNI(root=opts.root, train=False, transform=transform) gen = GEN1D(imSize=IM_SIZE, nz=opts.nz, fSize=opts.fSize) else: testDataset = SHOES(root=opts.root, train=False, transform=transform) gen = GEN(imSize=IM_SIZE, nz=opts.nz, fSize=opts.fSize) testLoader = torch.utils.data.DataLoader(testDataset, batch_size=opts.batchSize, shuffle=False) print 'Data loaders ready.' print "Test Data:", len(testDataset) ###### Create model and load parameters #####