Imports


In [ ]:
import numpy as np
import matplotlib.pyplot as plt

%matplotlib inline

# Local
import Neuron
import models as models
import train as train
import batch_utils
import data_transforms
import generate_training_data

Data


In [ ]:
training_data = generate_training_data.y_shape(n_nodes=20, 
                                               data_size=1000, 
                                               first_length=10, 
                                               branching_node=6)

Global parameters


In [ ]:
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'
#train_loss = 'wasserstein_loss'

rule = 'none'
d_weight_constraint = [-.03, .03]
g_weight_constraint = [-33.3, 33.3]
m_weight_constraint = [-33.3, 33.3]

Run


In [ ]:
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,
                      d_weight_constraint=d_weight_constraint,
                      g_weight_constraint=g_weight_constraint,
                      m_weight_constraint=m_weight_constraint,
                      rule=rule,
                      train_loss=train_loss,
                      verbose=True)

In [ ]: