import theanoml
reload(theanoml)
<module 'theanoml' from 'theanoml/__init__.pyc'>
## Load MNIST data
reload(theanoml.formula)
import cPickle
X, y = cPickle.load(open('data/digits.pkl', 'rb'))
print X.shape, y.shape
from sklearn.cross_validation import train_test_split
train_X, validation_X, train_y, validation_y = train_test_split(X, y, test_size = 0.2)
v_train_X, v_validation_X = theanoml.formula.share_data(train_X), theanoml.formula.share_data(validation_X)
v_train_y, v_validation_y = theanoml.formula.share_data(train_y, dtype = 'int32'), theanoml.formula.share_data(validation_y, dtype='int32')
(42000, 784) (42000,)
## TEST theanoml LogisticRegression MLP
reload(theanoml.formula)
mlp = theanoml.formula.MLPClassifierFormula(n_in = 28 * 28, n_hidden = 500, n_out = 10)
theanoml.formula.sgd(v_train_X, v_train_y, v_validation_X, v_validation_y, mlp)
epoch 1, minibatch 1680 / 1680, validation error 10.511905 % epoch 2, minibatch 1680 / 1680, validation error 10.238095 % epoch 3, minibatch 1680 / 1680, validation error 9.928571 % epoch 4, minibatch 1680 / 1680, validation error 9.261905 % epoch 5, minibatch 1680 / 1680, validation error 9.511905 % epoch 6, minibatch 1680 / 1680, validation error 9.226190 % epoch 7, minibatch 1680 / 1680, validation error 9.202381 % optimization complete with best valiation error 9.202381 %