Esempio n. 1
0
                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()