教你Python用12行代码实现最简单的神经网络
代码示例
from numpy import array, exp, random, dot # 加载数据x = array([[0, 0, 0], [1, 1, 1], [1, 0, 1], [0, 1, 1]])y = array([[0, 1, 1, 0]]).T # 初始化权重random.seed(1)weights = random.random((3, 1)) * 2 - 1 # 循环for i in range(10000): # 使用矩阵点乘计算4个z z = dot(x, weights) # 使用Sigmoid函数,计算最终的output output = 1 / (1 + exp(-z)) # 计算误差 error = y - output # 计算斜率 slope = output * (1 - output) # 计算增量 delta = error * slope # 更新权重 weights = weights + dot(x.T, delta) # 打印权重print(weights)
运行结果:
[[ 9.04590801] [-2.45553327] [-2.00945356]]