pr = nn.update_stochastic(X_train[i], Y_train[i, 0], lrate) LL += pr LL /= float(X_train.shape[0]) er_val = error_rate(X_val, Y_val, nn) er_train = error_rate(X_train, Y_train, nn) er_test = error_rate(X_test, Y_test, nn) er.append(er_val) print "error rate on val db: hdim: {}, er rate: {}".format(hdim, er_val) print "error rate on train db: hdim: {}, er rate: {}".format(hdim, er_train) print "error rate on test db: hdim: {}, er rate: {}".format(hdim, er_test) if train == 'batch': for hdim in hdims: nn = NeuralNet(X_train.shape[1], hdim, 6, lam) for it in range(20): nn.update_batch(X_train, Y_train, lrate) er_val = error_rate(X_val, Y_val, nn) er.append(er_val) print "error rate on val db: hdim: {}, er rate: {}".format(hdim, er_val) pl.plot(hdims, er, 'g^-') pl.title('Model Selection on Neural Network, MNIST') pl.xlabel('Hidden Layer Units') pl.ylabel('Error Rate on Validate Dataset') pl.ylim([0.0, 0.1]) pl.show()