comparison deep/convolutional_dae/scdae.py @ 334:6143b23e2610

Name the important layers to be able to change them easily later.
author Arnaud Bergeron <abergeron@gmail.com>
date Wed, 14 Apr 2010 16:06:43 -0400
parents 2937f2a421aa
children 5ddb1878dfbc
comparison
equal deleted inserted replaced
333:69109e41983e 334:6143b23e2610
29 old_nfilt = 1 29 old_nfilt = 1
30 for fsize, nfilt, subs, corr in izip(filter_sizes, num_filts, 30 for fsize, nfilt, subs, corr in izip(filter_sizes, num_filts,
31 subsamplings, corruptions): 31 subsamplings, corruptions):
32 layers.append(cdae(fsize, nfilt, old_nfilt, subs, corr, dtype)) 32 layers.append(cdae(fsize, nfilt, old_nfilt, subs, corr, dtype))
33 old_nfilt = nfilt 33 old_nfilt = nfilt
34 return LayerStack(layers) 34 return LayerStack(layers, name='scdae')
35 35
36 def mlp(layer_sizes, dtype): 36 def mlp(layer_sizes, dtype):
37 layers = [] 37 layers = []
38 old_size = layer_sizes[0] 38 old_size = layer_sizes[0]
39 for size in layer_sizes[1:]: 39 for size in layer_sizes[1:]:
40 layers.append(SimpleLayer(old_size, size, activation=nlins.tanh, 40 layers.append(SimpleLayer(old_size, size, activation=nlins.tanh,
41 dtype=dtype)) 41 dtype=dtype))
42 old_size = size 42 old_size = size
43 return LayerStack(layers) 43 return LayerStack(layers, name='mlp')
44 44
45 def scdae_net(in_size, filter_sizes, num_filts, subsamplings, 45 def scdae_net(in_size, filter_sizes, num_filts, subsamplings,
46 corruptions, layer_sizes, out_size, dtype): 46 corruptions, layer_sizes, out_size, dtype):
47 rl1 = ReshapeLayer((None,)+in_size) 47 rl1 = ReshapeLayer((None,)+in_size)
48 ls = scdae(filter_sizes, num_filts, subsamplings, 48 ls = scdae(filter_sizes, num_filts, subsamplings,
51 ls.build(x, input_shape=(1,)+in_size) 51 ls.build(x, input_shape=(1,)+in_size)
52 outs = numpy.prod(ls.output_shape) 52 outs = numpy.prod(ls.output_shape)
53 rl2 = ReshapeLayer((None, outs)) 53 rl2 = ReshapeLayer((None, outs))
54 layer_sizes = [outs]+layer_sizes 54 layer_sizes = [outs]+layer_sizes
55 ls2 = mlp(layer_sizes, dtype) 55 ls2 = mlp(layer_sizes, dtype)
56 lrl = SimpleLayer(layer_sizes[-1], out_size, activation=nlins.softmax) 56 lrl = SimpleLayer(layer_sizes[-1], out_size, activation=nlins.softmax,
57 name='output')
57 return NNet([rl1, ls, rl2, ls2, lrl], error=errors.nll) 58 return NNet([rl1, ls, rl2, ls2, lrl], error=errors.nll)
58 59
59 def build_funcs(batch_size, img_size, filter_sizes, num_filters, subs, 60 def build_funcs(batch_size, img_size, filter_sizes, num_filters, subs,
60 noise, mlp_sizes, out_size, dtype, pretrain_lr, train_lr): 61 noise, mlp_sizes, out_size, dtype, pretrain_lr, train_lr):
61 62