In [1]:
from pylearn2.config import yaml_parse

In [1]:
!ls /Users/dikien/Downloads/pylearn2/pylearn2/scripts/tutorials/convolutional_network/
%cd /Users/dikien/Downloads/pylearn2/pylearn2/scripts/tutorials/convolutional_network/


README                         convolutional_network.ipynb    tests
conv.yaml                      convolutional_network_best.pkl
/Users/dikien/Downloads/pylearn2/pylearn2/scripts/tutorials/convolutional_network

In [ ]:
train = open('conv.yaml', 'r').read()
train_params = {'train_stop': 50000,
                    'valid_stop': 60000,
                    'test_stop': 10000,
                    'batch_size': 100,
                    'output_channels_h2': 64, 
                    'output_channels_h3': 64,  
                    'max_epochs': 1, # 500
                    'save_path': '.'}
train = train % (train_params)
print train

train = yaml_parse.load(train)
train.main_loop()


!obj:pylearn2.train.Train {
    dataset: &train !obj:pylearn2.datasets.mnist.MNIST {
        which_set: 'train',
        start: 0,
        stop: 50000
    },
    model: !obj:pylearn2.models.mlp.MLP {
        batch_size: 100,
        input_space: !obj:pylearn2.space.Conv2DSpace {
            shape: [28, 28],
            num_channels: 1
        },
        layers: [ !obj:pylearn2.models.mlp.ConvRectifiedLinear {
                     layer_name: 'h2',
                     output_channels: 64,
                     irange: .05,
                     kernel_shape: [5, 5],
                     pool_shape: [4, 4],
                     pool_stride: [2, 2],
                     max_kernel_norm: 1.9365
                 }, !obj:pylearn2.models.mlp.ConvRectifiedLinear {
                     layer_name: 'h3',
                     output_channels: 64,
                     irange: .05,
                     kernel_shape: [5, 5],
                     pool_shape: [4, 4],
                     pool_stride: [2, 2],
                     max_kernel_norm: 1.9365
                 }, !obj:pylearn2.models.mlp.Softmax {
                     max_col_norm: 1.9365,
                     layer_name: 'y',
                     n_classes: 10,
                     istdev: .05
                 }
                ],
    },
    algorithm: !obj:pylearn2.training_algorithms.sgd.SGD {
        batch_size: 100,
        learning_rate: .01,
        learning_rule: !obj:pylearn2.training_algorithms.learning_rule.Momentum {
            init_momentum: .5
        },
        monitoring_dataset:
            {
                'valid' : !obj:pylearn2.datasets.mnist.MNIST {
                              which_set: 'train',
                              start: 50000,
                              stop:  60000
                          },
                'test'  : !obj:pylearn2.datasets.mnist.MNIST {
                              which_set: 'test',
                              stop: 10000
                          }
            },
        cost: !obj:pylearn2.costs.cost.SumOfCosts { costs: [
            !obj:pylearn2.costs.cost.MethodCost {
                method: 'cost_from_X'
            }, !obj:pylearn2.costs.mlp.WeightDecay {
                coeffs: [ .00005, .00005, .00005 ]
            }
            ]
        },
        termination_criterion: !obj:pylearn2.termination_criteria.And {
            criteria: [
                !obj:pylearn2.termination_criteria.MonitorBased {
                    channel_name: "valid_y_misclass",
                    prop_decrease: 0.50,
                    N: 10
                },
                !obj:pylearn2.termination_criteria.EpochCounter {
                    max_epochs: 1
                },
            ]
        },
    },
    extensions:
        [ !obj:pylearn2.train_extensions.best_params.MonitorBasedSaveBest {
             channel_name: 'valid_y_misclass',
             save_path: "./convolutional_network_best.pkl"
        }, !obj:pylearn2.training_algorithms.learning_rule.MomentumAdjustor {
            start: 1,
            saturate: 10,
            final_momentum: .99
        }
    ]
}



Input shape: (28, 28)
Detector space: (24, 24)
Output space: (11, 11)
Input shape: (11, 11)
Detector space: (7, 7)
Output space: (3, 3)
Parameter and initial learning rate summary:
/Users/dikien/anaconda/lib/python2.7/site-packages/pylearn2/costs/mlp/__init__.py:105: UserWarning: Coefficients should be given as a dictionary with layer names as key. The support of coefficients as list would be deprecated from 03/06/2015
  warnings.warn("Coefficients should be given as a dictionary "
	h2_W: 0.01
	h2_b: 0.01
	h3_W: 0.01
	h3_b: 0.01
	softmax_b: 0.01
	softmax_W: 0.01
Compiling sgd_update...
Compiling sgd_update done. Time elapsed: 46.476559 seconds
compiling begin_record_entry...
compiling begin_record_entry done. Time elapsed: 0.287981 seconds
Monitored channels: 
	learning_rate
	momentum
	test_h2_kernel_norms_max
	test_h2_kernel_norms_mean
	test_h2_kernel_norms_min
	test_h2_max_x_max_u
	test_h2_max_x_mean_u
	test_h2_max_x_min_u
	test_h2_mean_x_max_u
	test_h2_mean_x_mean_u
	test_h2_mean_x_min_u
	test_h2_min_x_max_u
	test_h2_min_x_mean_u
	test_h2_min_x_min_u
	test_h2_range_x_max_u
	test_h2_range_x_mean_u
	test_h2_range_x_min_u
	test_h3_kernel_norms_max
	test_h3_kernel_norms_mean
	test_h3_kernel_norms_min
	test_h3_max_x_max_u
	test_h3_max_x_mean_u
	test_h3_max_x_min_u
	test_h3_mean_x_max_u
	test_h3_mean_x_mean_u
	test_h3_mean_x_min_u
	test_h3_min_x_max_u
	test_h3_min_x_mean_u
	test_h3_min_x_min_u
	test_h3_range_x_max_u
	test_h3_range_x_mean_u
	test_h3_range_x_min_u
	test_objective
	test_term_0
	test_term_1_weight_decay
	test_y_col_norms_max
	test_y_col_norms_mean
	test_y_col_norms_min
	test_y_max_max_class
	test_y_mean_max_class
	test_y_min_max_class
	test_y_misclass
	test_y_nll
	test_y_row_norms_max
	test_y_row_norms_mean
	test_y_row_norms_min
	total_seconds_last_epoch
	training_seconds_this_epoch
	valid_h2_kernel_norms_max
	valid_h2_kernel_norms_mean
	valid_h2_kernel_norms_min
	valid_h2_max_x_max_u
	valid_h2_max_x_mean_u
	valid_h2_max_x_min_u
	valid_h2_mean_x_max_u
	valid_h2_mean_x_mean_u
	valid_h2_mean_x_min_u
	valid_h2_min_x_max_u
	valid_h2_min_x_mean_u
	valid_h2_min_x_min_u
	valid_h2_range_x_max_u
	valid_h2_range_x_mean_u
	valid_h2_range_x_min_u
	valid_h3_kernel_norms_max
	valid_h3_kernel_norms_mean
	valid_h3_kernel_norms_min
	valid_h3_max_x_max_u
	valid_h3_max_x_mean_u
	valid_h3_max_x_min_u
	valid_h3_mean_x_max_u
	valid_h3_mean_x_mean_u
	valid_h3_mean_x_min_u
	valid_h3_min_x_max_u
	valid_h3_min_x_mean_u
	valid_h3_min_x_min_u
	valid_h3_range_x_max_u
	valid_h3_range_x_mean_u
	valid_h3_range_x_min_u
	valid_objective
	valid_term_0
	valid_term_1_weight_decay
	valid_y_col_norms_max
	valid_y_col_norms_mean
	valid_y_col_norms_min
	valid_y_max_max_class
	valid_y_mean_max_class
	valid_y_min_max_class
	valid_y_misclass
	valid_y_nll
	valid_y_row_norms_max
	valid_y_row_norms_mean
	valid_y_row_norms_min
Compiling accum...
graph size: 201
graph size: 197
Compiling accum done. Time elapsed: 17.024412 seconds
Monitoring step:
/Users/dikien/anaconda/lib/python2.7/site-packages/pylearn2/datasets/dense_design_matrix.py:1459: UserWarning: It looks like DefaultViewConverter.axes has been changed directly, please use the set_axes() method instead.
  "instead." % self.__class__.__name__)
	Epochs seen: 0
	Batches seen: 0
	Examples seen: 0
	learning_rate: 0.01
	momentum: 0.5
	test_h2_kernel_norms_max: 0.166490069911
	test_h2_kernel_norms_mean: 0.141213052998
	test_h2_kernel_norms_min: 0.121112872804
	test_h2_max_x_max_u: 0.37847480495
	test_h2_max_x_mean_u: 0.133443611898
	test_h2_max_x_min_u: 1.18065450068e-05
	test_h2_mean_x_max_u: 0.239902760203
	test_h2_mean_x_mean_u: 0.0498920017044
	test_h2_mean_x_min_u: 1.18065450068e-07
	test_h2_min_x_max_u: 0.107494465399
	test_h2_min_x_mean_u: 0.00172649709769
	test_h2_min_x_min_u: 0.0
	test_h2_range_x_max_u: 0.376387838577
	test_h2_range_x_mean_u: 0.1317171148
	test_h2_range_x_min_u: 1.18065450068e-05
	test_h3_kernel_norms_max: 1.18473665328
	test_h3_kernel_norms_mean: 1.15763343059
	test_h3_kernel_norms_min: 1.12533408768
	test_h3_max_x_max_u: 0.404753646439
	test_h3_max_x_mean_u: 0.152749036006
	test_h3_max_x_min_u: 0.0
	test_h3_mean_x_max_u: 0.302150381041
	test_h3_mean_x_mean_u: 0.0853193298584
	test_h3_mean_x_min_u: 0.0
	test_h3_min_x_max_u: 0.21810841931
	test_h3_min_x_mean_u: 0.0339839610735
	test_h3_min_x_min_u: 0.0
	test_h3_range_x_max_u: 0.297301919651
	test_h3_range_x_mean_u: 0.118765074932
	test_h3_range_x_min_u: 0.0
	test_objective: 2.32052084015
	test_term_0: 2.31546381349
	test_term_1_weight_decay: 0.00505702666463
	test_y_col_norms_max: 1.21193047414
	test_y_col_norms_mean: 1.18646146442
	test_y_col_norms_min: 1.14516685162
	test_y_max_max_class: 0.13823667396
	test_y_mean_max_class: 0.128954456068
	test_y_min_max_class: 0.117230174439
	test_y_misclass: 0.9027
	test_y_nll: 2.31546381349
	test_y_row_norms_max: 0.26392362918
	test_y_row_norms_mean: 0.152641723375
	test_y_row_norms_min: 0.0449281237288
	total_seconds_last_epoch: 0.0
	training_seconds_this_epoch: 0.0
	valid_h2_kernel_norms_max: 0.166490069911
	valid_h2_kernel_norms_mean: 0.141213052998
	valid_h2_kernel_norms_min: 0.121112872804
	valid_h2_max_x_max_u: 0.374351989519
	valid_h2_max_x_mean_u: 0.134723411388
	valid_h2_max_x_min_u: 3.27862254579e-05
	valid_h2_mean_x_max_u: 0.23349372036
	valid_h2_mean_x_mean_u: 0.0498042852518
	valid_h2_mean_x_min_u: 3.59894929909e-07
	valid_h2_min_x_max_u: 0.0925990594362
	valid_h2_min_x_mean_u: 0.00133518659839
	valid_h2_min_x_min_u: 0.0
	valid_h2_range_x_max_u: 0.373000126905
	valid_h2_range_x_mean_u: 0.13338822479
	valid_h2_range_x_min_u: 3.27862254579e-05
	valid_h3_kernel_norms_max: 1.18473665328
	valid_h3_kernel_norms_mean: 1.15763343059
	valid_h3_kernel_norms_min: 1.12533408768
	valid_h3_max_x_max_u: 0.400951745247
	valid_h3_max_x_mean_u: 0.1534260045
	valid_h3_max_x_min_u: 0.0
	valid_h3_mean_x_max_u: 0.29919721592
	valid_h3_mean_x_mean_u: 0.0851525440413
	valid_h3_mean_x_min_u: 0.0
	valid_h3_min_x_max_u: 0.215595703088
	valid_h3_min_x_mean_u: 0.0330046673557
	valid_h3_min_x_min_u: 0.0
	valid_h3_range_x_max_u: 0.296314202432
	valid_h3_range_x_mean_u: 0.120421337144
	valid_h3_range_x_min_u: 0.0
	valid_objective: 2.31988281458
	valid_term_0: 2.31482578791
	valid_term_1_weight_decay: 0.00505702666463
	valid_y_col_norms_max: 1.21193047414
	valid_y_col_norms_mean: 1.18646146442
	valid_y_col_norms_min: 1.14516685162
	valid_y_max_max_class: 0.138572051085
	valid_y_mean_max_class: 0.128778456177
	valid_y_min_max_class: 0.11714859894
	valid_y_misclass: 0.9137
	valid_y_nll: 2.31482578791
	valid_y_row_norms_max: 0.26392362918
	valid_y_row_norms_mean: 0.152641723375
	valid_y_row_norms_min: 0.0449281237288
Saving to ./convolutional_network_best.pkl...
Saving to ./convolutional_network_best.pkl done. Time elapsed: 0.176762 seconds

In [3]:
%%bash
pylearn2-print-monitor convolutional_network_best.pkl


epochs seen:  0
time trained:  169.658968925
learning_rate : 0.01
momentum : 0.5
test_h2_kernel_norms_max : 0.166490069911
test_h2_kernel_norms_mean : 0.141213052998
test_h2_kernel_norms_min : 0.121112872804
test_h2_max_x_max_u : 0.37847480495
test_h2_max_x_mean_u : 0.133443611898
test_h2_max_x_min_u : 1.18065450068e-05
test_h2_mean_x_max_u : 0.239902760203
test_h2_mean_x_mean_u : 0.0498920017044
test_h2_mean_x_min_u : 1.18065450068e-07
test_h2_min_x_max_u : 0.107494465399
test_h2_min_x_mean_u : 0.00172649709769
test_h2_min_x_min_u : 0.0
test_h2_range_x_max_u : 0.376387838577
test_h2_range_x_mean_u : 0.1317171148
test_h2_range_x_min_u : 1.18065450068e-05
test_h3_kernel_norms_max : 1.18473665328
test_h3_kernel_norms_mean : 1.15763343059
test_h3_kernel_norms_min : 1.12533408768
test_h3_max_x_max_u : 0.404753646439
test_h3_max_x_mean_u : 0.152749036006
test_h3_max_x_min_u : 0.0
test_h3_mean_x_max_u : 0.302150381041
test_h3_mean_x_mean_u : 0.0853193298584
test_h3_mean_x_min_u : 0.0
test_h3_min_x_max_u : 0.21810841931
test_h3_min_x_mean_u : 0.0339839610735
test_h3_min_x_min_u : 0.0
test_h3_range_x_max_u : 0.297301919651
test_h3_range_x_mean_u : 0.118765074932
test_h3_range_x_min_u : 0.0
test_objective : 2.32052084015
test_term_0 : 2.31546381349
test_term_1_weight_decay : 0.00505702666463
test_y_col_norms_max : 1.21193047414
test_y_col_norms_mean : 1.18646146442
test_y_col_norms_min : 1.14516685162
test_y_max_max_class : 0.13823667396
test_y_mean_max_class : 0.128954456068
test_y_min_max_class : 0.117230174439
test_y_misclass : 0.9027
test_y_nll : 2.31546381349
test_y_row_norms_max : 0.26392362918
test_y_row_norms_mean : 0.152641723375
test_y_row_norms_min : 0.0449281237288
total_seconds_last_epoch : 0.0
training_seconds_this_epoch : 0.0
valid_h2_kernel_norms_max : 0.166490069911
valid_h2_kernel_norms_mean : 0.141213052998
valid_h2_kernel_norms_min : 0.121112872804
valid_h2_max_x_max_u : 0.374351989519
valid_h2_max_x_mean_u : 0.134723411388
valid_h2_max_x_min_u : 3.27862254579e-05
valid_h2_mean_x_max_u : 0.23349372036
valid_h2_mean_x_mean_u : 0.0498042852518
valid_h2_mean_x_min_u : 3.59894929909e-07
valid_h2_min_x_max_u : 0.0925990594362
valid_h2_min_x_mean_u : 0.00133518659839
valid_h2_min_x_min_u : 0.0
valid_h2_range_x_max_u : 0.373000126905
valid_h2_range_x_mean_u : 0.13338822479
valid_h2_range_x_min_u : 3.27862254579e-05
valid_h3_kernel_norms_max : 1.18473665328
valid_h3_kernel_norms_mean : 1.15763343059
valid_h3_kernel_norms_min : 1.12533408768
valid_h3_max_x_max_u : 0.400951745247
valid_h3_max_x_mean_u : 0.1534260045
valid_h3_max_x_min_u : 0.0
valid_h3_mean_x_max_u : 0.29919721592
valid_h3_mean_x_mean_u : 0.0851525440413
valid_h3_mean_x_min_u : 0.0
valid_h3_min_x_max_u : 0.215595703088
valid_h3_min_x_mean_u : 0.0330046673557
valid_h3_min_x_min_u : 0.0
valid_h3_range_x_max_u : 0.296314202432
valid_h3_range_x_mean_u : 0.120421337144
valid_h3_range_x_min_u : 0.0
valid_objective : 2.31988281458
valid_term_0 : 2.31482578791
valid_term_1_weight_decay : 0.00505702666463
valid_y_col_norms_max : 1.21193047414
valid_y_col_norms_mean : 1.18646146442
valid_y_col_norms_min : 1.14516685162
valid_y_max_max_class : 0.138572051085
valid_y_mean_max_class : 0.128778456177
valid_y_min_max_class : 0.11714859894
valid_y_misclass : 0.9137
valid_y_nll : 2.31482578791
valid_y_row_norms_max : 0.26392362918
valid_y_row_norms_mean : 0.152641723375
valid_y_row_norms_min : 0.0449281237288