Exemple #1
0
def svhn_encoder(x, numHidden, labels, num_labels, mb_size, image_width):

    in_width = image_width
    layerLst = []

    c = [3, 64, 128, 256, 256]

    layerLst += [ConvPoolLayer(in_channels = c[0], out_channels = c[1], kernel_len = 5, batch_norm = False)]
    layerLst += [ConvPoolLayer(in_channels = c[1], out_channels = c[1], kernel_len = 5, batch_norm = False)]
    layerLst += [ConvPoolLayer(in_channels = c[1], out_channels = c[1], kernel_len = 5, stride=2, batch_norm = False)]

    layerLst += [ConvPoolLayer(in_channels = c[1], out_channels = c[2], kernel_len = 5, batch_norm = False)]
    layerLst += [ConvPoolLayer(in_channels = c[2], out_channels = c[2], kernel_len = 5, batch_norm = False)]
    layerLst += [ConvPoolLayer(in_channels = c[2], out_channels = c[2], kernel_len = 5, stride=2, batch_norm = False)]

    layerLst += [ConvPoolLayer(in_channels = c[2], out_channels = c[3], kernel_len = 5, batch_norm = False)]
    layerLst += [ConvPoolLayer(in_channels = c[3], out_channels = c[3], kernel_len = 5, batch_norm = False)]
    layerLst += [ConvPoolLayer(in_channels = c[3], out_channels = c[4], kernel_len = 5, stride=2, batch_norm = False)]

    layerLst += [HiddenLayer(num_in = 4 * 4 * c[4], num_out = numHidden, flatten_input = True, batch_norm = False)]

    layerLst += [HiddenLayer(num_in = numHidden, num_out = numHidden, batch_norm = True)]

    outputs = [normalize(x.transpose(0,3,1,2))]

    for i in range(0, len(layerLst)):
        outputs += [layerLst[i].output(outputs[-1])]

    h1 = HiddenLayer(num_in = numHidden + num_labels, num_out = numHidden, batch_norm = True)
    h2 = HiddenLayer(num_in = numHidden, num_out = numHidden, batch_norm = True)

    h1_out = h1.output(T.concatenate([outputs[-1], labels], axis = 1))
    h2_out = h2.output(h1_out)

    return {'layers' : layerLst + [h1,h2], 'extra_params' : [], 'output' : h2_out}
Exemple #2
0
def imagenet_encoder(x, numHidden, mb_size, image_width):
    vgg_out = vgg_network(x, mb_size, image_width)

    h1 = HiddenLayer(num_in = 4 * 4 * 512, num_out = numHidden, flatten_input = True, activation = 'relu', batch_norm = True)

    h2 = HiddenLayer(num_in = numHidden, num_out = numHidden, activation = 'relu', batch_norm = True)

    out1 = h1.output(vgg_out['output'])

    out2 = h2.output(out1)

    params = vgg_out['params']

    return {'layers' : [h1, h2], 'extra_params' : params, 'output' : out2}
Exemple #3
0
        raise Exception()

    labels_reshaped = T.zeros(shape = (config['mb_size'], config['num_labels']))
    labels_reshaped = T.set_subtensor(labels_reshaped[T.arange(config['mb_size']), labels], 1.0)

    encoder = encoder_class(x, numHidden, mb_size=config['mb_size'], image_width=config['image_width'])

    encoder_layers = encoder['layers']
    encoder_output = encoder['output']
    encoder_extra_params = encoder['extra_params']

    z_mean_layer = HiddenLayer(num_in=numHidden, num_out=numLatent, activation=None)

    z_var_layer = HiddenLayer(num_in=numHidden, num_out=numLatent, activation='softplus')

    z_mean = z_mean_layer.output(encoder_output)
    z_var = T.maximum(1.0e-6, z_var_layer.output(encoder_output))

    z_sampled = T.matrix()

    z_reconstruction = z_mean + z_sampled * T.sqrt(z_var)

    def join(a,b):
        return T.concatenate([a,b], axis = 1)

    if config["dataset"] == "imagenet":
        from Decoders.Imagenet import decoder
        decoder = decoder(z = join(z, labels_reshaped), z_sampled = join(z_sampled, labels_reshaped), numHidden = numHidden, numLatent = numLatent + config['num_labels'], mb_size = config['mb_size'], image_width = config['image_width'])
    elif config["dataset"] == "svhn" or config['dataset'] == 'cifar':
        from Decoders.Svhn import svhn_decoder
        decoder = svhn_decoder(z = join(z, labels_reshaped), z_sampled = join(z_sampled, labels_reshaped), numHidden = numHidden, numLatent = numLatent + config['num_labels'], mb_size = config['mb_size'], image_width = config['image_width'])
Exemple #4
0
    elif config['dataset'] == 'stl':
        from Encoders.Stl import encoder as encoder_class
    else:
        raise Exception()

    encoder = encoder_class(x, numHidden, mb_size=config['mb_size'], image_width=config['image_width'])

    encoder_layers = encoder['layers']
    encoder_output = encoder['output']
    encoder_extra_params = encoder['extra_params']

    z_mean_layer = HiddenLayer(num_in=numHidden, num_out=numLatent, activation=None)

    z_var_layer = HiddenLayer(num_in=numHidden, num_out=numLatent, activation='softplus')

    z_mean = z_mean_layer.output(encoder_output)
    z_var = T.maximum(z_var_layer.output(encoder_output), 1e-12)

    z_sampled = srng.normal(size=(config['mb_size'], numLatent))

    z = z_sampled * T.sqrt(z_var) + z_mean

    if config["dataset"] == "imagenet":
        from Decoders.Imagenet import imagenet_decoder
        decoder = imagenet_decoder(z=z, z_sampled=z_sampled, numHidden=numHidden, numLatent=numLatent, mb_size=config['mb_size'], image_width=config['image_width'])
    elif config["dataset"] == "svhn" or config['dataset'] == 'cifar':
        from Decoders.Svhn import svhn_decoder
        decoder = svhn_decoder(z=z, z_sampled=z_sampled, numHidden=numHidden, numLatent=numLatent, mb_size=config['mb_size'], image_width=config['image_width'])
    elif config['dataset'] == 'stl':
        from Decoders.Stl import decoder
        decoder = decoder(z_reconstruction=z, z_sampled=z_sampled, numHidden=numHidden, numLatent=numLatent, mb_size=config['mb_size'], image_width=config['image_width'])