Skip to content

Commit

Permalink
Merge pull request #108 from joeljpoulin/tox-additions
Browse files Browse the repository at this point in the history
Tox additions & Autopep8 ran once.
  • Loading branch information
snowstormscorpiomars committed Jun 13, 2018
2 parents cbf762c + e8fcc8d commit 0521139
Show file tree
Hide file tree
Showing 9 changed files with 58 additions and 9 deletions.
1 change: 0 additions & 1 deletion cortex/_lib/data/__init__.py
Expand Up @@ -19,7 +19,6 @@
def setup(source: str=None, batch_size=64, n_workers: int=4,
skip_last_batch: bool=False, DataLoader=None,
copy_to_local: bool=False, data_args={}, shuffle: bool=True):

"""
Dataset entrypoint.
Expand Down
6 changes: 3 additions & 3 deletions cortex/_lib/train.py
Expand Up @@ -127,7 +127,7 @@ def display_results(
if times:
print('\tAvg update times: ' + ' | '
.join(['{}: {:.2f}'
.format(k, v) for k, v in times.items()]))
.format(k, v) for k, v in times.items()]))

train_losses = train_results.pop('losses')
test_losses = test_results.pop('losses')
Expand All @@ -142,15 +142,15 @@ def display_results(
if isinstance(v_train, dict):
print('\t' + k + ': ' + ' | '
.join(['{}: {:.2f}'
.format(k_, v_train[k_])
.format(k_, v_train[k_])
for k_ in v_train.keys()]))
else:
print('\t{}: {:.2f}'.format(k, v_train))
else:
if isinstance(v_train, dict):
print('\t' + k + ': ' + ' | '
.join(['{}: {:.2f} / {:.2f}'
.format(k_, v_train[k_], v_test[k_])
.format(k_, v_train[k_], v_test[k_])
for k_ in v_train.keys()]))
else:
print('\t{}: {:.2f} / {:.2f}'.format(k, v_train, v_test))
Expand Down
8 changes: 8 additions & 0 deletions cortex/built_ins/models/classifier.py
Expand Up @@ -58,6 +58,8 @@ def classify(self, classifier, inputs, targets, criterion=None):
def visualize(self, inputs, targets, predicted):
self.add_image(inputs.data, labels=(targets.data, predicted.data),
name=self.name + '_gt_pred')


register_plugin(ClassifyRoutine)


Expand All @@ -83,6 +85,8 @@ def build(self, dim_in: int=None, dim_h=[200, 200], classifier_args={}):
classifier = FullyConnectedNet(dim_in, dim_h=dim_h,
dim_out=dim_l, **classifier_args)
self.add_networks(simple_classifier=classifier)


register_plugin(SimpleClassifierBuild)


Expand Down Expand Up @@ -113,6 +117,8 @@ def build(self, classifier_type='convnet', classifier_args={}):

classifier = Encoder(shape, dim_out=dim_l, **args)
self.add_networks(image_classifier=classifier)


register_plugin(ImageClassifierBuild)


Expand All @@ -135,4 +141,6 @@ def __init__(self):
inputs='data.images', targets='data.targets',
images='data.images')
self.add_train_procedure('classification')


register_plugin(ImageClassification)
15 changes: 15 additions & 0 deletions cortex/built_ins/models/gan.py
Expand Up @@ -145,6 +145,8 @@ def run(self, measure: str='GAN'):
real=P_samples.view(-1).data),
name='discriminator output')
self.losses.discriminator = -difference


register_plugin(DiscriminatorRoutine)


Expand Down Expand Up @@ -209,7 +211,9 @@ def get_gradient(inp, output):

try:
epsilon = self.inputs.e.view(-1, 1, 1, 1)

except AttributeError:

raise ValueError('You must initiate a uniform random variable'
'`e` to use interpolation')
mid_in = ((1. - epsilon) * inp1 + epsilon * inp2)
Expand All @@ -226,6 +230,8 @@ def get_gradient(inp, output):
'Unsupported penalty {}'.format(penalty_type))

return penalty_amount * penalty


register_plugin(PenaltyRoutine)


Expand Down Expand Up @@ -263,6 +269,8 @@ def run(self, measure: str=None, loss_type: str='non-saturating'):
self.add_image(X_Q, name='generated')

return X_Q


register_plugin(GeneratorRoutine)


Expand All @@ -288,6 +296,8 @@ def build(self, discriminator_type: str='convnet', discriminator_args={}):
encoder_args=discriminator_args)
discriminator = Encoder(x_shape, dim_out=1, **discriminator_args)
self.add_networks(discriminator=discriminator)


register_plugin(DiscriminatorBuild)


Expand All @@ -298,6 +308,7 @@ class GeneratorBuild(BuildPlugin):
plugin_name = 'generator'
plugin_nets = ['generator']


def build(self, generator_noise_type='normal', dim_z=64, generator_type: str='convnet',
generator_args={}):
'''
Expand All @@ -318,6 +329,8 @@ def build(self, generator_noise_type='normal', dim_z=64, generator_type: str='co
generator = Decoder(x_shape, dim_in=dim_z, **generator_args)

self.add_networks(generator=generator)


register_plugin(GeneratorBuild)


Expand Down Expand Up @@ -345,4 +358,6 @@ def __init__(self):
self.add_train_procedure(
'generator', 'discriminator', 'gradient_penalty')
self.add_eval_procedure('generator', 'discriminator')


register_plugin(GAN)
2 changes: 1 addition & 1 deletion cortex/built_ins/models/utils.py
Expand Up @@ -52,7 +52,7 @@ def ms_ssim(X_a, X_b, window_size=11, size_average=True, C1=0.01**2, C2=0.03**2)
def gaussian(sigma=1.5):
gauss = torch.Tensor(
[math.exp(-(x - window_size // 2) **
2 / float(2 * sigma ** 2)) for x in range(window_size)])
2 / float(2 * sigma ** 2)) for x in range(window_size)])
return gauss / gauss.sum()

def create_window():
Expand Down
11 changes: 11 additions & 0 deletions cortex/built_ins/models/vae.py
Expand Up @@ -28,6 +28,7 @@ class VAENetwork(nn.Module):
latent: The latent state (Z).
'''

def __init__(self, encoder, decoder, dim_out=None, dim_z=None):
super(VAENetwork, self).__init__()
self.encoder = encoder
Expand Down Expand Up @@ -96,6 +97,8 @@ def run(self, vae_criterion=F.mse_loss, beta_kld=1.):
self.add_scatter(vae_net.mu.data, labels=Y.data, name='latent values')

return vae_net.mu


register_plugin(VAERoutine)


Expand All @@ -121,6 +124,8 @@ def build(self, encoder_type: str='convnet', dim_out: int=64, encoder_args={}):
encoder_args=encoder_args)
encoder = Encoder(x_shape, dim_out=dim_out, **encoder_args)
self.add_networks(image_encoder=encoder)


register_plugin(ImageEncoderBuild)


Expand All @@ -146,6 +151,8 @@ def build(self, decoder_type: str='convnet', dim_in: int=64, decoder_args={}):
decoder_args=decoder_args)
decoder = Decoder(x_shape, dim_in=dim_in, **decoder_args)
self.add_networks(image_decoder=decoder)


register_plugin(ImageDecoderBuild)


Expand Down Expand Up @@ -173,6 +180,8 @@ def build(self, dim_z=64, dim_encoder_out=1028):
vae = VAENetwork(encoder, decoder, dim_out=dim_encoder_out,
dim_z=dim_z)
self.add_networks(vae=vae)


register_plugin(VAEBuild)


Expand Down Expand Up @@ -215,4 +224,6 @@ def __init__(self, add_classification=True):
self.add_train_procedure('VAE', 'classification')
else:
self.add_train_procedure('VAE')


register_plugin(VAE)
2 changes: 2 additions & 0 deletions cortex/built_ins/networks/fully_connected.py
Expand Up @@ -13,8 +13,10 @@


class FullyConnectedNet(nn.Module):

def __init__(self, dim_in, dim_out=None, dim_h=64, nonlinearity='ReLU', n_levels=None,
**layer_args):

super(FullyConnectedNet, self).__init__()
models = nn.Sequential()

Expand Down
6 changes: 3 additions & 3 deletions cortex/built_ins/networks/resnets.py
Expand Up @@ -28,7 +28,7 @@ def __init__(self, dim_in, dim_out, f_size, nonlinearity=None,
models.add_module(name, Conv2d(dim_in, dim_out, f_size, 1, 1,
bias=False))
models.add_module(name + '_pool', nn.AvgPool2d(2,
count_include_pad=False))
count_include_pad=False))
if nonlinearity:
models.add_module('{}_{}'.format(
name, nonlinearity.__class__.__name__), nonlinearity)
Expand Down Expand Up @@ -80,7 +80,7 @@ def __init__(self, dim_in, dim_out, f_size, nonlinearity=None, prefix='', spectr

models.add_module(name + '_up', nn.Upsample(scale_factor=2))
models.add_module(name, Conv2d(dim_in, dim_out, f_size, 1, 1,
bias=False))
bias=False))

if nonlinearity:
models.add_module(
Expand Down Expand Up @@ -243,7 +243,7 @@ def __init__(self, shape, dim_out=None, dim_h=64,

name = 'conv_({}/{})_0'.format(dim_in, dim_out)
models.add_module(name, Conv2d(dim_in, dim_out, f_size, 1, 1,
bias=False))
bias=False))

dim_out = dim_h
for i in range(n_steps):
Expand Down
16 changes: 15 additions & 1 deletion tox.ini
Expand Up @@ -50,4 +50,18 @@ skip_install = false
deps =
pylint == 1.8.1
commands =
pylint cortex cortex/_lib cortex/built_ins
pylint cortex cortex/_lib cortex/built_ins

[testenv:autopep8]
deps =
autopep8
commands =
autopep8 -a -i -r cortex

[testenv:docs]
basepython = python
changedir = docs
deps = sphinx
commands =
sphinx-apidoc -f -o source ../cortex
make html

0 comments on commit 0521139

Please sign in to comment.