示例#1
0
    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)
示例#2
0
    ])

    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]]
示例#3
0
        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 #####