def create_training_split(x, y, num_hidden_neurons, lr, epochs): shuffled = np.hstack((x, y)) np.random.shuffle(shuffled) h_index = int(shuffled.shape[0] * .8) x_training_split = shuffled[:h_index, :-1] y_training_split = shuffled[:h_index, -1:] x_test_split = shuffled[h_index:, :-1] y_test_split = shuffled[h_index:, -1:] nn = NeuralNetwork(x_training_split, y_training_split, num_hidden_neurons) nn.train(epochs) print("Training accuracy, precision:", nn.accuracy_precision()) nn.test_feedforward(x_test_split, y_test_split) print("Testing accuracy, precision:", nn.accuracy_precision())
def test_or_nn(verbose=0): x, y = create_or_nn_data() nn = NeuralNetwork(x, y, 4, 1) nn.feedforward() if verbose > 0: print("OR 1 " + str(nn.loss())) print("NN output " + str(nn._output)) print(nn.accuracy_precision()) assert nn.loss() < .04
def test_ttt_nn(verbose=0): x, y = load_tictactoe_csv("tic-tac-toe-1.csv") nn = NeuralNetwork(x, y, 4, .1) nn.load_4_layer_ttt_network() nn.feedforward() if verbose > 0: print("NN 1 " + str(nn.loss())) print("NN output " + str(nn._output)) print(nn.accuracy_precision()) assert nn.loss() < .02
def test_nn_6(): x, y = load_tictactoe_csv("tic-tac-toeFull.csv") nn = NeuralNetwork(x, y, 20, .002) nn.train(100000) # print("test 12 loss:", nn.loss()) print("test 12 comparison:") print("num hidden neurons:", 20) print("num epochs:", 100000) print("learning rate:", .002) create_training_split(x, y, 30, .02, 100000) print("100/0 split accuracy, precision:", nn.accuracy_precision()) print("-------") assert nn.loss() < .5