from pylearn2.models import mlp, maxout from pylearn2.costs.mlp.dropout import Dropout from pylearn2.training_algorithms import sgd, learning_rule from pylearn2.termination_criteria import EpochCounter from pylearn2.datasets import cifar10 from kaggle_dataset import kaggle_cifar10 from pylearn2.datasets.preprocessing import Pipeline, ZCA from pylearn2.datasets.preprocessing import GlobalContrastNormalization from pylearn2.space import Conv2DSpace from pylearn2.train import Train from pylearn2.train_extensions import best_params, window_flip from pylearn2.utils import serial trn = kaggle_cifar10('train', one_hot=True, datapath='/home/kkastner/kaggle_data/kaggle-cifar10', max_count=40000, axes=('c', 0, 1, 'b')) tst = cifar10.CIFAR10('test', toronto_prepro=False, one_hot=True, axes=('c', 0, 1, 'b')) in_space = Conv2DSpace(shape=(32, 32), num_channels=3, axes=('c', 0, 1, 'b')) l1 = maxout.MaxoutConvC01B(layer_name='l1', pad=4, tied_b=1,
for i in xrange(ds.X.shape[0] / batch_size): x_arg = ds.X[i * batch_size:(i + 1) * batch_size, :] x_arg = ds.get_topological_view(x_arg) yhat.append(f(x_arg.astype(X.dtype))) return np.array(yhat) preprocessor = serial.load('kaggle_cifar10_preprocessor.pkl') mdl = serial.load('kaggle_cifar10_maxout_zca.pkl') fname = 'kaggle_cifar10_results.csv' test_size = 100000 sets = 300000 / test_size res = np.zeros((sets, test_size), dtype='float32') for n, i in enumerate([test_size * x for x in range(sets)]): ds = kaggle_cifar10('test', datapath='/home/kkastner/kaggle_data/kaggle-cifar10', one_hot=True, start_idx=i, max_count=test_size, axes=('c', 0, 1, 'b')) ds.apply_preprocessor(preprocessor=preprocessor, can_fit=False) yhat = process(mdl, ds) print "start_idx", i res[n, :] = yhat.ravel() converted_results = [['id', 'label']] + [[n + 1, ds.unconvert(int(x))] for n, x in enumerate(res.ravel())] with open(fname, 'w') as f: csv_f = csv.writer(f, delimiter=',', quoting=csv.QUOTE_NONE) csv_f.writerows(converted_results)