Python lasagne.layers.NonlinearityLayer() Examples
The following are 30
code examples of lasagne.layers.NonlinearityLayer().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
lasagne.layers
, or try the search function
.
Example #1
Source File: layers.py From gogh-figure with GNU Affero General Public License v3.0 | 6 votes |
def instance_norm(layer, **kwargs): """ The equivalent of Lasagne's `batch_norm()` convenience method, but for instance normalization. Refer: http://lasagne.readthedocs.io/en/latest/modules/layers/normalization.html#lasagne.layers.batch_norm """ nonlinearity = getattr(layer, 'nonlinearity', None) if nonlinearity is not None: layer.nonlinearity = identity if hasattr(layer, 'b') and layer.b is not None: del layer.params[layer.b] layer.b = None bn_name = (kwargs.pop('name', None) or (getattr(layer, 'name', None) and layer.name + '_bn')) layer = InstanceNormLayer(layer, name=bn_name, **kwargs) if nonlinearity is not None: nonlin_name = bn_name and bn_name + '_nonlin' layer = NonlinearityLayer(layer, nonlinearity, name=nonlin_name) return layer # TODO: Add normalization
Example #2
Source File: batch_norms.py From u24_lymphocyte with BSD 3-Clause "New" or "Revised" License | 5 votes |
def batch_nmsp(layer, beta=init.Constant(-3.0), **kwargs): nonlinearity = getattr(layer, 'nonlinearity', None) if nonlinearity is not None: layer.nonlinearity = nonlinearities.identity if hasattr(layer, 'b') and layer.b is not None: del layer.params[layer.b] layer.b = None layer = BatchNormSparseLayer(layer, beta=beta, **kwargs) if nonlinearity is not None: from lasagne.layers import NonlinearityLayer layer = NonlinearityLayer(layer, nonlinearity) return layer
Example #3
Source File: batch_norms.py From u24_lymphocyte with BSD 3-Clause "New" or "Revised" License | 5 votes |
def batch_nmsp(layer, beta=init.Constant(-3.0), **kwargs): nonlinearity = getattr(layer, 'nonlinearity', None) if nonlinearity is not None: layer.nonlinearity = nonlinearities.identity if hasattr(layer, 'b') and layer.b is not None: del layer.params[layer.b] layer.b = None layer = BatchNormSparseLayer(layer, beta=beta, **kwargs) if nonlinearity is not None: from lasagne.layers import NonlinearityLayer layer = NonlinearityLayer(layer, nonlinearity) return layer
Example #4
Source File: VRN.py From Generative-and-Discriminative-Voxel-Modeling with MIT License | 5 votes |
def ResDropNoPre(incoming, IB, p): return NL(ESL([IfElseDropLayer(IB,survival_p=p),incoming]),elu)
Example #5
Source File: VRN.py From Generative-and-Discriminative-Voxel-Modeling with MIT License | 5 votes |
def ResLayer(incoming, IB): return NL(ESL([IB,incoming]),elu) # If-else Drop Layer, adopted from Christopher Beckham's recipe: # https://github.com/Lasagne/Recipes/pull/67
Example #6
Source File: ensemble_model4.py From Generative-and-Discriminative-Voxel-Modeling with MIT License | 5 votes |
def ResDropNoPre(incoming, IB, p): return NL(ESL([IfElseDropLayer(IB,survival_p=p),incoming]),elu)
Example #7
Source File: ensemble_model4.py From Generative-and-Discriminative-Voxel-Modeling with MIT License | 5 votes |
def get_output_for(self, input, deterministic=False, **kwargs): if deterministic: return self.p*input else: return theano.ifelse.ifelse( T.lt(self._srng.uniform( (1,), 0, 1)[0], self.p), input, T.zeros(input.shape) ) # def ResDrop(incoming, IB, p): # return NL(ESL([IfElseDropLayer(IB,survival_p=p),incoming]),elu)
Example #8
Source File: ensemble_model5.py From Generative-and-Discriminative-Voxel-Modeling with MIT License | 5 votes |
def ResDropNoPre(incoming, IB, p): return NL(ESL([IfElseDropLayer(IB,survival_p=p),incoming]),elu)
Example #9
Source File: ensemble_model5.py From Generative-and-Discriminative-Voxel-Modeling with MIT License | 5 votes |
def get_output_for(self, input, deterministic=False, **kwargs): if deterministic: return self.p*input else: return theano.ifelse.ifelse( T.lt(self._srng.uniform( (1,), 0, 1)[0], self.p), input, T.zeros(input.shape) ) # def ResDrop(incoming, IB, p): # return NL(ESL([IfElseDropLayer(IB,survival_p=p),incoming]),elu)
Example #10
Source File: ensemble_model5.py From Generative-and-Discriminative-Voxel-Modeling with MIT License | 5 votes |
def ResLayer(incoming, IB): return NL(ESL([IB,incoming]),elu)
Example #11
Source File: ensemble_model1.py From Generative-and-Discriminative-Voxel-Modeling with MIT License | 5 votes |
def ResDrop(incoming, IB, p): return NL(ESL([IfElseDropLayer(IB,survival_p=p),incoming]),elu)
Example #12
Source File: ensemble_model1.py From Generative-and-Discriminative-Voxel-Modeling with MIT License | 5 votes |
def ResLayer(incoming, IB): return NL(ESL([IB,incoming]),elu)
Example #13
Source File: ensemble_model6.py From Generative-and-Discriminative-Voxel-Modeling with MIT License | 5 votes |
def get_output_for(self, input, deterministic=False, **kwargs): if deterministic: return self.p*input else: return theano.ifelse.ifelse( T.lt(self._srng.uniform( (1,), 0, 1)[0], self.p), input, T.zeros(input.shape) ) # def ResDrop(incoming, IB, p): # return NL(ESL([IfElseDropLayer(IB,survival_p=p),incoming]),elu)
Example #14
Source File: ensemble_model6.py From Generative-and-Discriminative-Voxel-Modeling with MIT License | 5 votes |
def ResLayer(incoming, IB): return NL(ESL([IB,incoming]),elu)
Example #15
Source File: ensemble_model3.py From Generative-and-Discriminative-Voxel-Modeling with MIT License | 5 votes |
def ResDropNoPre(incoming, IB, p): return NL(ESL([IfElseDropLayer(IB,survival_p=p),incoming]),elu)
Example #16
Source File: ensemble_model3.py From Generative-and-Discriminative-Voxel-Modeling with MIT License | 5 votes |
def get_output_for(self, input, deterministic=False, **kwargs): if deterministic: return self.p*input else: return theano.ifelse.ifelse( T.lt(self._srng.uniform( (1,), 0, 1)[0], self.p), input, T.zeros(input.shape) ) # def ResDrop(incoming, IB, p): # return NL(ESL([IfElseDropLayer(IB,survival_p=p),incoming]),elu)
Example #17
Source File: ensemble_model3.py From Generative-and-Discriminative-Voxel-Modeling with MIT License | 5 votes |
def ResLayer(incoming, IB): return NL(ESL([IB,incoming]),elu)
Example #18
Source File: res_net_blocks.py From dcase_task2 with MIT License | 5 votes |
def ResNet_FullPreActivation(input_shape=(None, 3, PIXELS, PIXELS), input_var=None, n_classes=10, n=18): """ Adapted from https://github.com/Lasagne/Recipes/tree/master/papers/deep_residual_learning. Tweaked to be consistent with 'Identity Mappings in Deep Residual Networks', Kaiming He et al. 2016 (https://arxiv.org/abs/1603.05027) Formula to figure out depth: 6n + 2 """ # Building the network l_in = InputLayer(shape=input_shape, input_var=input_var) # first layer, output is 16 x 32 x 32 l = batch_norm(ConvLayer(l_in, num_filters=16, filter_size=(3, 3), stride=(1, 1), nonlinearity=rectify, pad='same', W=he_norm)) # first stack of residual blocks, output is 16 x 32 x 32 l = residual_block(l, first=True) for _ in range(1, n): l = residual_block(l) # second stack of residual blocks, output is 32 x 16 x 16 l = residual_block(l, increase_dim=True) for _ in range(1, n): l = residual_block(l) # third stack of residual blocks, output is 64 x 8 x 8 l = residual_block(l, increase_dim=True) for _ in range(1, n): l = residual_block(l) bn_post_conv = BatchNormLayer(l) bn_post_relu = NonlinearityLayer(bn_post_conv, rectify) # average pooling avg_pool = GlobalPoolLayer(bn_post_relu) # fully connected layer network = DenseLayer(avg_pool, num_units=n_classes, W=HeNormal(), nonlinearity=softmax) return network
Example #19
Source File: batch_norms.py From u24_lymphocyte with BSD 3-Clause "New" or "Revised" License | 5 votes |
def batch_nmsp(layer, beta=init.Constant(-3.0), **kwargs): nonlinearity = getattr(layer, 'nonlinearity', None) if nonlinearity is not None: layer.nonlinearity = nonlinearities.identity if hasattr(layer, 'b') and layer.b is not None: del layer.params[layer.b] layer.b = None layer = BatchNormSparseLayer(layer, beta=beta, **kwargs) if nonlinearity is not None: from lasagne.layers import NonlinearityLayer layer = NonlinearityLayer(layer, nonlinearity) return layer
Example #20
Source File: batch_norms.py From u24_lymphocyte with BSD 3-Clause "New" or "Revised" License | 5 votes |
def batch_nmsp(layer, beta=init.Constant(-3.0), **kwargs): nonlinearity = getattr(layer, 'nonlinearity', None) if nonlinearity is not None: layer.nonlinearity = nonlinearities.identity if hasattr(layer, 'b') and layer.b is not None: del layer.params[layer.b] layer.b = None layer = BatchNormSparseLayer(layer, beta=beta, **kwargs) if nonlinearity is not None: from lasagne.layers import NonlinearityLayer layer = NonlinearityLayer(layer, nonlinearity) return layer
Example #21
Source File: res_net_blocks.py From dcase_task2 with MIT License | 5 votes |
def residual_block(l, increase_dim=False, projection=True, first=False): """ Create a residual learning building block with two stacked 3x3 convlayers as in paper 'Identity Mappings in Deep Residual Networks', Kaiming He et al. 2016 (https://arxiv.org/abs/1603.05027) """ input_num_filters = l.output_shape[1] if increase_dim: first_stride = (2, 2) out_num_filters = input_num_filters * 2 else: first_stride = (1, 1) out_num_filters = input_num_filters if first: # hacky solution to keep layers correct bn_pre_relu = l else: # contains the BN -> ReLU portion, steps 1 to 2 bn_pre_conv = BatchNormLayer(l) bn_pre_relu = NonlinearityLayer(bn_pre_conv, rectify) # contains the weight -> BN -> ReLU portion, steps 3 to 5 conv_1 = batch_norm(ConvLayer(bn_pre_relu, num_filters=out_num_filters, filter_size=(3, 3), stride=first_stride, nonlinearity=rectify, pad='same', W=he_norm)) # contains the last weight portion, step 6 conv_2 = ConvLayer(conv_1, num_filters=out_num_filters, filter_size=(3, 3), stride=(1, 1), nonlinearity=None, pad='same', W=he_norm) # add shortcut connections if increase_dim: # projection shortcut, as option B in paper projection = ConvLayer(l, num_filters=out_num_filters, filter_size=(1, 1), stride=(2, 2), nonlinearity=None, pad='same', b=None) block = ElemwiseSumLayer([conv_2, projection]) else: block = ElemwiseSumLayer([conv_2, l]) return block
Example #22
Source File: benchmark_lasagne.py From vgg-benchmarks with MIT License | 5 votes |
def build_model(input_var): net = {} net['input'] = InputLayer((None, 3, 224, 224), input_var=input_var) net['conv1_1'] = ConvLayer(net['input'], 64, 3, pad=1, flip_filters=False) net['conv1_2'] = ConvLayer(net['conv1_1'], 64, 3, pad=1, flip_filters=False) net['pool1'] = PoolLayer(net['conv1_2'], 2) net['conv2_1'] = ConvLayer(net['pool1'], 128, 3, pad=1, flip_filters=False) net['conv2_2'] = ConvLayer(net['conv2_1'], 128, 3, pad=1, flip_filters=False) net['pool2'] = PoolLayer(net['conv2_2'], 2) net['conv3_1'] = ConvLayer(net['pool2'], 256, 3, pad=1, flip_filters=False) net['conv3_2'] = ConvLayer(net['conv3_1'], 256, 3, pad=1, flip_filters=False) net['conv3_3'] = ConvLayer(net['conv3_2'], 256, 3, pad=1, flip_filters=False) net['pool3'] = PoolLayer(net['conv3_3'], 2) net['conv4_1'] = ConvLayer(net['pool3'], 512, 3, pad=1, flip_filters=False) net['conv4_2'] = ConvLayer(net['conv4_1'], 512, 3, pad=1, flip_filters=False) net['conv4_3'] = ConvLayer(net['conv4_2'], 512, 3, pad=1, flip_filters=False) net['pool4'] = PoolLayer(net['conv4_3'], 2) net['conv5_1'] = ConvLayer(net['pool4'], 512, 3, pad=1, flip_filters=False) net['conv5_2'] = ConvLayer(net['conv5_1'], 512, 3, pad=1, flip_filters=False) net['conv5_3'] = ConvLayer(net['conv5_2'], 512, 3, pad=1, flip_filters=False) net['pool5'] = PoolLayer(net['conv5_3'], 2) net['fc6'] = DenseLayer(net['pool5'], num_units=4096) net['fc6_dropout'] = DropoutLayer(net['fc6'], p=0.5) net['fc7'] = DenseLayer(net['fc6_dropout'], num_units=4096) net['fc7_dropout'] = DropoutLayer(net['fc7'], p=0.5) net['fc8'] = DenseLayer(net['fc7_dropout'], num_units=1000, nonlinearity=None) net['prob'] = NonlinearityLayer(net['fc8'], softmax) return net
Example #23
Source File: layers.py From Neural-Photo-Editor with MIT License | 5 votes |
def MDBLOCK(incoming,num_filters,scales,name,nonlinearity): return NL(BN(ESL([incoming, MDCL(NL(BN(MDCL(NL(BN(incoming,name=name+'bnorm0'),nonlinearity),num_filters,scales,name),name=name+'bnorm1'),nonlinearity), num_filters, scales, name+'2')]),name=name+'bnorm2'),nonlinearity) # Gaussian Sample Layer for VAE from Tencia Lee
Example #24
Source File: layers.py From Neural-Photo-Editor with MIT License | 5 votes |
def InceptionUpscaleLayer(incoming,param_dict,block_name): branch = [0]*len(param_dict) # Loop across branches for i,dict in enumerate(param_dict): for j,style in enumerate(dict['style']): # Loop up branch branch[i] = TC2D( incoming = branch[i] if j else incoming, num_filters = dict['num_filters'][j], filter_size = dict['filter_size'][j], crop = dict['pad'][j] if 'pad' in dict else None, stride = dict['stride'][j], W = initmethod('relu'), nonlinearity = dict['nonlinearity'][j], name = block_name+'_'+str(i)+'_'+str(j)) if style=='convolutional'\ else NL( incoming = lasagne.layers.dnn.Pool2DDNNLayer( incoming = lasagne.layers.Upscale2DLayer( incoming=incoming if j == 0 else branch[i], scale_factor = dict['stride'][j]), pool_size = dict['filter_size'][j], stride = [1,1], mode = dict['mode'][j], pad = dict['pad'][j], name = block_name+'_'+str(i)+'_'+str(j)), nonlinearity = dict['nonlinearity'][j]) # Apply Batchnorm branch[i] = BN(branch[i],name = block_name+'_bnorm_'+str(i)+'_'+str(j)) if dict['bnorm'][j] else branch[i] # Concatenate Sublayers return CL(incomings=branch,name=block_name) # Convenience function to efficiently generate param dictionaries for use with InceptioNlayer
Example #25
Source File: layers.py From Neural-Photo-Editor with MIT License | 5 votes |
def ResLayer(incoming, IB,nonlinearity): return NL(ESL([IB,incoming]),nonlinearity) # Inverse autoregressive flow layer
Example #26
Source File: batch_norms.py From u24_lymphocyte with BSD 3-Clause "New" or "Revised" License | 5 votes |
def batch_nmsp(layer, beta=init.Constant(-3.0), **kwargs): nonlinearity = getattr(layer, 'nonlinearity', None) if nonlinearity is not None: layer.nonlinearity = nonlinearities.identity if hasattr(layer, 'b') and layer.b is not None: del layer.params[layer.b] layer.b = None layer = BatchNormSparseLayer(layer, beta=beta, **kwargs) if nonlinearity is not None: from lasagne.layers import NonlinearityLayer layer = NonlinearityLayer(layer, nonlinearity) return layer
Example #27
Source File: batch_norms.py From u24_lymphocyte with BSD 3-Clause "New" or "Revised" License | 5 votes |
def batch_nmsp(layer, beta=init.Constant(-3.0), **kwargs): nonlinearity = getattr(layer, 'nonlinearity', None) if nonlinearity is not None: layer.nonlinearity = nonlinearities.identity if hasattr(layer, 'b') and layer.b is not None: del layer.params[layer.b] layer.b = None layer = BatchNormSparseLayer(layer, beta=beta, **kwargs) if nonlinearity is not None: from lasagne.layers import NonlinearityLayer layer = NonlinearityLayer(layer, nonlinearity) return layer
Example #28
Source File: vgg16_full.py From u24_lymphocyte with BSD 3-Clause "New" or "Revised" License | 4 votes |
def build_model(): net = {} input_var = theano.tensor.tensor4('input_var'); net['input'] = InputLayer((None, 3, 224, 224), input_var=input_var) net['conv1_1'] = ConvLayer( net['input'], 64, 3, pad=1, flip_filters=False) net['conv1_2'] = ConvLayer( net['conv1_1'], 64, 3, pad=1, flip_filters=False) net['pool1'] = PoolLayer(net['conv1_2'], 2) net['conv2_1'] = ConvLayer( net['pool1'], 128, 3, pad=1, flip_filters=False) net['conv2_2'] = ConvLayer( net['conv2_1'], 128, 3, pad=1, flip_filters=False) net['pool2'] = PoolLayer(net['conv2_2'], 2) net['conv3_1'] = ConvLayer( net['pool2'], 256, 3, pad=1, flip_filters=False) net['conv3_2'] = ConvLayer( net['conv3_1'], 256, 3, pad=1, flip_filters=False) net['conv3_3'] = ConvLayer( net['conv3_2'], 256, 3, pad=1, flip_filters=False) net['pool3'] = PoolLayer(net['conv3_3'], 2) net['conv4_1'] = ConvLayer( net['pool3'], 512, 3, pad=1, flip_filters=False) net['conv4_2'] = ConvLayer( net['conv4_1'], 512, 3, pad=1, flip_filters=False) net['conv4_3'] = ConvLayer( net['conv4_2'], 512, 3, pad=1, flip_filters=False) net['pool4'] = PoolLayer(net['conv4_3'], 2) net['conv5_1'] = ConvLayer( net['pool4'], 512, 3, pad=1, flip_filters=False) net['conv5_2'] = ConvLayer( net['conv5_1'], 512, 3, pad=1, flip_filters=False) net['conv5_3'] = ConvLayer( net['conv5_2'], 512, 3, pad=1, flip_filters=False) net['pool5'] = PoolLayer(net['conv5_3'], 2) net['fc6'] = DenseLayer(net['pool5'], num_units=4096) net['fc6_dropout'] = DropoutLayer(net['fc6'], p=0.5) net['fc7'] = DenseLayer(net['fc6_dropout'], num_units=4096) net['fc7_dropout'] = DropoutLayer(net['fc7'], p=0.5) net['fc8'] = DenseLayer( net['fc7_dropout'], num_units=1000, nonlinearity=None) net['prob'] = NonlinearityLayer(net['fc8'], softmax) output_layer = net['prob']; return net, output_layer, input_var;
Example #29
Source File: batch_norms.py From u24_lymphocyte with BSD 3-Clause "New" or "Revised" License | 4 votes |
def batch_norm(layer, **kwargs): """ Apply batch normalization to an existing layer. This is a convenience function modifying an existing layer to include batch normalization: It will steal the layer's nonlinearity if there is one (effectively introducing the normalization right before the nonlinearity), remove the layer's bias if there is one (because it would be redundant), and add a :class:`BatchNormLayer` and :class:`NonlinearityLayer` on top. Parameters ---------- layer : A :class:`Layer` instance The layer to apply the normalization to; note that it will be irreversibly modified as specified above **kwargs Any additional keyword arguments are passed on to the :class:`BatchNormLayer` constructor. Returns ------- BatchNormLayer or NonlinearityLayer instance A batch normalization layer stacked on the given modified `layer`, or a nonlinearity layer stacked on top of both if `layer` was nonlinear. Examples -------- Just wrap any layer into a :func:`batch_norm` call on creating it: >>> from lasagne.layers import InputLayer, DenseLayer, batch_norm >>> from lasagne.nonlinearities import tanh >>> l1 = InputLayer((64, 768)) >>> l2 = batch_norm(DenseLayer(l1, num_units=500, nonlinearity=tanh)) This introduces batch normalization right before its nonlinearity: >>> from lasagne.layers import get_all_layers >>> [l.__class__.__name__ for l in get_all_layers(l2)] ['InputLayer', 'DenseLayer', 'BatchNormLayer', 'NonlinearityLayer'] """ nonlinearity = getattr(layer, 'nonlinearity', None) if nonlinearity is not None: layer.nonlinearity = nonlinearities.identity if hasattr(layer, 'b') and layer.b is not None: del layer.params[layer.b] layer.b = None layer = BatchNormLayer(layer, **kwargs) if nonlinearity is not None: from lasagne.layers import NonlinearityLayer layer = NonlinearityLayer(layer, nonlinearity) return layer
Example #30
Source File: batch_norms.py From u24_lymphocyte with BSD 3-Clause "New" or "Revised" License | 4 votes |
def batch_norm(layer, **kwargs): """ Apply batch normalization to an existing layer. This is a convenience function modifying an existing layer to include batch normalization: It will steal the layer's nonlinearity if there is one (effectively introducing the normalization right before the nonlinearity), remove the layer's bias if there is one (because it would be redundant), and add a :class:`BatchNormLayer` and :class:`NonlinearityLayer` on top. Parameters ---------- layer : A :class:`Layer` instance The layer to apply the normalization to; note that it will be irreversibly modified as specified above **kwargs Any additional keyword arguments are passed on to the :class:`BatchNormLayer` constructor. Returns ------- BatchNormLayer or NonlinearityLayer instance A batch normalization layer stacked on the given modified `layer`, or a nonlinearity layer stacked on top of both if `layer` was nonlinear. Examples -------- Just wrap any layer into a :func:`batch_norm` call on creating it: >>> from lasagne.layers import InputLayer, DenseLayer, batch_norm >>> from lasagne.nonlinearities import tanh >>> l1 = InputLayer((64, 768)) >>> l2 = batch_norm(DenseLayer(l1, num_units=500, nonlinearity=tanh)) This introduces batch normalization right before its nonlinearity: >>> from lasagne.layers import get_all_layers >>> [l.__class__.__name__ for l in get_all_layers(l2)] ['InputLayer', 'DenseLayer', 'BatchNormLayer', 'NonlinearityLayer'] """ nonlinearity = getattr(layer, 'nonlinearity', None) if nonlinearity is not None: layer.nonlinearity = nonlinearities.identity if hasattr(layer, 'b') and layer.b is not None: del layer.params[layer.b] layer.b = None layer = BatchNormLayer(layer, **kwargs) if nonlinearity is not None: from lasagne.layers import NonlinearityLayer layer = NonlinearityLayer(layer, nonlinearity) return layer