Example #1
0
def predict(data: List[List[float]], netwerk: NeuronNetwork):
    """Gegeven de data van een plant kunnen we met een bepaalde zekerheid voorspellen welke plant dit is. In deze
    functie veranderen we onze output. De plant die de hoogste kans heeft om correct te zijn, is de plant die wij
    gaan gokken."""
    antwoorden = []
    for i in data:
        netwerk.feed_forward(i)
        output = netwerk.output_neuronen[-1]  # Pak alleen de outputlaag
        index = output.index(max(output))  # Welke plant heeft de grootste kans om correct te zijn? Wanneer twee of
                                           # drie planten dezelfde accuracy hebben, wordt de eerste gepakt.
        lege_lijst = [0, 0, 0]
        lege_lijst[index] = 1
        antwoorden.append(lege_lijst)
    return antwoorden
Example #2
0
    def test_AND(self):
        inputs = [[0, 0], [1, 0], [0, 1], [1, 1]]
        verwachte_outputs = [[0], [0], [0], [1]]
        epochs = 100

        AND = Neuron([-0.5, 0.5], 1.5, 1, 'AND gate')
        laag_een = NeuronLaag([AND], 'L1')
        ANDer = NeuronNetwork([laag_een])

        ANDer.train(inputs, verwachte_outputs, epochs)

        antwoorden = []

        for i in inputs:
            ANDer.feed_forward(i)
            tussen_antwoorden = []
            for j in ANDer.output_neuronen[-1]:
                if (j % 1) == 0.5:
                    tussen_antwoorden.append(int(math.ceil(j)))
                else:
                    tussen_antwoorden.append(int(round(j)))

            antwoorden.append(tussen_antwoorden)

        self.assertEqual(antwoorden,
                         verwachte_outputs)  # Kijk of de outputs goed zijn
Example #3
0
    def test_Half_adder(self):
        x1_1 = Neuron([0.0, 0.1], 0, 1, 'F')
        x1_2 = Neuron([0.2, 0.3], 0, 1, 'G')
        x1_3 = Neuron([0.4, 0.5], 0, 1, 'H')

        laag_een = NeuronLaag([x1_1, x1_2, x1_3], 'L1')

        x2_1 = Neuron([0.6, 0.7, 0.8], 0, 1, 'S')
        x2_2 = Neuron([0.9, 1, 1.1], 0, 1, 'C')

        laag_twee = NeuronLaag([x2_1, x2_2], 'L2')

        Half_adder = NeuronNetwork([laag_een, laag_twee])

        inputs = [[0, 0], [0, 1], [1, 0], [1, 1]]
        verwachte_outputs = [[0, 0], [1, 0], [1, 0], [0, 1]]
        epochs = 1000

        Half_adder.train(inputs, verwachte_outputs, epochs)

        antwoorden = []
        for i in inputs:
            Half_adder.feed_forward(i)
            tussen_antwoorden = []
            for j in Half_adder.output_neuronen[-1]:
                if (j % 1) == 0.5:
                    tussen_antwoorden.append(int(math.ceil(j)))
                else:
                    tussen_antwoorden.append(int(round(j)))
            antwoorden.append(tussen_antwoorden)

        self.assertEqual(antwoorden,
                         verwachte_outputs)  # Kijk of de outputs goed zijn
Example #4
0
    def test_XOR(self):
        x1_1 = Neuron([0.2, -0.4], 0, 1, 'F')
        x1_2 = Neuron([0.7, 0.1], 0, 1, 'G')

        laag_een = NeuronLaag([x1_1, x1_2], 'L1')

        x2_1 = Neuron([0.6, 0.9], 0, 1, 'O')

        laag_twee = NeuronLaag([x2_1], 'L2')

        XOR = NeuronNetwork([laag_een, laag_twee])

        inputs = [[0, 0], [0, 1], [1, 0], [1, 1]]
        verwachte_outputs = [[0], [1], [1], [0]]
        epochs = 1000

        XOR.train(inputs, verwachte_outputs, epochs)

        antwoorden = []
        for i in inputs:
            XOR.feed_forward(i)
            tussen_antwoorden = []
            for j in XOR.output_neuronen[-1]:
                if (j % 1) == 0.5:
                    tussen_antwoorden.append(int(math.ceil(j)))
                else:
                    tussen_antwoorden.append(int(round(j)))
            antwoorden.append(tussen_antwoorden)

        self.assertEqual(antwoorden,
                         verwachte_outputs)  # Kijk of de outputs goed zijn
Example #5
0
def create_network(layers):
    """Hier maken we een neuron network aan."""
    return NeuronNetwork(layers)