def test_generate(self): params = dict() params['optimization'] = dict() params['optimization']['epoch'] = 1 params['summary_every'] = 4 params['save_every'] = 5 params['print_every'] = 3 params['net']= dict() params['net']['generator'] = dict() params['net']['generator']['latent_dim'] = 5 X = np.random.rand(101,16,16) dataset = Dataset(X) wgan = GANsystem(WGAN, params) wgan.train(dataset) img = wgan.generate(2) img = wgan.generate(500) assert(len(img)==500) z = np.random.randn(133,5) img1 = wgan.generate(z=z) img2 = np.zeros(shape=img1.shape) for i in range(133): img2[i] = wgan.generate(z=np.reshape(z[i], [1,5])) np.testing.assert_almost_equal(img1, img2, decimal=6)
def test_1d(self): bn = False params = dict() params['optimization'] = dict() params['optimization']['epoch'] = 1 params['summary_every'] = 4 params['save_every'] = 5 params['print_every'] = 3 params['net'] = dict() params['net']['shape'] = [16, 1] # Shape of the image params['net']['generator'] = dict() params['net']['generator']['latent_dim'] = 100 params['net']['generator']['full'] = [2 * 8] params['net']['generator']['nfilter'] = [2, 32, 32, 1] params['net']['generator']['batch_norm'] = [bn, bn, bn] params['net']['generator']['shape'] = [[5], [5], [5], [5]] params['net']['generator']['stride'] = [1, 2, 1, 1] params['net']['generator']['data_size'] = 1 params['net']['discriminator'] = dict() params['net']['discriminator']['full'] = [32] params['net']['discriminator']['nfilter'] = [16, 32, 32, 32] params['net']['discriminator']['batch_norm'] = [bn, bn, bn, bn] params['net']['discriminator']['shape'] = [[5], [5], [5], [3]] params['net']['discriminator']['stride'] = [2, 2, 2, 1] params['net']['discriminator']['data_size'] = 1 X = np.random.rand(101, 16) dataset = Dataset(X) wgan = GANsystem(WGAN, params) wgan.train(dataset) img = wgan.generate(2) assert (len(img) == 2) assert (img.shape[1:] == (16, 1)) img = wgan.generate(500) assert (len(img) == 500)
def test_dualgansystem(self): params = dict() params['optimization'] = dict() params['optimization']['epoch'] = 1 params['summary_every'] = 4 params['save_every'] = 5 params['print_every'] = 3 X = np.random.rand(101,16,16) dataset = Dataset(X) wgan = DualGANsystem(WGAN, params) wgan.train(dataset) img = wgan.generate(2) img = wgan.generate(500) assert(len(img)==500)
def test_patchupscalegan1dborder(self): bn = False params = dict() params['optimization'] = dict() params['optimization']['epoch'] = 1 params['summary_every'] = 4 params['save_every'] = 5 params['print_every'] = 3 params['net'] = dict() params['net']['shape'] = [8, 2] params['net']['generator'] = dict() params['net']['generator']['latent_dim'] = 8 params['net']['generator']['full'] = [16] params['net']['generator']['nfilter'] = [8, 32, 1] params['net']['generator']['batch_norm'] = [bn, bn] params['net']['generator']['shape'] = [[3], [3], [3]] params['net']['generator']['stride'] = [1, 1, 1] params['net']['generator']['data_size'] = 1 params['net']['generator']['borders'] = dict() params['net']['generator']['borders']['width_full'] = None params['net']['generator']['borders']['nfilter'] = [4, 1] params['net']['generator']['borders']['batch_norm'] = [bn, bn] params['net']['generator']['borders']['shape'] = [[5], [3]] params['net']['generator']['borders']['stride'] = [2, 2] params['net']['generator']['borders']['data_size'] = 1 params['net']['generator']['borders']['width_full'] = 2 params['net']['discriminator'] = dict() params['net']['discriminator']['full'] = [32] params['net']['discriminator']['nfilter'] = [16, 32] params['net']['discriminator']['batch_norm'] = [bn, bn] params['net']['discriminator']['shape'] = [[5], [3]] params['net']['discriminator']['stride'] = [2, 2] params['net']['discriminator']['data_size'] = 1 params['net']['upscaling'] = 2 X = np.random.rand(101, 8, 2) dataset = Dataset(X) wgan = GANsystem(UpscalePatchWGAN, params) wgan.train(dataset) borders = np.random.rand(500, 8, 1) X_smooth = np.random.rand(500, 8, 1) print(borders[:2].shape) img = wgan.generate(N=2, X_smooth=X_smooth[:2], borders=borders[:2]) assert (len(img) == 2) assert (img.shape[1:] == (8, 1)) img = wgan.generate(N=500, X_smooth=X_smooth[:500], borders=borders[:500]) assert (len(img) == 500)
def test_lapgan3d(self): bn = False params = dict() params['optimization'] = dict() params['optimization']['epoch'] = 1 params['summary_every'] = 4 params['save_every'] = 5 params['print_every'] = 3 params['net'] = dict() params['net']['shape'] = [8, 8, 8, 1] params['net']['generator'] = dict() params['net']['generator']['latent_dim'] = 8 * 8 * 8 params['net']['generator']['full'] = [] params['net']['generator']['nfilter'] = [8, 32, 1] params['net']['generator']['batch_norm'] = [bn, bn] params['net']['generator']['shape'] = [[3, 3, 3], [3, 3, 3], [3, 3, 3]] params['net']['generator']['stride'] = [1, 1, 1] params['net']['generator']['data_size'] = 3 params['net']['discriminator'] = dict() params['net']['discriminator']['full'] = [32] params['net']['discriminator']['nfilter'] = [16, 32] params['net']['discriminator']['batch_norm'] = [bn, bn] params['net']['discriminator']['shape'] = [[3, 3, 3], [3, 3, 3]] params['net']['discriminator']['stride'] = [2, 2] params['net']['discriminator']['data_size'] = 3 params['net']['upscaling'] = 2 X = np.random.rand(101, 8, 8, 8) dataset = Dataset(X) wgan = GANsystem(LapWGAN, params) wgan.train(dataset) X_down = np.random.rand(500, 4, 4, 4, 1) img = wgan.generate(N=2, X_down=X_down[:2]) assert (len(img) == 2) assert (img.shape[1:] == (8, 8, 8, 1)) img = wgan.generate(N=500, X_down=X_down[:500]) assert (len(img) == 500)