コード例 #1
0
 def test(self, x_test, y_test):
     print('\nTesting...')
     acc = 0
     xs, ys = Matrix.shuffle(x_test, y_test)
     for i in range(len(xs)):
         guess = self.predict(xs[i])
         if Matrix.arg_max(guess) == Matrix.arg_max(ys[i]):
             acc += 1
     acc /= len(xs)
     print('Done testing! accuracy: {:.5f}%'.format(acc * 100))
     return acc
コード例 #2
0
def main():
    nn = NeuralNetwork()
    nn.set_input_nodes(2)
    nn.add_layer(4, 'sigmoid')
    nn.add_layer(4, 'sigmoid')
    nn.add_layer(2, 'sigmoid')
    nn.set_lr(0.1)

    x_train = []
    y_train = []
    for i in range(1000):
        x_train.append([])
        x_train[i].append(round(random.random()))
        x_train[i].append(round(random.random()))
        y_train.append(get_label(x_train[i]))

    print(len(x_train), len(x_train[0]))
    nn.train(x_train, y_train, 3)

    x_test = []
    y_test = []
    for i in range(1000):
        x_test.append([])
        x_test[i].append(round(random.random()))
        x_test[i].append(round(random.random()))
        y_test.append(get_label(x_test[i]))

    nn.test(x_test, y_test)

    print()
    print('0 0 = {}'.format(Matrix.arg_max(nn.predict([0, 0]))))
    print('0 1 = {}'.format(Matrix.arg_max(nn.predict([0, 1]))))
    print('1 0 = {}'.format(Matrix.arg_max(nn.predict([1, 0]))))
    print('1 1 = {}'.format(Matrix.arg_max(nn.predict([1, 1]))))

    # nn.save('XOR.pickle')
    # model = NeuralNetwork.load('XOR.pickle')
    nn.save('model.json', format=True)
    model = NeuralNetwork.load('model.json')
    model.train(x_train, y_train, 3)

    print()
    print('0 0 = {}'.format(Matrix.arg_max(model.predict([0, 0]))))
    print('0 1 = {}'.format(Matrix.arg_max(model.predict([0, 1]))))
    print('1 0 = {}'.format(Matrix.arg_max(model.predict([1, 0]))))
    print('1 1 = {}'.format(Matrix.arg_max(model.predict([1, 1]))))