使用二层感知机实现异或门

深度学习,神经网络,感知机。

慢慢来学起。

日本人写的《深度学习入门》,这书讲基础还是不错的。

import numpy as np


def AND(x1, x2):
    x = np.array([x1, x2])
    w = np.array([0.5, 0.5])
    b = -0.7
    tmp = np.sum(w*x) + b
    if tmp <= 0:
        return 0
    else:
        return 1


print('====AND=====')
print('AND(0, 0):', AND(0, 0))
print('AND(1, 0):', AND(1, 0))
print('AND(0, 1):', AND(0, 1))
print('AND(1, 1):', AND(1, 1))


def NAND(x1, x2):
    x = np.array([x1, x2])
    w = np.array([0.5, 0.5])
    b = -0.7
    tmp = np.sum(w*x) + b
    if tmp <= 0:
        return 1
    else:
        return 0


print('====NAND=====')
print('NAND(0, 0):', NAND(0, 0))
print('NAND(1, 0):', NAND(1, 0))
print('NAND(0, 1):', NAND(0, 1))
print('NAND(1, 1):', NAND(1, 1))


def OR(x1, x2):
    x = np.array([x1, x2])
    w = np.array([0.5, 0.5])
    b = -0.2
    tmp = np.sum(w * x) + b
    if tmp <= 0:
        return 0
    else:
        return 1


print('====OR=====')
print('OR(0, 0):', OR(0, 0))
print('OR(1, 0):', OR(1, 0))
print('OR(0, 1):', OR(0, 1))
print('OR(1, 1):', OR(1, 1))


def XOR(x1, x2):
    s1 = NAND(x1, x2)
    s2 = OR(x1, x2)
    y = AND(s1, s2)
    return y


print('====XOR=====')
print('XOR(0, 0):', XOR(0, 0))
print('XOR(1, 0):', XOR(1, 0))
print('XOR(0, 1):', XOR(0, 1))
print('XOR(1, 1):', XOR(1, 1))
C:\Python36\python.exe C:/Users/Sahara/PycharmProjects/test/python_search.py
====AND=====
AND(0, 0): 0
AND(1, 0): 0
AND(0, 1): 0
AND(1, 1): 1
====NAND=====
NAND(0, 0): 1
NAND(1, 0): 1
NAND(0, 1): 1
NAND(1, 1): 0
====OR=====
OR(0, 0): 0
OR(1, 0): 1
OR(0, 1): 1
OR(1, 1): 1
====XOR=====
XOR(0, 0): 0
XOR(1, 0): 1
XOR(0, 1): 1
XOR(1, 1): 0

Process finished with exit code 0

猜你喜欢

转载自www.cnblogs.com/aguncn/p/10770829.html