MCPcopy Index your code
hub / github.com/lisa-lab/DeepLearningTutorials / build_model

Function build_model

code/cnn_1D_segm/fcn1D.py:39–109  ·  view source on GitHub ↗

Parameters: ----------- input_var : theano 3Dtensor shape(n_samples, n_in_channels, ray_length) filter_size : odd int (to fit with same padding) n_filters : int, number of filters for each convLayer n_classes : int, number of classes to segment depth : int, number of sta

(input_var,
	    n_classes = 6,
	    nb_in_channels = 2,
        filter_size=25,
        n_filters = 64,
        depth = 8,
        last_filter_size = 1,
        block = 'bn_relu_conv',
        out_nonlin = softmax)

Source from the content-addressed store, hash-verified

37
38# start-snippet-convolutions
39def build_model(input_var,
40 n_classes = 6,
41 nb_in_channels = 2,
42 filter_size=25,
43 n_filters = 64,
44 depth = 8,
45 last_filter_size = 1,
46 block = 'bn_relu_conv',
47 out_nonlin = softmax):
48 '''
49 Parameters:
50 -----------
51 input_var : theano 3Dtensor shape(n_samples, n_in_channels, ray_length)
52 filter_size : odd int (to fit with same padding)
53 n_filters : int, number of filters for each convLayer
54 n_classes : int, number of classes to segment
55 depth : int, number of stacked convolution before concatenation
56 last_filter_size : int, last convolution filter size to obtain n_classes feature maps
57 out_nonlin : default=softmax, non linearity function
58 '''
59
60
61 net = {}
62
63 net['input'] = InputLayer((None, nb_in_channels, 200), input_var)
64 incoming_layer = 'input'
65
66 #Convolution layers
67 for d in range(depth):
68 if block == 'bn_relu_conv':
69 incoming_layer = bn_relu_conv(net, incoming_layer, depth = d,
70 num_filters= n_filters, filter_size=filter_size)
71 # end-snippet-convolutions
72 elif block == 'conv_bn_relu':
73 incoming_layer = conv_bn_relu(net, incoming_layer, depth = d,
74 num_filters= n_filters, filter_size=filter_size)
75 # start-snippet-output
76 #Output layer
77 net['final_conv'] = ConvLayer(net[incoming_layer],
78 num_filters = n_classes,
79 filter_size = last_filter_size,
80 pad='same')
81 incoming_layer = 'final_conv'
82
83 #DimshuffleLayer and ReshapeLayer to fit the softmax implementation
84 #(it needs a 1D or 2D tensor, not a 3D tensor)
85 net['final_dimshuffle'] = DimshuffleLayer(net[incoming_layer], (0,2,1))
86 incoming_layer = 'final_dimshuffle'
87
88 layerSize = lasagne.layers.get_output(net[incoming_layer]).shape
89 net['final_reshape'] = ReshapeLayer(net[incoming_layer],
90 (T.prod(layerSize[0:2]),layerSize[2]))
91 # (200*batch_size,n_classes))
92 incoming_layer = 'final_reshape'
93
94
95 #This is the layer that computes the prediction
96 net['last_layer'] = NonlinearityLayer(net[incoming_layer],

Callers 1

trainFunction · 0.90

Calls 2

bn_relu_convFunction · 0.85
conv_bn_reluFunction · 0.85

Tested by

no test coverage detected