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
In [ ]:
training_data = generate_training_data.y_shape(n_nodes=20,
data_size=1000,
first_length=10,
branching_node=6)
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]
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 [ ]: