Imports


In [1]:
import numpy as np

# Keras
from keras.models import Sequential
from keras.layers.core import Dense, Reshape, Dropout, Activation
from keras.layers import Input, merge
from keras.models import Model
from keras.layers.wrappers import TimeDistributed
from keras.layers.recurrent import LSTM
from keras import backend as K

# Other
import matplotlib.pyplot as plt
from copy import deepcopy
import os
import pickle

%matplotlib inline

# Local
import McNeuron
#import models_generate_parents as models
#import morphology_generator as models
import models3 as models
#import train_one_by_one_morphology as train
import train3 as train
#import train_one_by_one as train
import batch_utils
import data_transforms


Using Theano backend.

Load Data


In [2]:
# training_data = pickle.load(open("/Volumes/Arch/Dropbox/HG-GAN/03" + 
#                                  str("-Data/synthetic_Two_segment_model")+
#                                  str("_Different_directions_Parent_") + 
#                                  str("distance_n20_parent_id.p"), "rb"))
training_data = pickle.load(open("/Volumes/Arch/Dropbox/HG-GAN/03" + 
                                 str("-Data/synthetic_Two_segment_model")+
                                 str("_Different_directions_Parent_") + 
                                 str("distance_n20_parent_id_loc=dis_parent.p"), "rb"))

Global parameters


In [5]:
n_nodes = 20
input_dim = 100
n_epochs = 5
batch_size = 32
n_batch_per_epoch = np.floor(training_data['morphology']['n20'].shape[0]/batch_size).astype(int)
d_iters = 20
lr_discriminator =  0.001
lr_generator = 0.001
train_loss = 'binary_crossentropy'

rule = 'none'
weight_constraint = [-.03, .03]

Run


In [6]:
geom_model, morph_model, disc_model, gan_model = \
    train.train_model(training_data=training_data,
                      n_nodes=n_nodes,
                      input_dim=input_dim,
                      n_epochs=n_epochs,
                      batch_size=batch_size,
                      n_batch_per_epoch=n_batch_per_epoch,
                      d_iters=d_iters,
                      lr_discriminator=lr_discriminator,
                      lr_generator=lr_generator,
                      weight_constraint=weight_constraint,
                      rule=rule,
                      train_loss=train_loss,
                      verbose=True)


____________________________________________________________________________________________________
Layer (type)                     Output Shape          Param #     Connected to                     
====================================================================================================
input_3 (InputLayer)             (None, 19, 3)         0                                            
____________________________________________________________________________________________________
input_4 (InputLayer)             (None, 19, 20)        0                                            
____________________________________________________________________________________________________
merge_2 (Merge)                  (None, 19, 23)        0           input_3[0][0]                    
                                                                   input_4[0][0]                    
____________________________________________________________________________________________________
lambda_3 (Lambda)                (None, 20, 106)       0           merge_2[0][0]                    
____________________________________________________________________________________________________
reshape_4 (Reshape)              (None, 1, 2120)       0           lambda_3[0][0]                   
____________________________________________________________________________________________________
dense_12 (Dense)                 (None, 1, 200)        424200      reshape_4[0][0]                  
____________________________________________________________________________________________________
dense_13 (Dense)                 (None, 1, 50)         10050       dense_12[0][0]                   
____________________________________________________________________________________________________
dense_14 (Dense)                 (None, 1, 10)         510         dense_13[0][0]                   
____________________________________________________________________________________________________
dense_15 (Dense)                 (None, 1, 1)          11          dense_14[0][0]                   
====================================================================================================
Total params: 434,771
Trainable params: 434,771
Non-trainable params: 0
____________________________________________________________________________________________________
____________________________________________________________________________________________________
Layer (type)                     Output Shape          Param #     Connected to                     
====================================================================================================
noise_input (InputLayer)         (None, 1, 100)        0                                            
____________________________________________________________________________________________________
dense_16 (Dense)                 (None, 1, 100)        10100       noise_input[0][0]                
____________________________________________________________________________________________________
dense_17 (Dense)                 (None, 1, 100)        10100       dense_16[0][0]                   
____________________________________________________________________________________________________
dense_18 (Dense)                 (None, 1, 50)         5050        dense_17[0][0]                   
____________________________________________________________________________________________________
dense_19 (Dense)                 (None, 1, 57)         2907        dense_18[0][0]                   
____________________________________________________________________________________________________
reshape_5 (Reshape)              (None, 19, 3)         0           dense_19[0][0]                   
====================================================================================================
Total params: 28,157
Trainable params: 28,157
Non-trainable params: 0
____________________________________________________________________________________________________
____________________________________________________________________________________________________
Layer (type)                     Output Shape          Param #     Connected to                     
====================================================================================================
noise_input (InputLayer)         (None, 1, 100)        0                                            
____________________________________________________________________________________________________
dense_20 (Dense)                 (None, 1, 100)        10100       noise_input[0][0]                
____________________________________________________________________________________________________
dense_21 (Dense)                 (None, 1, 100)        10100       dense_20[0][0]                   
____________________________________________________________________________________________________
dense_22 (Dense)                 (None, 1, 380)        38380       dense_21[0][0]                   
____________________________________________________________________________________________________
reshape_6 (Reshape)              (None, 19, 20)        0           dense_22[0][0]                   
____________________________________________________________________________________________________
lambda_4 (Lambda)                (None, 19, 20)        0           reshape_6[0][0]                  
====================================================================================================
Total params: 58,580
Trainable params: 58,580
Non-trainable params: 0
____________________________________________________________________________________________________

====================

Epoch #0

    After 20 iterations
        Discriminator Loss                     = 0.00578188430518

    Generator_Loss: 4.94541358948
2
     Level #1 Epoch #0 Batch #2
    After 20 iterations
        Discriminator Loss                     = 0.00334420101717

    Generator_Loss: 4.61161088943
3
    After 20 iterations
        Discriminator Loss                     = 0.00521979667246

    Generator_Loss: 4.19804954529
4
     Level #1 Epoch #0 Batch #4
    After 20 iterations
        Discriminator Loss                     = 0.00925806630403

    Generator_Loss: 4.2492275238
5
    After 20 iterations
        Discriminator Loss                     = 0.0127445515245

    Generator_Loss: 4.25526094437
6
     Level #1 Epoch #0 Batch #6
    After 20 iterations
        Discriminator Loss                     = 0.00676031690091

    Generator_Loss: 4.58628416061
7
    After 20 iterations
        Discriminator Loss                     = 0.00652778567746

    Generator_Loss: 5.03641223907
8
     Level #1 Epoch #0 Batch #8
    After 20 iterations
        Discriminator Loss                     = 0.0171141792089

    Generator_Loss: 4.59877157211
9
    After 20 iterations
        Discriminator Loss                     = 0.0163528993726

    Generator_Loss: 4.16571140289
10
     Level #1 Epoch #0 Batch #10
    After 20 iterations
        Discriminator Loss                     = 0.0215438138694

    Generator_Loss: 4.29655408859
11
    After 20 iterations
        Discriminator Loss                     = 0.0293504390866

    Generator_Loss: 4.27063846588
12
     Level #1 Epoch #0 Batch #12
    After 20 iterations
        Discriminator Loss                     = 0.0221139639616

    Generator_Loss: 4.4227514267
13
    After 20 iterations
        Discriminator Loss                     = 0.020547952503

    Generator_Loss: 4.06455135345
14
     Level #1 Epoch #0 Batch #14
    After 20 iterations
        Discriminator Loss                     = 0.0167981125414

    Generator_Loss: 4.46633958817
15
    After 20 iterations
        Discriminator Loss                     = 0.0284128002822

    Generator_Loss: 4.06940937042
16
     Level #1 Epoch #0 Batch #16
    After 20 iterations
        Discriminator Loss                     = 0.01208930742

    Generator_Loss: 4.80876064301
17
    After 20 iterations
        Discriminator Loss                     = 0.0383573099971

    Generator_Loss: 3.98427629471
18
     Level #1 Epoch #0 Batch #18
    After 20 iterations
        Discriminator Loss                     = 0.0410992726684

    Generator_Loss: 3.97968101501
19
    After 20 iterations
        Discriminator Loss                     = 0.032060008496

    Generator_Loss: 4.17113494873
20
     Level #1 Epoch #0 Batch #20
    After 20 iterations
        Discriminator Loss                     = 0.0345502570271

    Generator_Loss: 3.77483868599
21
    After 20 iterations
        Discriminator Loss                     = 0.0383487530053

    Generator_Loss: 3.73535013199
22
     Level #1 Epoch #0 Batch #22
    After 20 iterations
        Discriminator Loss                     = 0.0509651303291

    Generator_Loss: 3.41515827179
23
    After 20 iterations
        Discriminator Loss                     = 0.0255360081792

    Generator_Loss: 3.68147349358
24
     Level #1 Epoch #0 Batch #24
    After 20 iterations
        Discriminator Loss                     = 0.0227290745825

    Generator_Loss: 4.07283401489
25
    After 20 iterations
        Discriminator Loss                     = 0.0280267056078

    Generator_Loss: 3.81276679039
26
     Level #1 Epoch #0 Batch #26
    After 20 iterations
        Discriminator Loss                     = 0.0257836747915

    Generator_Loss: 3.59795308113
27
    After 20 iterations
        Discriminator Loss                     = 0.0308765377849

    Generator_Loss: 3.72284436226
28
     Level #1 Epoch #0 Batch #28
    After 20 iterations
        Discriminator Loss                     = 0.0297300126404

    Generator_Loss: 3.72177195549
29
    After 20 iterations
        Discriminator Loss                     = 0.0257949922234

    Generator_Loss: 3.3686709404
30
     Level #1 Epoch #0 Batch #30
    After 20 iterations
        Discriminator Loss                     = 0.0599372014403

    Generator_Loss: 3.47441387177
31
    After 20 iterations
        Discriminator Loss                     = 0.0474324524403

    Generator_Loss: 3.27217340469
32
     Level #1 Epoch #0 Batch #32
    After 20 iterations
        Discriminator Loss                     = 0.0542302019894

    Generator_Loss: 3.3868367672
33
    After 20 iterations
        Discriminator Loss                     = 0.035142801702

    Generator_Loss: 3.49864149094
34
     Level #1 Epoch #0 Batch #34
    After 20 iterations
        Discriminator Loss                     = 0.0398532561958

    Generator_Loss: 3.72054004669
35
    After 20 iterations
        Discriminator Loss                     = 0.0335755944252

    Generator_Loss: 3.53353142738
36
     Level #1 Epoch #0 Batch #36
    After 20 iterations
        Discriminator Loss                     = 0.0394624471664

    Generator_Loss: 3.65101408958
37
    After 20 iterations
        Discriminator Loss                     = 0.0401676744223

    Generator_Loss: 3.48075914383
38
     Level #1 Epoch #0 Batch #38
    After 20 iterations
        Discriminator Loss                     = 0.0427804775536

    Generator_Loss: 3.31207227707
39
    After 20 iterations
        Discriminator Loss                     = 0.0418871082366

    Generator_Loss: 3.32000303268
40
     Level #1 Epoch #0 Batch #40
    After 20 iterations
        Discriminator Loss                     = 0.0484003387392

    Generator_Loss: 3.57293605804
41
    After 20 iterations
        Discriminator Loss                     = 0.0697116404772

    Generator_Loss: 3.38402152061
42
     Level #1 Epoch #0 Batch #42
    After 20 iterations
        Discriminator Loss                     = 0.0569115020335

    Generator_Loss: 3.17083859444
43
    After 20 iterations
        Discriminator Loss                     = 0.0520328879356

    Generator_Loss: 3.29041743279
44
     Level #1 Epoch #0 Batch #44
    After 20 iterations
        Discriminator Loss                     = 0.0468531027436

    Generator_Loss: 3.36793971062
45
    After 20 iterations
        Discriminator Loss                     = 0.0529979355633

    Generator_Loss: 3.15945959091
46
     Level #1 Epoch #0 Batch #46
    After 20 iterations
        Discriminator Loss                     = 0.0696685090661

    Generator_Loss: 3.41576242447
47
    After 20 iterations
        Discriminator Loss                     = 0.0562179759145

    Generator_Loss: 3.24944472313
48
     Level #1 Epoch #0 Batch #48
    After 20 iterations
        Discriminator Loss                     = 0.0689142122865

    Generator_Loss: 3.16449904442
49
    After 20 iterations
        Discriminator Loss                     = 0.0813009664416

    Generator_Loss: 3.38608145714
50
     Level #1 Epoch #0 Batch #50
    After 20 iterations
        Discriminator Loss                     = 0.0755718201399

    Generator_Loss: 3.31128907204
51
    After 20 iterations
        Discriminator Loss                     = 0.0600487031043

    Generator_Loss: 3.17938423157
52
     Level #1 Epoch #0 Batch #52
    After 20 iterations
        Discriminator Loss                     = 0.0652266442776

    Generator_Loss: 3.301851511
53
    After 20 iterations
        Discriminator Loss                     = 0.0479856431484

    Generator_Loss: 3.43509888649
54
     Level #1 Epoch #0 Batch #54
    After 20 iterations
        Discriminator Loss                     = 0.0531590394676

    Generator_Loss: 3.44364142418
55
    After 20 iterations
        Discriminator Loss                     = 0.0574959814548

    Generator_Loss: 3.4021525383
56
     Level #1 Epoch #0 Batch #56
    After 20 iterations
        Discriminator Loss                     = 0.0463576465845

    Generator_Loss: 3.37271690369
57
    After 20 iterations
        Discriminator Loss                     = 0.0519929341972

    Generator_Loss: 3.32930469513
58
     Level #1 Epoch #0 Batch #58
    After 20 iterations
        Discriminator Loss                     = 0.0720115602016

    Generator_Loss: 3.10994958878
59
    After 20 iterations
        Discriminator Loss                     = 0.0575288534164

    Generator_Loss: 2.92473864555
60
     Level #1 Epoch #0 Batch #60
    After 20 iterations
        Discriminator Loss                     = 0.0583100505173

    Generator_Loss: 3.11942648888
61
    After 20 iterations
        Discriminator Loss                     = 0.0779906585813

    Generator_Loss: 3.16290950775
62
     Level #1 Epoch #0 Batch #62
    After 20 iterations
        Discriminator Loss                     = 0.0580578967929

    Generator_Loss: 3.08583164215
63
    After 20 iterations
        Discriminator Loss                     = 0.0522646345198

    Generator_Loss: 3.41352415085
64
     Level #1 Epoch #0 Batch #64
    After 20 iterations
        Discriminator Loss                     = 0.0456255823374

    Generator_Loss: 3.37404108047
65
    After 20 iterations
        Discriminator Loss                     = 0.0429240912199

    Generator_Loss: 3.3665099144
66
     Level #1 Epoch #0 Batch #66
    After 20 iterations
        Discriminator Loss                     = 0.0512379482388

    Generator_Loss: 3.36542010307
67
    After 20 iterations
        Discriminator Loss                     = 0.0454839430749

    Generator_Loss: 3.29834961891
68
     Level #1 Epoch #0 Batch #68
    After 20 iterations
        Discriminator Loss                     = 0.0485068634152

    Generator_Loss: 3.2528116703
69
    After 20 iterations
        Discriminator Loss                     = 0.0479245111346

    Generator_Loss: 3.38194012642
70
     Level #1 Epoch #0 Batch #70
    After 20 iterations
        Discriminator Loss                     = 0.0733167305589

    Generator_Loss: 3.25080275536
71
    After 20 iterations
        Discriminator Loss                     = 0.0664338618517

    Generator_Loss: 2.90355920792
72
     Level #1 Epoch #0 Batch #72
    After 20 iterations
        Discriminator Loss                     = 0.0601026639342

    Generator_Loss: 3.02462029457
73
    After 20 iterations
        Discriminator Loss                     = 0.0630407184362

    Generator_Loss: 3.17610526085
74
     Level #1 Epoch #0 Batch #74
    After 20 iterations
        Discriminator Loss                     = 0.0596892535686

    Generator_Loss: 3.12014746666
75
    After 20 iterations
        Discriminator Loss                     = 0.0715815126896

    Generator_Loss: 3.19248175621
76
     Level #1 Epoch #0 Batch #76
    After 20 iterations
        Discriminator Loss                     = 0.0969163477421

    Generator_Loss: 3.23963928223
77
    After 20 iterations
        Discriminator Loss                     = 0.0817943438888

    Generator_Loss: 2.9458823204
78
     Level #1 Epoch #0 Batch #78
    After 20 iterations
        Discriminator Loss                     = 0.132594570518

    Generator_Loss: 2.60464549065
79
    After 20 iterations
        Discriminator Loss                     = 0.163471981883

    Generator_Loss: 2.48429560661
80
     Level #1 Epoch #0 Batch #80
    After 20 iterations
        Discriminator Loss                     = 0.178124815226

    Generator_Loss: 2.69254684448
81
    After 20 iterations
        Discriminator Loss                     = 0.183334708214

    Generator_Loss: 2.58551096916
82
     Level #1 Epoch #0 Batch #82
    After 20 iterations
        Discriminator Loss                     = 0.216981187463

    Generator_Loss: 2.10451245308
83
    After 20 iterations
        Discriminator Loss                     = 0.203779265285

    Generator_Loss: 2.03086352348
84
     Level #1 Epoch #0 Batch #84
    After 20 iterations
        Discriminator Loss                     = 0.180399104953

    Generator_Loss: 2.10557389259
85
    After 20 iterations
        Discriminator Loss                     = 0.148913502693

    Generator_Loss: 2.30483818054
86
     Level #1 Epoch #0 Batch #86
    After 20 iterations
        Discriminator Loss                     = 0.124614737928

    Generator_Loss: 2.06919527054
87
    After 20 iterations
        Discriminator Loss                     = 0.149318829179

    Generator_Loss: 2.43744063377
88
     Level #1 Epoch #0 Batch #88
    After 20 iterations
        Discriminator Loss                     = 0.128387436271

    Generator_Loss: 2.41745305061
89
    After 20 iterations
        Discriminator Loss                     = 0.152216151357

    Generator_Loss: 2.4243144989
90
     Level #1 Epoch #0 Batch #90
    After 20 iterations
        Discriminator Loss                     = 0.12767842412

    Generator_Loss: 2.26506328583
91
    After 20 iterations
        Discriminator Loss                     = 0.133638650179

    Generator_Loss: 2.3935174942
92
     Level #1 Epoch #0 Batch #92
    After 20 iterations
        Discriminator Loss                     = 0.124248988926

    Generator_Loss: 2.30245900154
93
    After 20 iterations
        Discriminator Loss                     = 0.182002022862

    Generator_Loss: 2.34414172173
94
     Level #1 Epoch #0 Batch #94
    After 20 iterations
        Discriminator Loss                     = 0.164967834949

    Generator_Loss: 1.94014561176
95
    After 20 iterations
        Discriminator Loss                     = 0.167450010777

    Generator_Loss: 1.77290081978
96
     Level #1 Epoch #0 Batch #96
    After 20 iterations
        Discriminator Loss                     = 0.16069111228

    Generator_Loss: 1.82592594624
97
    After 20 iterations
        Discriminator Loss                     = 0.14251576364

    Generator_Loss: 2.28393483162
98
     Level #1 Epoch #0 Batch #98
    After 20 iterations
        Discriminator Loss                     = 0.128854349256

    Generator_Loss: 2.45792245865
99
    After 20 iterations
        Discriminator Loss                     = 0.132300034165

    Generator_Loss: 2.46575546265
100
     Level #1 Epoch #0 Batch #100
    After 20 iterations
        Discriminator Loss                     = 0.125992715359

    Generator_Loss: 2.14024043083
101
    After 20 iterations
        Discriminator Loss                     = 0.144498497248

    Generator_Loss: 2.1790266037
102
     Level #1 Epoch #0 Batch #102
    After 20 iterations
        Discriminator Loss                     = 0.130382105708

    Generator_Loss: 2.30898571014
103
    After 20 iterations
        Discriminator Loss                     = 0.216525405645

    Generator_Loss: 1.80482184887
104
     Level #1 Epoch #0 Batch #104
    After 20 iterations
        Discriminator Loss                     = 0.242820084095

    Generator_Loss: 1.83648264408
105
    After 20 iterations
        Discriminator Loss                     = 0.219879612327

    Generator_Loss: 2.00168728828
106
     Level #1 Epoch #0 Batch #106
    After 20 iterations
        Discriminator Loss                     = 0.200325518847

    Generator_Loss: 2.1240978241
107
    After 20 iterations
        Discriminator Loss                     = 0.16264308989

    Generator_Loss: 2.14555335045
108
     Level #1 Epoch #0 Batch #108
    After 20 iterations
        Discriminator Loss                     = 0.145507916808

    Generator_Loss: 2.08428144455
109
    After 20 iterations
        Discriminator Loss                     = 0.184400260448

    Generator_Loss: 2.41374850273
110
     Level #1 Epoch #0 Batch #110
    After 20 iterations
        Discriminator Loss                     = 0.125213965774

    Generator_Loss: 2.46759700775
111
    After 20 iterations
        Discriminator Loss                     = 0.114971138537

    Generator_Loss: 2.6810233593
112
     Level #1 Epoch #0 Batch #112
    After 20 iterations
        Discriminator Loss                     = 0.132135972381

    Generator_Loss: 2.54129123688
113
    After 20 iterations
        Discriminator Loss                     = 0.137656629086

    Generator_Loss: 2.85505366325
114
     Level #1 Epoch #0 Batch #114
    After 20 iterations
        Discriminator Loss                     = 0.166368991137

    Generator_Loss: 2.71090388298
115
    After 20 iterations
        Discriminator Loss                     = 0.133697524667

    Generator_Loss: 2.8334069252
116
     Level #1 Epoch #0 Batch #116
    After 20 iterations
        Discriminator Loss                     = 0.141681179404

    Generator_Loss: 2.40741014481
117
    After 20 iterations
        Discriminator Loss                     = 0.131566733122

    Generator_Loss: 2.36653375626
118
     Level #1 Epoch #0 Batch #118
    After 20 iterations
        Discriminator Loss                     = 0.177111566067

    Generator_Loss: 2.42803001404
119
    After 20 iterations
        Discriminator Loss                     = 0.176703378558

    Generator_Loss: 2.18589305878
120
     Level #1 Epoch #0 Batch #120
    After 20 iterations
        Discriminator Loss                     = 0.185295984149

    Generator_Loss: 2.08425378799
121
    After 20 iterations
        Discriminator Loss                     = 0.22091601789

    Generator_Loss: 2.22315883636
122
     Level #1 Epoch #0 Batch #122
    After 20 iterations
        Discriminator Loss                     = 0.178747862577

    Generator_Loss: 2.32056856155
123
    After 20 iterations
        Discriminator Loss                     = 0.154115512967

    Generator_Loss: 2.18787455559
124
     Level #1 Epoch #0 Batch #124
    After 20 iterations
        Discriminator Loss                     = 0.159564748406

    Generator_Loss: 2.39682435989
125
    After 20 iterations
        Discriminator Loss                     = 0.135683000088

    Generator_Loss: 2.42507576942
126
     Level #1 Epoch #0 Batch #126
    After 20 iterations
        Discriminator Loss                     = 0.107406198978

    Generator_Loss: 2.7096016407
127
    After 20 iterations
        Discriminator Loss                     = 0.126955896616

    Generator_Loss: 2.72549510002
128
     Level #1 Epoch #0 Batch #128
    After 20 iterations
        Discriminator Loss                     = 0.118843249977

    Generator_Loss: 2.69063901901
129
    After 20 iterations
        Discriminator Loss                     = 0.121902771294

    Generator_Loss: 2.63402628899
130
     Level #1 Epoch #0 Batch #130
    After 20 iterations
        Discriminator Loss                     = 0.171956405044

    Generator_Loss: 3.06998944283
131
    After 20 iterations
        Discriminator Loss                     = 0.16597263515

    Generator_Loss: 2.64703249931
132
     Level #1 Epoch #0 Batch #132
    After 20 iterations
        Discriminator Loss                     = 0.151690915227

    Generator_Loss: 2.28477954865
133
    After 20 iterations
        Discriminator Loss                     = 0.197952881455

    Generator_Loss: 1.87336444855
134
     Level #1 Epoch #0 Batch #134
    After 20 iterations
        Discriminator Loss                     = 0.124226771295

    Generator_Loss: 2.03386354446
135
    After 20 iterations
        Discriminator Loss                     = 0.179865017533

    Generator_Loss: 2.11952972412
136
     Level #1 Epoch #0 Batch #136
    After 20 iterations
        Discriminator Loss                     = 0.128241494298

    Generator_Loss: 2.06730723381
137
    After 20 iterations
        Discriminator Loss                     = 0.144676700234

    Generator_Loss: 2.197078228
138
     Level #1 Epoch #0 Batch #138
    After 20 iterations
        Discriminator Loss                     = 0.117173299193

    Generator_Loss: 2.35017609596
139
    After 20 iterations
        Discriminator Loss                     = 0.0877492576838

    Generator_Loss: 2.59621858597
140
     Level #1 Epoch #0 Batch #140
    After 20 iterations
        Discriminator Loss                     = 0.0912589281797

    Generator_Loss: 2.6112382412
141
    After 20 iterations
        Discriminator Loss                     = 0.162896886468

    Generator_Loss: 2.43843150139
142
     Level #1 Epoch #0 Batch #142
    After 20 iterations
        Discriminator Loss                     = 0.14781524241

    Generator_Loss: 2.67018294334
143
    After 20 iterations
        Discriminator Loss                     = 0.114146634936

    Generator_Loss: 2.67408752441
144
     Level #1 Epoch #0 Batch #144
    After 20 iterations
        Discriminator Loss                     = 0.084156498313

    Generator_Loss: 2.78800177574
145
    After 20 iterations
        Discriminator Loss                     = 0.0656395331025

    Generator_Loss: 2.63689494133
146
     Level #1 Epoch #0 Batch #146
    After 20 iterations
        Discriminator Loss                     = 0.130854293704

    Generator_Loss: 2.51503324509
147
    After 20 iterations
        Discriminator Loss                     = 0.112723812461

    Generator_Loss: 2.35591435432
148
     Level #1 Epoch #0 Batch #148
    After 20 iterations
        Discriminator Loss                     = 0.144537389278

    Generator_Loss: 2.03366661072
149
    After 20 iterations
        Discriminator Loss                     = 0.210818678141

    Generator_Loss: 2.25024104118
150
     Level #1 Epoch #0 Batch #150
    After 20 iterations
        Discriminator Loss                     = 0.20190115273

    Generator_Loss: 1.98252785206
151
    After 20 iterations
        Discriminator Loss                     = 0.172216683626

    Generator_Loss: 2.30034065247
152
     Level #1 Epoch #0 Batch #152
    After 20 iterations
        Discriminator Loss                     = 0.163898944855

    Generator_Loss: 2.24930334091
153
    After 20 iterations
        Discriminator Loss                     = 0.216546237469

    Generator_Loss: 2.28064060211
154
     Level #1 Epoch #0 Batch #154
---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
<ipython-input-6-a15c0247e600> in <module>()
     11                       rule=rule,
     12                       train_loss=train_loss,
---> 13                       verbose=True)

/Users/RoozbehFarhoudi/Documents/Repos/McNeuron/train3.pyc in train_model(training_data, n_nodes, input_dim, n_epochs, batch_size, n_batch_per_epoch, d_iters, lr_discriminator, lr_generator, weight_constraint, rule, train_loss, verbose)
    313             # Display loss trace
    314             #if verbose:
--> 315                     plot_utils.plot_loss_trace(list_d_loss)
    316 
    317             #  Save models

/Users/RoozbehFarhoudi/Documents/Repos/McNeuron/plot_utils.pyc in plot_loss_trace(loss)
     71     plt.figure(figsize=(3, 2))
     72     plt.plot(loss)
---> 73     plt.show()
     74 
     75 

/Users/RoozbehFarhoudi/anaconda/lib/python2.7/site-packages/matplotlib/pyplot.pyc in show(*args, **kw)
    153     """
    154     global _show
--> 155     return _show(*args, **kw)
    156 
    157 

/Users/RoozbehFarhoudi/anaconda/lib/python2.7/site-packages/ipykernel/pylab/backend_inline.pyc in show(close)
     30     try:
     31         for figure_manager in Gcf.get_all_fig_managers():
---> 32             display(figure_manager.canvas.figure)
     33     finally:
     34         show._to_draw = []

/Users/RoozbehFarhoudi/anaconda/lib/python2.7/site-packages/IPython/core/display.pyc in display(*objs, **kwargs)
    157             publish_display_data(data=obj, metadata=metadata)
    158         else:
--> 159             format_dict, md_dict = format(obj, include=include, exclude=exclude)
    160             if not format_dict:
    161                 # nothing to display (e.g. _ipython_display_ took over)

/Users/RoozbehFarhoudi/anaconda/lib/python2.7/site-packages/IPython/core/formatters.pyc in format(self, obj, include, exclude)
    173             md = None
    174             try:
--> 175                 data = formatter(obj)
    176             except:
    177                 # FIXME: log the exception

<decorator-gen-9> in __call__(self, obj)

/Users/RoozbehFarhoudi/anaconda/lib/python2.7/site-packages/IPython/core/formatters.pyc in catch_format_error(method, self, *args, **kwargs)
    218     """show traceback on failed format call"""
    219     try:
--> 220         r = method(self, *args, **kwargs)
    221     except NotImplementedError:
    222         # don't warn on NotImplementedErrors

/Users/RoozbehFarhoudi/anaconda/lib/python2.7/site-packages/IPython/core/formatters.pyc in __call__(self, obj)
    335                 pass
    336             else:
--> 337                 return printer(obj)
    338             # Finally look for special method names
    339             method = _safe_get_formatter_method(obj, self.print_method)

/Users/RoozbehFarhoudi/anaconda/lib/python2.7/site-packages/IPython/core/pylabtools.pyc in <lambda>(fig)
    205 
    206     if 'png' in formats:
--> 207         png_formatter.for_type(Figure, lambda fig: print_figure(fig, 'png', **kwargs))
    208     if 'retina' in formats or 'png2x' in formats:
    209         png_formatter.for_type(Figure, lambda fig: retina_figure(fig, **kwargs))

/Users/RoozbehFarhoudi/anaconda/lib/python2.7/site-packages/IPython/core/pylabtools.pyc in print_figure(fig, fmt, bbox_inches, **kwargs)
    115 
    116     bytes_io = BytesIO()
--> 117     fig.canvas.print_figure(bytes_io, **kw)
    118     data = bytes_io.getvalue()
    119     if fmt == 'svg':

/Users/RoozbehFarhoudi/anaconda/lib/python2.7/site-packages/matplotlib/backend_bases.pyc in print_figure(self, filename, dpi, facecolor, edgecolor, orientation, format, **kwargs)
   2209                 orientation=orientation,
   2210                 bbox_inches_restore=_bbox_inches_restore,
-> 2211                 **kwargs)
   2212         finally:
   2213             if bbox_inches and restore_bbox:

/Users/RoozbehFarhoudi/anaconda/lib/python2.7/site-packages/matplotlib/backends/backend_agg.pyc in print_png(self, filename_or_obj, *args, **kwargs)
    531             _png.write_png(renderer._renderer.buffer_rgba(),
    532                            renderer.width, renderer.height,
--> 533                            filename_or_obj, self.figure.dpi)
    534         finally:
    535             if close:

KeyboardInterrupt: 

In [ ]:
(K.ones(3)*K.repeat(K.random_normal([1,3]),3)).eval()

In [ ]:
(K.ones([2,3,5])*K.repeat_elements(K.random_normal([2,3]),5,axis=2)).eval()

In [ ]:
a = K.zeros([2,3,4])
b = K.expand_dims(a[:,:,0],dim = 2)
b.eval().shape

In [ ]: