Mercurial > ift6266
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 |