In [1]:
import GAN.models as models
import GAN.cms_datasets as cms
import GAN.plotting as plotting


Using TensorFlow backend.

In [2]:
reload(cms)

data,mc = cms.load_zee("moriond_v9","abs(ScEta) < 1.5")

In [3]:
data.columns


Out[3]:
Index(['index', 'run', 'rho', 'nvtx', 'mass', 'weight', 'SigMoM', 'Pt',
       'ScEta', 'Phi', 'R9', 'S4', 'SigmaIeIe', 'EtaWidth', 'PhiWidth',
       'CovarianceIphiIphi', 'SigmaRR', 'ScEnergy', 'CovarianceIetaIphi',
       'PhoIso03', 'ChIso03', 'ChIso03worst', 'ScPreshowerEnergy', 'PhoIDMVA',
       'SigEOverE', 'run_quantile'],
      dtype='object')

In [4]:
mc.columns


Out[4]:
Index(['index', 'run', 'rho', 'nvtx', 'mass', 'weight', 'SigMoM', 'Pt',
       'ScEta', 'Phi', 'R9', 'S4', 'SigmaIeIe', 'EtaWidth', 'PhiWidth',
       'CovarianceIphiIphi', 'SigmaRR', 'ScEnergy', 'CovarianceIetaIphi',
       'PhoIso03', 'ChIso03', 'ChIso03worst', 'ScPreshowerEnergy', 'PhoIDMVA',
       'SigEOverE'],
      dtype='object')

In [5]:
c_names = ['Pt','ScEta','Phi','rho']
x_names = ['R9','SigmaIeIe','S4','EtaWidth','PhiWidth','CovarianceIetaIphi',
           'CovarianceIphiIphi', ]

data_c = data[c_names]
data_x = data[x_names]

mc_c = mc[c_names]
mc_x = mc[x_names]

In [6]:
data_x.columns, data_x.shape, data_c.columns, data_c.shape


Out[6]:
(Index(['R9', 'SigmaIeIe', 'S4', 'EtaWidth', 'PhiWidth', 'CovarianceIetaIphi',
        'CovarianceIphiIphi'],
       dtype='object'),
 (17520217, 7),
 Index(['Pt', 'ScEta', 'Phi', 'rho'], dtype='object'),
 (17520217, 4))

In [7]:
data_x.columns, data_c.columns


Out[7]:
(Index(['R9', 'SigmaIeIe', 'S4', 'EtaWidth', 'PhiWidth', 'CovarianceIetaIphi',
        'CovarianceIphiIphi'],
       dtype='object'), Index(['Pt', 'ScEta', 'Phi', 'rho'], dtype='object'))

In [8]:
mc_x.columns, mc_c.columns


Out[8]:
(Index(['R9', 'SigmaIeIe', 'S4', 'EtaWidth', 'PhiWidth', 'CovarianceIetaIphi',
        'CovarianceIphiIphi'],
       dtype='object'), Index(['Pt', 'ScEta', 'Phi', 'rho'], dtype='object'))

In [9]:
reload(models)

xz_shape = (1,len(x_names))
c_shape = (1,len(c_names))
gan = models.MyFFGAN( xz_shape, xz_shape, c_shape=c_shape,
                     g_opts=dict(name="G_64x5",kernel_sizes=[64]*5,
                         # name="G_32x3_64x3_128x3",kernel_sizes=[128]*3+[64]*3+[32]*3,#kernel_sizes=[128]*11,
#                                 do_nl_activ=[False,"tanh"]*3+[False],
#                                 do_poly=True,
#                                 do_nl_activ="relu",do_skip=False, do_bn=True
                                ),
                     d_opts=dict(name="D_256x5",kernel_sizes=[256]*5),
#                     dm_opts=dict(optimizer=models.Adam,opt_kwargs=dict(lr=1e-5)),
#                     am_opts=dict(optimizer=models.Adam,opt_kwargs=dict(lr=1e-5)),
                      dm_opts=dict(optimizer=models.RMSprop,opt_kwargs=dict(lr=0.0002, decay=6e-6)),
                      am_opts=dict(optimizer=models.RMSprop,opt_kwargs=dict(lr=0.0002, decay=6e-6)),

                    )

In [10]:
gan.get_generator()


(1, 7)
Out[10]:
<keras.engine.training.Model at 0x2ba9040952e8>

In [11]:
gan.get_discriminator()


Out[11]:
<keras.engine.training.Model at 0x2ba904244b70>

In [12]:
gan.adversarial_compile()

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


____________________________________________________________________________________________________
Layer (type)                     Output Shape          Param #     Connected to                     
====================================================================================================
G_64x5_c_input (InputLayer)      (None, 1, 4)          0                                            
____________________________________________________________________________________________________
G_64x5_input (InputLayer)        (None, 1, 7)          0                                            
____________________________________________________________________________________________________
G_64x5_all_inputs (Concatenate)  (None, 1, 11)         0           G_64x5_c_input[0][0]             
                                                                   G_64x5_input[0][0]               
____________________________________________________________________________________________________
G_64x5_up1_dense (Dense)         (None, 1, 64)         768         G_64x5_all_inputs[0][0]          
____________________________________________________________________________________________________
G_64x5_up1_activ (PReLU)         (None, 1, 64)         64          G_64x5_up1_dense[0][0]           
____________________________________________________________________________________________________
G_64x5_up2_dense (Dense)         (None, 1, 64)         4160        G_64x5_up1_activ[0][0]           
____________________________________________________________________________________________________
G_64x5_up2_activ (PReLU)         (None, 1, 64)         64          G_64x5_up2_dense[0][0]           
____________________________________________________________________________________________________
G_64x5_up3_dense (Dense)         (None, 1, 64)         4160        G_64x5_up2_activ[0][0]           
____________________________________________________________________________________________________
G_64x5_up3_activ (PReLU)         (None, 1, 64)         64          G_64x5_up3_dense[0][0]           
____________________________________________________________________________________________________
G_64x5_up4_dense (Dense)         (None, 1, 64)         4160        G_64x5_up3_activ[0][0]           
____________________________________________________________________________________________________
G_64x5_up4_activ (PReLU)         (None, 1, 64)         64          G_64x5_up4_dense[0][0]           
____________________________________________________________________________________________________
G_64x5_up5_dense (Dense)         (None, 1, 64)         4160        G_64x5_up4_activ[0][0]           
____________________________________________________________________________________________________
G_64x5_up5_activ (PReLU)         (None, 1, 64)         64          G_64x5_up5_dense[0][0]           
____________________________________________________________________________________________________
G_64x5_output (Dense)            (None, 1, 7)          455         G_64x5_up5_activ[0][0]           
____________________________________________________________________________________________________
G_64x5_add (Add)                 (None, 1, 7)          0           G_64x5_input[0][0]               
                                                                   G_64x5_output[0][0]              
====================================================================================================
Total params: 18,183
Trainable params: 18,183
Non-trainable params: 0
____________________________________________________________________________________________________

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


____________________________________________________________________________________________________
Layer (type)                     Output Shape          Param #     Connected to                     
====================================================================================================
D_256x5_c_input (InputLayer)     (None, 1, 4)          0                                            
____________________________________________________________________________________________________
D_256x5_input (InputLayer)       (None, 1, 7)          0                                            
____________________________________________________________________________________________________
D_256x5_all_inputs (Concatenate) (None, 1, 11)         0           D_256x5_c_input[0][0]            
                                                                   D_256x5_input[0][0]              
____________________________________________________________________________________________________
D_256x5_down1_dense (Dense)      (None, 1, 256)        3072        D_256x5_all_inputs[0][0]         
____________________________________________________________________________________________________
D_256x5_down1_activ (Activation) (None, 1, 256)        0           D_256x5_down1_dense[0][0]        
____________________________________________________________________________________________________
D_256x5_down2_dense (Dense)      (None, 1, 256)        65792       D_256x5_down1_activ[0][0]        
____________________________________________________________________________________________________
D_256x5_down2_activ (Activation) (None, 1, 256)        0           D_256x5_down2_dense[0][0]        
____________________________________________________________________________________________________
D_256x5_down3_dense (Dense)      (None, 1, 256)        65792       D_256x5_down2_activ[0][0]        
____________________________________________________________________________________________________
D_256x5_down3_activ (Activation) (None, 1, 256)        0           D_256x5_down3_dense[0][0]        
____________________________________________________________________________________________________
D_256x5_down4_dense (Dense)      (None, 1, 256)        65792       D_256x5_down3_activ[0][0]        
____________________________________________________________________________________________________
D_256x5_down4_activ (Activation) (None, 1, 256)        0           D_256x5_down4_dense[0][0]        
____________________________________________________________________________________________________
D_256x5_down5_dense (Dense)      (None, 1, 256)        65792       D_256x5_down4_activ[0][0]        
____________________________________________________________________________________________________
D_256x5_down5_activ (Activation) (None, 1, 256)        0           D_256x5_down5_dense[0][0]        
____________________________________________________________________________________________________
D_256x5_flat (Flatten)           (None, 256)           0           D_256x5_down5_activ[0][0]        
____________________________________________________________________________________________________
D_256x5_output (Dense)           (None, 1)             257         D_256x5_flat[0][0]               
====================================================================================================
Total params: 266,497
Trainable params: 266,497
Non-trainable params: 0
____________________________________________________________________________________________________

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


____________________________________________________________________________________________________
Layer (type)                     Output Shape          Param #     Connected to                     
====================================================================================================
G_64x5_c_input (InputLayer)      (None, 1, 4)          0                                            
____________________________________________________________________________________________________
G_64x5_input (InputLayer)        (None, 1, 7)          0                                            
____________________________________________________________________________________________________
G_64x5_all_inputs (Concatenate)  (None, 1, 11)         0           G_64x5_c_input[0][0]             
                                                                   G_64x5_input[0][0]               
____________________________________________________________________________________________________
G_64x5_up1_dense (Dense)         (None, 1, 64)         768         G_64x5_all_inputs[0][0]          
____________________________________________________________________________________________________
G_64x5_up1_activ (PReLU)         (None, 1, 64)         64          G_64x5_up1_dense[0][0]           
____________________________________________________________________________________________________
G_64x5_up2_dense (Dense)         (None, 1, 64)         4160        G_64x5_up1_activ[0][0]           
____________________________________________________________________________________________________
G_64x5_up2_activ (PReLU)         (None, 1, 64)         64          G_64x5_up2_dense[0][0]           
____________________________________________________________________________________________________
G_64x5_up3_dense (Dense)         (None, 1, 64)         4160        G_64x5_up2_activ[0][0]           
____________________________________________________________________________________________________
G_64x5_up3_activ (PReLU)         (None, 1, 64)         64          G_64x5_up3_dense[0][0]           
____________________________________________________________________________________________________
G_64x5_up4_dense (Dense)         (None, 1, 64)         4160        G_64x5_up3_activ[0][0]           
____________________________________________________________________________________________________
G_64x5_up4_activ (PReLU)         (None, 1, 64)         64          G_64x5_up4_dense[0][0]           
____________________________________________________________________________________________________
G_64x5_up5_dense (Dense)         (None, 1, 64)         4160        G_64x5_up4_activ[0][0]           
____________________________________________________________________________________________________
G_64x5_up5_activ (PReLU)         (None, 1, 64)         64          G_64x5_up5_dense[0][0]           
____________________________________________________________________________________________________
G_64x5_output (Dense)            (None, 1, 7)          455         G_64x5_up5_activ[0][0]           
____________________________________________________________________________________________________
G_64x5_add (Add)                 (None, 1, 7)          0           G_64x5_input[0][0]               
                                                                   G_64x5_output[0][0]              
____________________________________________________________________________________________________
model_2 (Model)                  (None, 1)             266497      G_64x5_c_input[0][0]             
                                                                   G_64x5_add[0][0]                 
====================================================================================================
Total params: 284,680
Trainable params: 284,680
Non-trainable params: 0
____________________________________________________________________________________________________

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


____________________________________________________________________________________________________
Layer (type)                     Output Shape          Param #     Connected to                     
====================================================================================================
D_256x5_c_input (InputLayer)     (None, 1, 4)          0                                            
____________________________________________________________________________________________________
D_256x5_input (InputLayer)       (None, 1, 7)          0                                            
____________________________________________________________________________________________________
D_256x5_all_inputs (Concatenate) (None, 1, 11)         0           D_256x5_c_input[0][0]            
                                                                   D_256x5_input[0][0]              
____________________________________________________________________________________________________
D_256x5_down1_dense (Dense)      (None, 1, 256)        3072        D_256x5_all_inputs[0][0]         
____________________________________________________________________________________________________
D_256x5_down1_activ (Activation) (None, 1, 256)        0           D_256x5_down1_dense[0][0]        
____________________________________________________________________________________________________
D_256x5_down2_dense (Dense)      (None, 1, 256)        65792       D_256x5_down1_activ[0][0]        
____________________________________________________________________________________________________
D_256x5_down2_activ (Activation) (None, 1, 256)        0           D_256x5_down2_dense[0][0]        
____________________________________________________________________________________________________
D_256x5_down3_dense (Dense)      (None, 1, 256)        65792       D_256x5_down2_activ[0][0]        
____________________________________________________________________________________________________
D_256x5_down3_activ (Activation) (None, 1, 256)        0           D_256x5_down3_dense[0][0]        
____________________________________________________________________________________________________
D_256x5_down4_dense (Dense)      (None, 1, 256)        65792       D_256x5_down3_activ[0][0]        
____________________________________________________________________________________________________
D_256x5_down4_activ (Activation) (None, 1, 256)        0           D_256x5_down4_dense[0][0]        
____________________________________________________________________________________________________
D_256x5_down5_dense (Dense)      (None, 1, 256)        65792       D_256x5_down4_activ[0][0]        
____________________________________________________________________________________________________
D_256x5_down5_activ (Activation) (None, 1, 256)        0           D_256x5_down5_dense[0][0]        
____________________________________________________________________________________________________
D_256x5_flat (Flatten)           (None, 256)           0           D_256x5_down5_activ[0][0]        
____________________________________________________________________________________________________
D_256x5_output (Dense)           (None, 1)             257         D_256x5_flat[0][0]               
====================================================================================================
Total params: 266,497
Trainable params: 266,497
Non-trainable params: 0
____________________________________________________________________________________________________

In [17]:
gan.gan.summary()


____________________________________________________________________________________________________
Layer (type)                     Output Shape          Param #     Connected to                     
====================================================================================================
G_64x5_c_input (InputLayer)      (None, 1, 4)          0                                            
____________________________________________________________________________________________________
G_64x5_input (InputLayer)        (None, 1, 7)          0                                            
____________________________________________________________________________________________________
G_64x5_all_inputs (Concatenate)  (None, 1, 11)         0           G_64x5_c_input[0][0]             
                                                                   G_64x5_input[0][0]               
____________________________________________________________________________________________________
D_256x5_c_input (InputLayer)     (None, 1, 4)          0                                            
____________________________________________________________________________________________________
D_256x5_input (InputLayer)       (None, 1, 7)          0                                            
____________________________________________________________________________________________________
G_64x5_up1_dense (Dense)         (None, 1, 64)         768         G_64x5_all_inputs[0][0]          
____________________________________________________________________________________________________
D_256x5_all_inputs (Concatenate) (None, 1, 11)         0           D_256x5_c_input[0][0]            
                                                                   D_256x5_input[0][0]              
____________________________________________________________________________________________________
G_64x5_up1_activ (PReLU)         (None, 1, 64)         64          G_64x5_up1_dense[0][0]           
____________________________________________________________________________________________________
D_256x5_down1_dense (Dense)      (None, 1, 256)        3072        D_256x5_all_inputs[0][0]         
____________________________________________________________________________________________________
G_64x5_up2_dense (Dense)         (None, 1, 64)         4160        G_64x5_up1_activ[0][0]           
____________________________________________________________________________________________________
D_256x5_down1_activ (Activation) (None, 1, 256)        0           D_256x5_down1_dense[0][0]        
____________________________________________________________________________________________________
G_64x5_up2_activ (PReLU)         (None, 1, 64)         64          G_64x5_up2_dense[0][0]           
____________________________________________________________________________________________________
D_256x5_down2_dense (Dense)      (None, 1, 256)        65792       D_256x5_down1_activ[0][0]        
____________________________________________________________________________________________________
G_64x5_up3_dense (Dense)         (None, 1, 64)         4160        G_64x5_up2_activ[0][0]           
____________________________________________________________________________________________________
D_256x5_down2_activ (Activation) (None, 1, 256)        0           D_256x5_down2_dense[0][0]        
____________________________________________________________________________________________________
G_64x5_up3_activ (PReLU)         (None, 1, 64)         64          G_64x5_up3_dense[0][0]           
____________________________________________________________________________________________________
D_256x5_down3_dense (Dense)      (None, 1, 256)        65792       D_256x5_down2_activ[0][0]        
____________________________________________________________________________________________________
G_64x5_up4_dense (Dense)         (None, 1, 64)         4160        G_64x5_up3_activ[0][0]           
____________________________________________________________________________________________________
D_256x5_down3_activ (Activation) (None, 1, 256)        0           D_256x5_down3_dense[0][0]        
____________________________________________________________________________________________________
G_64x5_up4_activ (PReLU)         (None, 1, 64)         64          G_64x5_up4_dense[0][0]           
____________________________________________________________________________________________________
D_256x5_down4_dense (Dense)      (None, 1, 256)        65792       D_256x5_down3_activ[0][0]        
____________________________________________________________________________________________________
G_64x5_up5_dense (Dense)         (None, 1, 64)         4160        G_64x5_up4_activ[0][0]           
____________________________________________________________________________________________________
D_256x5_down4_activ (Activation) (None, 1, 256)        0           D_256x5_down4_dense[0][0]        
____________________________________________________________________________________________________
G_64x5_up5_activ (PReLU)         (None, 1, 64)         64          G_64x5_up5_dense[0][0]           
____________________________________________________________________________________________________
D_256x5_down5_dense (Dense)      (None, 1, 256)        65792       D_256x5_down4_activ[0][0]        
____________________________________________________________________________________________________
G_64x5_output (Dense)            (None, 1, 7)          455         G_64x5_up5_activ[0][0]           
____________________________________________________________________________________________________
D_256x5_down5_activ (Activation) (None, 1, 256)        0           D_256x5_down5_dense[0][0]        
____________________________________________________________________________________________________
G_64x5_add (Add)                 (None, 1, 7)          0           G_64x5_input[0][0]               
                                                                   G_64x5_output[0][0]              
____________________________________________________________________________________________________
D_256x5_flat (Flatten)           (None, 256)           0           D_256x5_down5_activ[0][0]        
____________________________________________________________________________________________________
model_2 (Model)                  (None, 1)             266497      G_64x5_c_input[0][0]             
                                                                   G_64x5_add[0][0]                 
____________________________________________________________________________________________________
D_256x5_output (Dense)           (None, 1)             257         D_256x5_flat[0][0]               
====================================================================================================
Total params: 284,680
Trainable params: 284,680
Non-trainable params: 0
____________________________________________________________________________________________________

In [18]:
gan.gan.outputs, gan.gan.inputs


Out[18]:
([<tf.Tensor 'model_2/D_256x5_output/Sigmoid:0' shape=(?, 1) dtype=float32>,
  <tf.Tensor 'D_256x5_output/Sigmoid:0' shape=(?, 1) dtype=float32>],
 [<tf.Tensor 'G_64x5_c_input:0' shape=(?, 1, 4) dtype=float32>,
  <tf.Tensor 'G_64x5_input:0' shape=(?, 1, 7) dtype=float32>,
  <tf.Tensor 'D_256x5_c_input:0' shape=(?, 1, 4) dtype=float32>,
  <tf.Tensor 'D_256x5_input:0' shape=(?, 1, 7) dtype=float32>])

In [19]:
plotting.plot_hists(data_x.values[:,0],mc_x.values[:,0],bins=100,range=[0,1.2])
plt.show()
plotting.plot_hists(data_x.values[:,1],mc_x.values[:,1],bins=100,range=[0,5e-2])



In [20]:
# from sklearn.preprocessing import RobustScaler, MinMaxScaler, QuantileTransformer
# scaler_x = QuantileTransformer(output_distribution='normal')
# # scaler_mc = QuantileTransformer(output_distribution='normal')

# scaler_c = QuantileTransformer(output_distribution='normal')

# mc_x = scaler_x.fit_transform(mc_x).reshape(-1,1,len(x_names))
# data_x = scaler_x.transform(data_x).reshape(-1,1,len(x_names))

# mc_c = scaler_c.fit_transform(mc_c).reshape(-1,1,len(c_names))
# data_c = scaler_c.transform(data_c).reshape(-1,1,len(c_names))

import GAN.preprocessing as preprocessing
reload(preprocessing)

data_x,data_c,mc_x,mc_c,scaler_x,scaler_c = preprocessing.transform(data_x,data_c,mc_x,mc_c,'gaus')

In [21]:
data_x.shape,mc_x.shape


Out[21]:
((17520217, 1, 7), (9616192, 1, 7))

In [22]:
for ix in range(len(x_names)):
    plotting.plot_hists(data_x[:,0,ix],mc_x[:,0,ix],bins=100,range=[-3,3])
    plt.xlabel(x_names[ix])
    plt.show()

for ic in range(len(c_names)):
    plotting.plot_hists(data_c[:,0,ic],mc_c[:,0,ic],bins=100,range=[-3,3])
    plt.xlabel(c_names[ic])
    plt.show()



In [23]:
nmax = min(data_x.shape[0]//10,mc_x.shape[0])

data_x_train,data_x_test,data_c_train,data_c_test = cms.train_test_split(data_x[:nmax],data_c[:nmax])
mc_x_train,mc_x_test,mc_c_train,mc_c_test = cms.train_test_split(mc_x[:nmax],mc_c[:nmax])

In [24]:
print(nmax)


1752021

In [25]:
import GAN.base as base
reload(base)

do = dict(
    x_train=data_x_train,
    z_train=mc_x_train,
    c_x_train=data_c_train,
    c_z_train=mc_c_train,
          
    x_test=data_x_test,
    z_test=mc_x_test,
    c_x_test=data_c_test,
    c_z_test=mc_c_test,
    
    n_epochs=10,batch_size=4096)

base.MyGAN.adversarial_fit(gan,**do)

# do.update(dict(n_disc_steps=2))
# gan.fit(**do)

# do.update(dict(n_disc_steps=3))
# gan.fit(**do)

# do.update(dict(n_disc_steps=5))
# gan.fit(**do)


/users/musella/jupyter/GAN/base.py:122: UserWarning: The `nb_epoch` argument in `fit` has been renamed `epochs`.
  callbacks = [plotter]
Epoch 1/10
1310720/1314015 [============================>.] - ETA: 0s - loss: 2.8065 - generator_loss: 1.4382 - generator_model_2_loss: 0.7266 - generator_D_256x5_output_loss: 0.7116 - discriminator_loss: 1.3683 - discriminator_model_2_loss: 0.6796 - discriminator_D_256x5_output_loss: 0.6887
1314015/1314015 [==============================] - 153s - loss: 2.8065 - generator_loss: 1.4382 - generator_model_2_loss: 0.7267 - generator_D_256x5_output_loss: 0.7115 - discriminator_loss: 1.3683 - discriminator_model_2_loss: 0.6795 - discriminator_D_256x5_output_loss: 0.6888   
Epoch 2/10
1314015/1314015 [==============================] - 16s - loss: 2.8144 - generator_loss: 1.4489 - generator_model_2_loss: 0.7275 - generator_D_256x5_output_loss: 0.7214 - discriminator_loss: 1.3655 - discriminator_model_2_loss: 0.6839 - discriminator_D_256x5_output_loss: 0.6816    
Epoch 3/10
1314015/1314015 [==============================] - 18s - loss: 2.8185 - generator_loss: 1.4548 - generator_model_2_loss: 0.7304 - generator_D_256x5_output_loss: 0.7244 - discriminator_loss: 1.3637 - discriminator_model_2_loss: 0.6831 - discriminator_D_256x5_output_loss: 0.6806    
Epoch 4/10
1314015/1314015 [==============================] - 18s - loss: 2.8213 - generator_loss: 1.4585 - generator_model_2_loss: 0.7327 - generator_D_256x5_output_loss: 0.7259 - discriminator_loss: 1.3627 - discriminator_model_2_loss: 0.6823 - discriminator_D_256x5_output_loss: 0.6804    
Epoch 5/10
1314015/1314015 [==============================] - 17s - loss: 2.8231 - generator_loss: 1.4609 - generator_model_2_loss: 0.7339 - generator_D_256x5_output_loss: 0.7270 - discriminator_loss: 1.3622 - discriminator_model_2_loss: 0.6821 - discriminator_D_256x5_output_loss: 0.6801    
Epoch 6/10
1310720/1314015 [============================>.] - ETA: 0s - loss: 2.8243 - generator_loss: 1.4625 - generator_model_2_loss: 0.7349 - generator_D_256x5_output_loss: 0.7275 - discriminator_loss: 1.3618 - discriminator_model_2_loss: 0.6817 - discriminator_D_256x5_output_loss: 0.6801
1314015/1314015 [==============================] - 147s - loss: 2.8243 - generator_loss: 1.4625 - generator_model_2_loss: 0.7349 - generator_D_256x5_output_loss: 0.7276 - discriminator_loss: 1.3618 - discriminator_model_2_loss: 0.6818 - discriminator_D_256x5_output_loss: 0.6800   
Epoch 7/10
1314015/1314015 [==============================] - 17s - loss: 2.8251 - generator_loss: 1.4635 - generator_model_2_loss: 0.7356 - generator_D_256x5_output_loss: 0.7278 - discriminator_loss: 1.3616 - discriminator_model_2_loss: 0.6816 - discriminator_D_256x5_output_loss: 0.6800    
Epoch 8/10
1314015/1314015 [==============================] - 17s - loss: 2.8251 - generator_loss: 1.4634 - generator_model_2_loss: 0.7358 - generator_D_256x5_output_loss: 0.7276 - discriminator_loss: 1.3616 - discriminator_model_2_loss: 0.6816 - discriminator_D_256x5_output_loss: 0.6800    
Epoch 9/10
1314015/1314015 [==============================] - 18s - loss: 2.8247 - generator_loss: 1.4630 - generator_model_2_loss: 0.7356 - generator_D_256x5_output_loss: 0.7274 - discriminator_loss: 1.3617 - discriminator_model_2_loss: 0.6817 - discriminator_D_256x5_output_loss: 0.6800    
Epoch 10/10
1314015/1314015 [==============================] - 17s - loss: 2.8247 - generator_loss: 1.4630 - generator_model_2_loss: 0.7359 - generator_D_256x5_output_loss: 0.7271 - discriminator_loss: 1.3617 - discriminator_model_2_loss: 0.6816 - discriminator_D_256x5_output_loss: 0.6801    

In [26]:
mc_x_morphed = gan.get_generator().predict([mc_c_test,mc_x_test])[1]

data_p = gan.get_discriminator().predict([data_c_test,data_x_test])
mc_p   = gan.get_discriminator().predict([mc_c_test,mc_x_morphed])

In [27]:
reload(plotting)

data_quantiles = np.percentile(data_c_test,[0,5,20,40,60,80,95,100])

# plotting.plot_summary_cond(data_x_test,data_c_test,mc_x_test,mc_c_test,mc_x_test,data_p,mc_p)
# plotting.plot_summary_cond(data_x_test,data_c_test,mc_x_morphed,mc_c_test,mc_x_test,data_p,mc_p)
plotting.plot_summary_cond(data_x_test,data_c_test,mc_x_morphed,mc_c_test,mc_x_test,data_p,mc_p,
                           do_slices=True,c_bounds=data_quantiles)



In [ ]: