Пример #1
0
    def test_Xor(self):
        """Hier word de XOR getest met 2 layers en in totaal 3 perceptrons"""

        # Perceptrons worden aangemaakt
        perceptron1 = p.Perceptron([1, 1], 0, 1)
        perceptron2 = p.Perceptron([-1, -1], 0, -1.5)

        # Layer word aangemaakt en perceptrons worden toegevoegd aan layer
        layer1 = pl.PerceptronLayer([perceptron1, perceptron2])

        # Perceptron worden aangemaakt
        perceptron3 = p.Perceptron([1, 1], 0, 2)

        # Layer word aangemaakt en percepotron word toegevoegd aan layer
        layer2 = pl.PerceptronLayer([perceptron3])

        # Netwerk word aangemaakt en layers worden toegevoegd aan netwerk
        Xor = pn.PerceptronNetwerk([layer1, layer2])

        antwoorden = []

        for verschillendeInputs1 in range(2):
            for verschillendeInputs2 in range(2):
                antwoorden.append(Xor.feed_forward([verschillendeInputs1, verschillendeInputs2]))

        self.assertEqual(antwoorden, [[0], [1], [1], [0]])
Пример #2
0
    def test_Or(self):
        """Hier word de OR getest met 2 inputs"""

        Or = p.Perceptron(weights=[0.5, 0.5], bias=0, trashhold=0.5)

        antwoorden = []
        for verschillendeInputs1 in range(2):
            for verschillendeInputs2 in range(2):
                antwoorden.append(Or.output([verschillendeInputs1, verschillendeInputs2]))

        self.assertEqual(antwoorden, [0, 1, 1, 1])
Пример #3
0
    def test_Invert(self):
        """Hier word de NOT getest met 1 input"""

        # Perceptron word aangemaakt
        Not = p.Perceptron(weights=[-1], bias=0, trashhold=-0.5)

        antwoorden = []
        # Alle mogelijkheden worden getest op de perceptron
        for verschillendeInputs in range(2):
            antwoorden.append(Not.output([verschillendeInputs]))

        self.assertEqual(antwoorden, [1, 0])
Пример #4
0
    def test_Party(self):
        """Hier word de party uit de reader getest met 3 inputs"""

        Party = p.Perceptron(weights=[0.6, 0.3, 0.2], bias=0, trashhold=0.4)

        antwoorden = []
        for verschillendeInputs1 in range(2):
            for verschillendeInputs2 in range(2):
                for verschillendeInputs3 in range(2):
                    antwoorden.append(Party.output([verschillendeInputs1, verschillendeInputs2, verschillendeInputs3]))

        self.assertEqual(antwoorden, [0, 0, 0, 1, 1, 1, 1, 1])
Пример #5
0
    def test_Nor(self):
        """Hier word de NOR getest met 3 inputs met 3 inputs"""

        Nor = p.Perceptron(weights=[-1, -1, -1], bias=0, trashhold=0)

        antwoorden = []
        for verschillendeInputs1 in range(2):
            for verschillendeInputs2 in range(2):
                for verschillendeInputs3 in range(2):
                    antwoorden.append(Nor.output([verschillendeInputs1, verschillendeInputs2, verschillendeInputs3]))

        self.assertEqual(antwoorden, [1, 0, 0, 0, 0, 0, 0, 0])\
Пример #6
0
    def test_halfAdder(self):
        """Hier word de half Adder getest met 2 layers en in totaal 5 perceptrons
            (Hier word vrijwel hetzelfde gedaan als bij de XOR maar met 2 extra perceptrons)"""

        perceptron1 = p.Perceptron([1, 1], 0, 1)
        perceptron2 = p.Perceptron([-1, -1], 0, -1.5)
        perceptron3 = p.Perceptron([1, 1], 0, 2)

        layer1 = pl.PerceptronLayer([perceptron1, perceptron2, perceptron3])

        perceptron4 = p.Perceptron([1, 1, 0], 0, 2)
        perceptron5 = p.Perceptron([0, 0, 1], 0, 1)

        layer2 = pl.PerceptronLayer([perceptron4, perceptron5])

        halfAdder = pn.PerceptronNetwerk([layer1, layer2])

        antwoorden = []
        for verschillendeInputs1 in range(2):
            for verschillendeInputs2 in range(2):
                antwoorden.append(halfAdder.feed_forward([verschillendeInputs1, verschillendeInputs2]))

        # Elk antwoord bestaat uit 2 binaire getallen. Waar het eerste getal de sum is en de tweede de carry
        self.assertEqual(antwoorden, [[0, 0], [1, 0], [1, 0], [0, 1]])