Exemplo n.º 1
0
    def test_VAE_saveState(self):
        mb_size = 49  # because dummyDataset98.npz is a 98 data size
        epoch_nb = 11
        datasetName = 'dummyDataset98.npz'
        datasetDir = './dummyDataset/'
        testDataset = NPZ_Dataset(datasetName, datasetDir, 'Spectrums')
        train_loader = torch.utils.data.DataLoader(testDataset,
                                                   batch_size=mb_size,
                                                   shuffle=True)

        # define vae structure
        X_dim = 1024
        Z_dim = 6
        IOh_dims_Enc = [X_dim, 401, Z_dim]
        IOh_dims_Dec = [Z_dim, 399, X_dim]
        NL_types_Enc = ['relu6']
        NL_types_Dec = ['relu6', 'sigmoid']
        vae = VAE(X_dim, Z_dim, IOh_dims_Enc, IOh_dims_Dec, NL_types_Enc,
                  NL_types_Dec, mb_size)

        vae.trainVAE(train_loader, epoch_nb)
        # save it
        if vae.trained:
            vae.save(datasetName, datasetDir)

        self.assertTrue(vae.created and vae.trained and vae.saved)
Exemplo n.º 2
0
    def test_gaussianVAE_trainsaveload(self):
        mb_size = 49  # because dummyDataset98.npz is a 98 data size
        epoch_nb = 5
        # if exists remove 'saveloadTest' folder
        if os.path.exists('./saveloadTest'):
            shutil.rmtree('./saveloadTest')
        # create a VAE
        X_dim = 1024
        Z_dim = 10
        IOh_dims_Enc = [X_dim, 600, Z_dim]
        IOh_dims_Dec = [Z_dim, 600, X_dim]
        NL_types_Enc = ['relu6']
        NL_types_Dec = ['relu6']
        vae = VAE(X_dim,
                  Z_dim,
                  IOh_dims_Enc,
                  IOh_dims_Dec,
                  NL_types_Enc,
                  NL_types_Dec,
                  mb_size,
                  bernoulli=False,
                  gaussian=True)
        # prepare dataset
        datasetName = 'dummyDataset98.npz'
        datasetDir = './dummyDataset/'
        saveDir = './dummySaveTest/'
        testDataset = NPZ_Dataset(datasetName, datasetDir, 'Spectrums')
        train_loader = torch.utils.data.DataLoader(testDataset,
                                                   batch_size=mb_size,
                                                   shuffle=True)
        # train it for 10 epochs
        vae.trainVAE(train_loader, epoch_nb)
        # save it
        savefile = vae.save(datasetName, saveDir)
        # reload the savefile of VAE
        vae = loadVAE(savefile, saveDir)

        # continue training
        # vae.trainVAE(train_loader, 10)
        # vae.save(datasetName, datasetDir)
        self.assertTrue(vae.created and vae.loaded and vae.saved)
Exemplo n.º 3
0
    IOh_dims_Dec = args.decoderIOdims
    NL_types_Enc = args.encoderNL
    NL_types_Dec = args.decoderNL
    if args.type == 'bernoulli':
        vae = VAE(X_dim, Z_dim, IOh_dims_Enc,
                  IOh_dims_Dec, NL_types_Enc, NL_types_Dec, mb_size,
                  bernoulli=True, gaussian=False, beta=beta, Nwu=Nwu, noiseIn=noise, noiseGain=noiseGain)
    elif args.type == 'gaussian':
        vae = VAE(X_dim, Z_dim, IOh_dims_Enc,
                  IOh_dims_Dec, NL_types_Enc, NL_types_Dec, mb_size,
                  bernoulli=False, gaussian=True, beta=beta, Nwu=Nwu, noiseIn=noise, noiseGain=noiseGain)
    else:
        print("ERROR script: Chose VAE type -> either bernoulli or gaussian")

    # train it for N epochs
    vae.trainVAE(train_loader, epoch_nb)

    # save it
    vae.save(datasetName, saveDir)

elif mode == "load":

    # get savefile path
    directory = args.vae_path
    savefile = directory.split("/")[-1]
    directory = directory.replace(savefile, "")
    # load vae
    vaeLoaded = loadVAE(savefile, directory)

    # Now do some stuff (e.g. PCA, t-sne, generate ...)
    # Here for example it generates 200 images. Each image is 200x1024.