Ejemplo n.º 1
0
def generator(input_var, Y):
    yb = Y  #.dimshuffle(0, 1, 'x', 'x')
    G_1 = lasagne.layers.InputLayer(shape=(None, NLAT, 1, 1),
                                    input_var=input_var)

    G_2 = lasagne.layers.InputLayer(shape=(None, 10), input_var=Y)
    network = G_1
    network_yb = G_2

    network = conv_layer(network, 1, 4 * 4 * 128, 1, 'valid')
    #print(input_var.shape[0])
    network = ll.ReshapeLayer(network, (-1, 128, 4, 4))

    network = CondConvConcatLayer([network, network_yb])
    network = resnet_block(network, 3, 138)
    network = CondConvConcatLayer([network, network_yb])

    #network = resnet_block(network, 3, 128)
    network = BilinearUpsampling(network, ratio=2)
    network = batch_norm(conv_layer(network, 3, 138, 1, 'same'))
    network = CondConvConcatLayer([network, network_yb])

    network = resnet_block(network, 3, 148)
    network = CondConvConcatLayer([network, network_yb])

    network = BilinearUpsampling(network, ratio=2)
    network = batch_norm(conv_layer(network, 3, 32, 1, 'valid'))
    network = BilinearUpsampling(network, ratio=2)
    network = batch_norm(conv_layer(network, 3, 32, 1, 'same'))
    network = CondConvConcatLayer([network, network_yb])

    #network =  resnet_block(network, 3, 32)
    network = conv_layer(network, 1, 1, 1, 'valid', nonlinearity=sigmoid)
    #network =lasagne.layers.Conv2DLayer(network, num_filters=1, filter_size=1, stride=1, nonlinearity=sigmoid)
    return network, G_1, G_2
Ejemplo n.º 2
0
def generator(input_var):
    network = lasagne.layers.InputLayer(shape=(None, NLAT, 1, 1),
                                        input_var=input_var)

    network = conv_layer(network, 1, 4 * 4 * 128, 1, 'valid')
    #print(input_var.shape[0])
    network = ll.ReshapeLayer(network, (-1, 128, 4, 4))
    network = resnet_block(network, 3, 128)
    network = resnet_block(network, 3, 128)
    network = BilinearUpsampling(network, ratio=2)
    network = batch_norm(conv_layer(network, 3, 64, 1, 'same'))
    network = resnet_block(network, 3, 64)
    network = BilinearUpsampling(network, ratio=2)
    network = batch_norm(conv_layer(network, 3, 32, 1, 'valid'))
    network = BilinearUpsampling(network, ratio=2)

    network = resnet_block(network, 3, 32)
    network = conv_layer(network, 1, 1, 1, 'valid', nonlinearity=sigmoid)
    #network =lasagne.layers.Conv2DLayer(network, num_filters=1, filter_size=1, stride=1, nonlinearity=sigmoid)
    return network
Ejemplo n.º 3
0
def discriminator(input_var, Y):
    yb = Y.dimshuffle(0, 1, 'x', 'x')

    D_1 = lasagne.layers.InputLayer(shape=(None, 1, 28, 28),
                                    input_var=input_var)
    D_2 = lasagne.layers.InputLayer(shape=(None, 10), input_var=Y)
    network = D_1
    network_yb = D_2
    network = CondConvConcatLayer([network, network_yb])

    network = ll.DropoutLayer(network, p=0.4)

    network = conv_layer(network, 3, 32, 1, 'same', nonlinearity=lrelu)
    network = CondConvConcatLayer([network, network_yb])

    network = conv_layer(network, 3, 64, 2, 'same', nonlinearity=lrelu)
    network = CondConvConcatLayer([network, network_yb])

    network = conv_layer(network, 3, 64, 2, 'same', nonlinearity=lrelu)
    #network = batch_norm(conv_layer(network, 3, 128, 1, 'same', nonlinearity=lrelu))
    #network = ll.DropoutLayer(network, p=0.2)

    network = conv_layer(network, 3, 128, 2, 'same', nonlinearity=lrelu)
    network = CondConvConcatLayer([network, network_yb])

    network = batch_norm(
        conv_layer(network, 4, 128, 1, 'valid', nonlinearity=lrelu))
    network = CondConvConcatLayer([network, network_yb])

    #network= DropoutLayer(network, p=0.5)
    network = conv_layer(network, 1, 1, 1, 'valid', nonlinearity=None)

    return network, D_1, D_2
Ejemplo n.º 4
0
def discriminator(input_var):
    network = lasagne.layers.InputLayer(shape=(None, 1, 28, 28),
                                        input_var=input_var)

    network = ll.DropoutLayer(network, p=0.5)

    network = weight_norm(conv_layer(network,
                                     3,
                                     32,
                                     1,
                                     'same',
                                     nonlinearity=lrelu),
                          train_g=False)

    network = weight_norm(conv_layer(network,
                                     3,
                                     32,
                                     2,
                                     'same',
                                     nonlinearity=lrelu),
                          train_g=False)
    network = weight_norm(conv_layer(network,
                                     3,
                                     64,
                                     2,
                                     'same',
                                     nonlinearity=lrelu),
                          train_g=False)

    network = weight_norm(conv_layer(network,
                                     3,
                                     128,
                                     2,
                                     'same',
                                     nonlinearity=lrelu),
                          train_g=False)

    network = weight_norm(conv_layer(network,
                                     4,
                                     128,
                                     1,
                                     'valid',
                                     nonlinearity=lrelu),
                          train_g=False)

    network = weight_norm(conv_layer(network,
                                     1,
                                     1,
                                     1,
                                     'valid',
                                     nonlinearity=None),
                          train_g=True)

    return network