In [1]:
import GAN.models as models
import GAN.toy_datasets as toys
import GAN.plotting as plotting


Using TensorFlow backend.

In [2]:
reload(models)

gan = models.MyFFGAN( (1,1), (1,1), 
                     g_opts=dict(name="G_16x5",kernel_sizes=[16]*5),
                     d_opts=dict(name="D_512x5",kernel_sizes=[512]*5)
                    )

In [3]:
gan.get_generator()


(1, 1)
Out[3]:
<keras.engine.training.Model at 0x2b51305a8ef0>

In [4]:
gan.get_discriminator()


Out[4]:
<keras.engine.training.Model at 0x2b5130754b38>

In [5]:
gan.compile()


Out[5]:
(<keras.engine.training.Model at 0x2b51307f1978>,
 <keras.engine.training.Model at 0x2b5130766b70>)

In [6]:
gan.get_generator().summary()


____________________________________________________________________________________________________
Layer (type)                     Output Shape          Param #     Connected to                     
====================================================================================================
G_16x5_input (InputLayer)        (None, 1, 1)          0                                            
____________________________________________________________________________________________________
G_16x5_up1_dense (Dense)         (None, 1, 16)         32          G_16x5_input[0][0]               
____________________________________________________________________________________________________
G_16x5_up1_activ (PReLU)         (None, 1, 16)         16          G_16x5_up1_dense[0][0]           
____________________________________________________________________________________________________
G_16x5_up2_dense (Dense)         (None, 1, 16)         272         G_16x5_up1_activ[0][0]           
____________________________________________________________________________________________________
G_16x5_up2_activ (PReLU)         (None, 1, 16)         16          G_16x5_up2_dense[0][0]           
____________________________________________________________________________________________________
G_16x5_up3_dense (Dense)         (None, 1, 16)         272         G_16x5_up2_activ[0][0]           
____________________________________________________________________________________________________
G_16x5_up3_activ (PReLU)         (None, 1, 16)         16          G_16x5_up3_dense[0][0]           
____________________________________________________________________________________________________
G_16x5_up4_dense (Dense)         (None, 1, 16)         272         G_16x5_up3_activ[0][0]           
____________________________________________________________________________________________________
G_16x5_up4_activ (PReLU)         (None, 1, 16)         16          G_16x5_up4_dense[0][0]           
____________________________________________________________________________________________________
G_16x5_up5_dense (Dense)         (None, 1, 16)         272         G_16x5_up4_activ[0][0]           
____________________________________________________________________________________________________
G_16x5_up5_activ (PReLU)         (None, 1, 16)         16          G_16x5_up5_dense[0][0]           
____________________________________________________________________________________________________
G_16x5_output (Dense)            (None, 1, 1)          17          G_16x5_up5_activ[0][0]           
____________________________________________________________________________________________________
G_16x5_add (Add)                 (None, 1, 1)          0           G_16x5_input[0][0]               
                                                                   G_16x5_output[0][0]              
====================================================================================================
Total params: 1,217
Trainable params: 1,217
Non-trainable params: 0
____________________________________________________________________________________________________

In [7]:
gan.get_discriminator().summary()


_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
D_512x5_input (InputLayer)   (None, 1, 1)              0         
_________________________________________________________________
D_512x5_down1_dense (Dense)  (None, 1, 512)            1024      
_________________________________________________________________
D_512x5_down1_activ (Activat (None, 1, 512)            0         
_________________________________________________________________
D_512x5_down2_dense (Dense)  (None, 1, 512)            262656    
_________________________________________________________________
D_512x5_down2_activ (Activat (None, 1, 512)            0         
_________________________________________________________________
D_512x5_down3_dense (Dense)  (None, 1, 512)            262656    
_________________________________________________________________
D_512x5_down3_activ (Activat (None, 1, 512)            0         
_________________________________________________________________
D_512x5_down4_dense (Dense)  (None, 1, 512)            262656    
_________________________________________________________________
D_512x5_down4_activ (Activat (None, 1, 512)            0         
_________________________________________________________________
D_512x5_down5_dense (Dense)  (None, 1, 512)            262656    
_________________________________________________________________
D_512x5_down5_activ (Activat (None, 1, 512)            0         
_________________________________________________________________
D_512x5_flat (Flatten)       (None, 512)               0         
_________________________________________________________________
D_512x5_output (Dense)       (None, 1)                 513       
=================================================================
Total params: 1,052,161
Trainable params: 0
Non-trainable params: 1,052,161
_________________________________________________________________

In [8]:
gan.am.summary()


____________________________________________________________________________________________________
Layer (type)                     Output Shape          Param #     Connected to                     
====================================================================================================
G_16x5_input (InputLayer)        (None, 1, 1)          0                                            
____________________________________________________________________________________________________
G_16x5_up1_dense (Dense)         (None, 1, 16)         32          G_16x5_input[0][0]               
____________________________________________________________________________________________________
G_16x5_up1_activ (PReLU)         (None, 1, 16)         16          G_16x5_up1_dense[0][0]           
____________________________________________________________________________________________________
G_16x5_up2_dense (Dense)         (None, 1, 16)         272         G_16x5_up1_activ[0][0]           
____________________________________________________________________________________________________
G_16x5_up2_activ (PReLU)         (None, 1, 16)         16          G_16x5_up2_dense[0][0]           
____________________________________________________________________________________________________
G_16x5_up3_dense (Dense)         (None, 1, 16)         272         G_16x5_up2_activ[0][0]           
____________________________________________________________________________________________________
G_16x5_up3_activ (PReLU)         (None, 1, 16)         16          G_16x5_up3_dense[0][0]           
____________________________________________________________________________________________________
G_16x5_up4_dense (Dense)         (None, 1, 16)         272         G_16x5_up3_activ[0][0]           
____________________________________________________________________________________________________
G_16x5_up4_activ (PReLU)         (None, 1, 16)         16          G_16x5_up4_dense[0][0]           
____________________________________________________________________________________________________
G_16x5_up5_dense (Dense)         (None, 1, 16)         272         G_16x5_up4_activ[0][0]           
____________________________________________________________________________________________________
G_16x5_up5_activ (PReLU)         (None, 1, 16)         16          G_16x5_up5_dense[0][0]           
____________________________________________________________________________________________________
G_16x5_output (Dense)            (None, 1, 1)          17          G_16x5_up5_activ[0][0]           
____________________________________________________________________________________________________
G_16x5_add (Add)                 (None, 1, 1)          0           G_16x5_input[0][0]               
                                                                   G_16x5_output[0][0]              
____________________________________________________________________________________________________
model_2 (Model)                  (None, 1)             1052161     G_16x5_add[0][0]                 
====================================================================================================
Total params: 1,053,378
Trainable params: 1,217
Non-trainable params: 1,052,161
____________________________________________________________________________________________________

In [9]:
gan.dm.summary()


_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
D_512x5_input (InputLayer)   (None, 1, 1)              0         
_________________________________________________________________
D_512x5_down1_dense (Dense)  (None, 1, 512)            1024      
_________________________________________________________________
D_512x5_down1_activ (Activat (None, 1, 512)            0         
_________________________________________________________________
D_512x5_down2_dense (Dense)  (None, 1, 512)            262656    
_________________________________________________________________
D_512x5_down2_activ (Activat (None, 1, 512)            0         
_________________________________________________________________
D_512x5_down3_dense (Dense)  (None, 1, 512)            262656    
_________________________________________________________________
D_512x5_down3_activ (Activat (None, 1, 512)            0         
_________________________________________________________________
D_512x5_down4_dense (Dense)  (None, 1, 512)            262656    
_________________________________________________________________
D_512x5_down4_activ (Activat (None, 1, 512)            0         
_________________________________________________________________
D_512x5_down5_dense (Dense)  (None, 1, 512)            262656    
_________________________________________________________________
D_512x5_down5_activ (Activat (None, 1, 512)            0         
_________________________________________________________________
D_512x5_flat (Flatten)       (None, 512)               0         
_________________________________________________________________
D_512x5_output (Dense)       (None, 1)                 513       
=================================================================
Total params: 1,052,161
Trainable params: 1,052,161
Non-trainable params: 0
_________________________________________________________________

In [ ]:


In [10]:
import GAN.toy_datasets as toys

In [11]:
reload(toys)

x_train,x_test,z_train,z_test = toys.two_peaks(100000)

In [12]:
plotting.plot_hists(x_train.ravel(),z_train.ravel())



In [13]:
# reload(toys)

# x,z = toys.three_peaks(100000)

# plotting.plot_hists(x.ravel(),z.ravel())

In [14]:
probs = np.arange(1,100,1)
cdf_x = np.percentile(x_train,probs)
cdf_z = np.percentile(z_train,probs)


gan.fit(x_train,z_train,n_epochs=10,solution=(cdf_x,cdf_z))


0: D: [0.694051 0.392578] A: [0.692225 0.464844]
0: D: [0.665322 0.591797] A: [0.772831 0.292969]
0: D: [0.692281 0.494141] A: [0.709552 0.046875]
0: D: [0.693425 0.511719] A: [0.706641 0.128906]
0: D: [0.693431 0.478516] A: [0.697756 0.316406]
0: D: [0.693217 0.488281] A: [0.695907 0.250000]
0: D: [0.692987 0.492188] A: [0.695812 0.214844]
0: D: [0.693011 0.531250] A: [0.694014 0.492188]
0: D: [0.693206 0.511719] A: [0.692746 0.679688]
0: D: [0.693408 0.458984] A: [0.693239 0.585938]

In [ ]:


In [ ]: