From 21e16309d54fd2a31fdbf7fb470c3d70b38d1c65 Mon Sep 17 00:00:00 2001 From: nunzip Date: Mon, 4 Mar 2019 23:26:45 +0000 Subject: Attempt virtual batch normalization --- dcgan.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'dcgan.py') diff --git a/dcgan.py b/dcgan.py index bc7e14e..61c0b48 100644 --- a/dcgan.py +++ b/dcgan.py @@ -112,7 +112,7 @@ class DCGAN(): return Model(img, validity) - def train(self, epochs, batch_size=128, save_interval=50): + def train(self, epochs, batch_size=128, save_interval=50, VBN=False): # Load the dataset (X_train, _), (_, _) = mnist.load_data() @@ -127,6 +127,7 @@ class DCGAN(): xaxis = np.arange(epochs) loss = np.zeros((2,epochs)) + for epoch in tqdm(range(epochs)): # --------------------- @@ -137,6 +138,14 @@ class DCGAN(): idx = np.random.randint(0, X_train.shape[0], batch_size) imgs = X_train[idx] + if VBN: + idx = np.random.randint(0, X_train.shape[0], batch_size) + ref_imgs = X_train[idx] + mu = np.mean(ref_imgs, axis=0) + sigma = np.var(ref_imgs, axis=0) + sigma[sigma<1] = 1 + img = np.divide(np.subtract(img, mu), sigma) + # Sample noise and generate a batch of new images noise = np.random.normal(0, 1, (batch_size, self.latent_dim)) gen_imgs = self.generator.predict(noise) -- cgit v1.2.3-54-g00ecf From 8ea26cf68a81df5da1ab7991a36cab91a8b49466 Mon Sep 17 00:00:00 2001 From: nunzip Date: Tue, 5 Mar 2019 00:46:17 +0000 Subject: Fix mistake with variable name --- dcgan.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'dcgan.py') diff --git a/dcgan.py b/dcgan.py index 61c0b48..1ffe50b 100644 --- a/dcgan.py +++ b/dcgan.py @@ -144,7 +144,7 @@ class DCGAN(): mu = np.mean(ref_imgs, axis=0) sigma = np.var(ref_imgs, axis=0) sigma[sigma<1] = 1 - img = np.divide(np.subtract(img, mu), sigma) + imgs = np.divide(np.subtract(imgs, mu), sigma) # Sample noise and generate a batch of new images noise = np.random.normal(0, 1, (batch_size, self.latent_dim)) -- cgit v1.2.3-54-g00ecf From 2bb025014db2c8d968298125d251cbc4ca5949d1 Mon Sep 17 00:00:00 2001 From: nunzip Date: Tue, 5 Mar 2019 00:51:37 +0000 Subject: Try different normalization --- dcgan.py | 1 - 1 file changed, 1 deletion(-) (limited to 'dcgan.py') diff --git a/dcgan.py b/dcgan.py index 1ffe50b..bb19446 100644 --- a/dcgan.py +++ b/dcgan.py @@ -143,7 +143,6 @@ class DCGAN(): ref_imgs = X_train[idx] mu = np.mean(ref_imgs, axis=0) sigma = np.var(ref_imgs, axis=0) - sigma[sigma<1] = 1 imgs = np.divide(np.subtract(imgs, mu), sigma) # Sample noise and generate a batch of new images -- cgit v1.2.3-54-g00ecf From 2a720c237259baa2d968286244f9e43794c7e4d9 Mon Sep 17 00:00:00 2001 From: nunzip Date: Tue, 5 Mar 2019 01:01:58 +0000 Subject: remove sigma in virtual batch norm --- dcgan.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'dcgan.py') diff --git a/dcgan.py b/dcgan.py index bb19446..0d0ff12 100644 --- a/dcgan.py +++ b/dcgan.py @@ -142,7 +142,8 @@ class DCGAN(): idx = np.random.randint(0, X_train.shape[0], batch_size) ref_imgs = X_train[idx] mu = np.mean(ref_imgs, axis=0) - sigma = np.var(ref_imgs, axis=0) + sigma = 1#np.var(ref_imgs, axis=0) + #need to redefine sigma because of division by zero imgs = np.divide(np.subtract(imgs, mu), sigma) # Sample noise and generate a batch of new images -- cgit v1.2.3-54-g00ecf