Ejemplo n.º 1
0
def FCNN():
	num_classes = 2
	n_layers_enc = 32
	n_layers_ctx = 128
	n_input = 5
	prob_drop = 0.25
	layers = []
	# Encoder
	pool = nn2.SpatialMaxPooling(2,2,2,2)
	layers.append(nn2.SpatialConvolution(n_input, n_layers_enc, 3, 3, 1, 1, 1, 1))
	layers.append(nn.ELU())
	layers.append(nn2.SpatialConvolution(n_layers_enc, n_layers_enc, 3, 3, 1, 1, 1, 1))
	layers.append(nn.ELU())
	layers.append(pool)
	# Context Module
	layers.append(nn2.SpatialDilatedConvolution(n_layers_enc, n_layers_ctx, 3, 3, 1, 1, 1, 1, 1, 1))
	layers.append(nn.ELU())
	layers.append(nn2.SpatialDropout(prob_drop))
	layers.append(nn2.SpatialDilatedConvolution(n_layers_ctx, n_layers_ctx, 3, 3, 1, 1, 2, 2, 2, 2))
	layers.append(nn.ELU())
	layers.append(nn2.SpatialDropout(prob_drop))
	layers.append(nn2.SpatialDilatedConvolution(n_layers_ctx, n_layers_ctx, 3, 3, 1, 1, 4, 4, 4, 4))
	layers.append(nn.ELU())
	layers.append(nn2.SpatialDropout(prob_drop))
	layers.append(nn2.SpatialDilatedConvolution(n_layers_ctx, n_layers_ctx, 3, 3, 1, 1, 8, 8, 8, 8))
	layers.append(nn.ELU())
	layers.append(nn2.SpatialDropout(prob_drop))
	layers.append(nn2.SpatialDilatedConvolution(n_layers_ctx, n_layers_ctx, 3, 3, 1, 1, 16, 16, 16, 16))
	layers.append(nn.ELU())
	layers.append(nn2.SpatialDropout(prob_drop))
	layers.append(nn2.SpatialDilatedConvolution(n_layers_ctx, n_layers_ctx, 3, 3, 1, 1, 32, 32, 32, 32))
	layers.append(nn.ELU())
	layers.append(nn2.SpatialDropout(prob_drop))
	layers.append(nn2.SpatialDilatedConvolution(n_layers_ctx, n_layers_ctx, 3, 3, 1, 1, 64, 64, 64, 64))
	layers.append(nn.ELU())
	layers.append(nn2.SpatialDropout(prob_drop))
	layers.append(nn2.SpatialDilatedConvolution(n_layers_ctx, n_layers_enc, 1, 1))
	layers.append(nn.ELU())	# Nao havia no paper
	# Decoder
	layers.append(nn2.SpatialMaxUnpooling(pool))
	layers.append(nn2.SpatialConvolution(n_layers_enc, n_layers_enc, 3, 3, 1, 1, 1, 1))
	layers.append(nn.ELU())
	layers.append(nn2.SpatialConvolution(n_layers_enc, num_classes, 3, 3, 1, 1, 1, 1))
	layers.append(nn.ELU())
	layers.append(nn.SoftMax()) # Nao havia no paper
	return nn.Sequential(*layers)
Ejemplo n.º 2
0
def build_spatial_unpooling_net():
    pool = nn.SpatialMaxPooling(2, 2, 2, 2)
    unpool = nn.SpatialMaxUnpooling(pool)
    return nn.Sequential().add(pool).add(unpool)
Ejemplo n.º 3
0
               input_size=(3, 4, 5),
               reference_fn=lambda i, _: i.select(1, 2)),
 OldModuleTest(nn.SelectTable, (1, ),
               input_size=[(1, ), (2, ), (3, ), (4, )],
               reference_fn=lambda i, _: i[1]),
 OldModuleTest(nn.SpatialAveragePooling, (2, 2), input_size=(2, 3, 6, 6)),
 OldModuleTest(nn.SpatialAveragePooling, (2, 2, 2, 2),
               input_size=(2, 3, 6, 6),
               desc='stride'),
 OldModuleTest(nn.SpatialAveragePooling, (2, 2, 2, 2, 1, 1),
               input_size=(2, 3, 6, 6),
               desc='stride_pad'),
 OldModuleTest(
     nn.SpatialAdaptiveMaxPooling, (4, 4),
     input_size=(2, 3, 8, 8),
     reference_fn=lambda i, _: nn.SpatialMaxPooling(2, 2).forward(i)),
 OldModuleTest(nn.SpatialAdaptiveMaxPooling, (4, 4),
               input_size=(2, 3, 7, 11),
               desc='irregular'),
 OldModuleTest(nn.SpatialConvolution, (3, 4, 3, 3),
               input_size=(2, 3, 6, 6)),
 OldModuleTest(nn.SpatialConvolution, (3, 4, 3, 3, 2, 2),
               input_size=(2, 3, 6, 6),
               desc='strided'),
 OldModuleTest(nn.SpatialConvolution, (3, 4, 3, 3, 2, 2, 1, 1),
               input_size=(2, 3, 6, 6),
               desc='padding'),
 OldModuleTest(nn.SpatialConvolutionLocal, (3, 2, 4, 4, 2, 2),
               input_size=(1, 3, 4, 4)),
 OldModuleTest(nn.SpatialConvolutionLocal, (3, 2, 6, 6, 2, 2, 2, 2),
               input_size=(2, 3, 6, 6),
Ejemplo n.º 4
0
 def test_max_pooling(self):
     self._test_single_layer(nn.SpatialMaxPooling(3, 3, 1, 1, 1, 1))