Exemple #1
0
def sigmoidXOR():
    expected_output_xor = (([1, 1], [False]),
                           ([1, 0], [True]),
                           ([0, 1], [True]),
                           ([0, 0], [False]))
    print(f"XOR Gate expectation = {expected_output_xor}")

    table = makeTruthTable(2)
    OR1 = im.Neuron(inputWeight=[24, 24], bias=-12, idPerceptron='OR 1')
    NAND1 = im.Neuron(inputWeight=[-12, -12], bias=18, idPerceptron='NAND 1')
    AND1 = im.Neuron(inputWeight=[12, 12], bias=-18, idPerceptron='AND 1')

    layerOneXOR = ptl.NeuronLayer([NAND1, OR1], idLayer='FirstLayer')
    layerTwoXOR = ptl.NeuronLayer([AND1], idLayer='SecondLayer')

    networkOneXOR = ptn.NeuronNetwork([layerOneXOR, layerTwoXOR])


    for index, i in enumerate(table):
        output = networkOneXOR.feed_forward(list(i))
        print(f'input = {list(i)} and output {output} expected output = {expected_output_xor[index][1]} difference == {expected_output_xor[index][1][0] - output[0]}')
Exemple #2
0
def sigmoidINV():
    expected_output_inv = (([1], [False]),
                           ([0], [True]))
    print(f"Inv Gate expectation = {expected_output_inv}")
    INV1 = im.Neuron(inputWeight=[-12], bias=6, idPerceptron='INV 1')

    table = makeTruthTable(1)
    for index, i in enumerate(table):

        output = INV1.activate(list(i))
        print(f'input = {list(i)} and output {output} expected output = {expected_output_inv[index][1]} difference == {expected_output_inv[index][1][0] - output}')
    print(f"The error = {INV1.error(expected_output_inv)} \n")
Exemple #3
0
def sigmoidNAND():
    expected_output_nand = (([1, 1], [False]),
                           ([1, 0], [True]),
                           ([0, 1], [True]),
                           ([0, 0], [True]))
    print(f"NAND Gate expectation = {expected_output_nand}")
    table = makeTruthTable(2)
    NAND1 = im.Neuron(inputWeight=[-12, -12], bias=18, idPerceptron='NAND 1')

    for index, i in enumerate(table):
        output = NAND1.activate(list(i))
        print(f'input = {list(i)} and output {output} expected output = {expected_output_nand[index][1]} difference == {expected_output_nand[index][1][0] - output}')
    print(f"The error = {NAND1.error(expected_output_nand)} \n")
Exemple #4
0
def sigmoidOR():
    expected_output_or = (([1, 1], [True]),
                           ([1, 0], [True]),
                           ([0, 1], [True]),
                           ([0, 0], [False]))
    print(f"OR Gate expectation = {expected_output_or}")

    table = makeTruthTable(2)
    OR1 = im.Neuron(inputWeight=[24, 24], bias=-12, idPerceptron='OR 1')

    for index, i in enumerate(table):
        output = OR1.activate(list(i))
        print(f'input = {list(i)} and output {output} expected output = {expected_output_or[index][1]} difference == {expected_output_or[index][1][0] - output}')
    print(f"The error = {OR1.error(expected_output_or)} \n")
Exemple #5
0
def sigmoidHalfAdder():
    expected_output_ha = (([1, 1], [False, True]),
                           ([1, 0], [True, False]),
                           ([0, 1], [True, False]),
                           ([0, 0], [False, False]))
    print(f"Half adder expectation = {expected_output_ha}")

    table = makeTruthTable(2)
    OR1 = im.Neuron(inputWeight=[24, 24], bias=-12, idPerceptron='OR 1')
    NAND1 = im.Neuron(inputWeight=[-12, -12], bias=18, idPerceptron='NAND 1')
    AND1 = im.Neuron(inputWeight=[12, 12], bias=-18, idPerceptron='AND 1')

    AND2 = im.Neuron(inputWeight=[12, 12, 0], bias=-18, idPerceptron='AND 2')
    REP1 = im.Neuron(inputWeight=[0, 0, 24], bias=-12, idPerceptron='REP 1')


    layer1 = ptl.NeuronLayer([OR1, NAND1, AND1], idLayer='FirstLayer')
    layer2 = ptl.NeuronLayer([AND2, REP1], idLayer='SecondLayer')

    network = ptn.NeuronNetwork([layer1, layer2])
    for index, i in enumerate(table):
        output = network.feed_forward(list(i))
        print(f'input = {list(i)} and output {output} expected output = {expected_output_ha[index][1]} difference == {expected_output_ha[index][1][0] - output[0]}')