Mercurial > ift6266
diff deep/convolutional_dae/scdae.py @ 380:0473b799d449
merge
author | Yoshua Bengio <bengioy@iro.umontreal.ca> |
---|---|
date | Mon, 26 Apr 2010 14:56:34 -0400 |
parents | 5ddb1878dfbc |
children |
line wrap: on
line diff
--- a/deep/convolutional_dae/scdae.py Mon Apr 26 14:56:06 2010 -0400 +++ b/deep/convolutional_dae/scdae.py Mon Apr 26 14:56:34 2010 -0400 @@ -13,7 +13,9 @@ LayerStack.__init__(self, [ConvAutoencoder(filter_size=filter_size, num_filt=num_filt, num_in=num_in, - noisyness=corruption, + noise=corruption, + err=errors.cross_entropy, + nlin=nlins.sigmoid, dtype=dtype), MaxPoolLayer(subsampling)]) @@ -29,7 +31,7 @@ subsamplings, corruptions): layers.append(cdae(fsize, nfilt, old_nfilt, subs, corr, dtype)) old_nfilt = nfilt - return LayerStack(layers) + return LayerStack(layers, name='scdae') def mlp(layer_sizes, dtype): layers = [] @@ -38,7 +40,7 @@ layers.append(SimpleLayer(old_size, size, activation=nlins.tanh, dtype=dtype)) old_size = size - return LayerStack(layers) + return LayerStack(layers, name='mlp') def scdae_net(in_size, filter_sizes, num_filts, subsamplings, corruptions, layer_sizes, out_size, dtype): @@ -51,7 +53,8 @@ rl2 = ReshapeLayer((None, outs)) layer_sizes = [outs]+layer_sizes ls2 = mlp(layer_sizes, dtype) - lrl = SimpleLayer(layer_sizes[-1], out_size, activation=nlins.softmax) + lrl = SimpleLayer(layer_sizes[-1], out_size, activation=nlins.softmax, + name='output') return NNet([rl1, ls, rl2, ls2, lrl], error=errors.nll) def build_funcs(batch_size, img_size, filter_sizes, num_filters, subs, @@ -155,13 +158,20 @@ series = {} h5f = tables.openFile('series.h5', 'w') + class PrintWrap(object): + def __init__(self, series): + self.series = series + + def append(self, idx, value): + print idx, value + self.series.append(idx, value) series['recons_error'] = AccumulatorSeriesWrapper( - base_series=ErrorSeries(error_name='reconstruction_error', - table_name='reconstruction_error', - hdf5_file=h5f, - index_names=('layer', 'epoch'), - title="Reconstruction error (mse)"), + base_series=PrintWrap(ErrorSeries(error_name='reconstruction_error', + table_name='reconstruction_error', + hdf5_file=h5f, + index_names=('layer', 'epoch'), + title="Reconstruction error (mse)")), reduce_every=100) series['train_error'] = AccumulatorSeriesWrapper( @@ -201,9 +211,9 @@ pretrain_funcs, trainf, evalf, net = build_funcs( img_size = (32, 32), batch_size=batch_size, filter_sizes=[(5,5), (3,3)], - num_filters=[4, 4], subs=[(2,2), (2,2)], noise=[0.2, 0.2], + num_filters=[20, 4], subs=[(2,2), (2,2)], noise=[0.2, 0.2], mlp_sizes=[500], out_size=10, dtype=numpy.float32, - pretrain_lr=0.01, train_lr=0.1) + pretrain_lr=0.001, train_lr=0.1) t_it = repeat_itf(dset.train, batch_size) pretrain_fs, train, valid, test = massage_funcs(