python实现误差逆传播算法

最近学习神经网络,自己参照源代码把误差逆传播重新写了一遍,其实挺简单的,关键是要把逆传播的几个过程搞清楚以及每一步是为了得到什么,然后知道numpy的矩阵运算操作,废话不多说,直接上代码:

# 反向传播算法
def backpro(weights, bs, x, y, nums):
    """
    逆传播计算参数的梯度
    :param weights: 权重矩阵列表,每一层一个权重矩阵,直到最后一层,整个网络构成一个矩阵集合
    :param bs: 偏置向量列表,每一层一个偏置列向量
    :param x: 输入
    :param y: 期望输出
    :param nums: 网络层数
    :return:
    """
    # 构造两个空的梯度列表,形状跟每一层权重矩阵和列向量形状相同
    nabla_weight = [np.zeros(z.shape) for z in weights]   # 每一层权重的梯度矩阵跟权重矩阵的形状相同
    nabla_b = [np.zeros(b.shape
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值