efficient_pd_weight_updates.py 文件源码

python
阅读 30 收藏 0 点赞 0 评论 0

项目:pdnn 作者: petered 项目源码 文件源码
def pd_weight_grads_future(xc, ec, kp, kd):
    r = kd/float(kp+kd)
    kd=float(kd)
    scale_factor = 1./float(kp**2 + 2*kp*kd)
    n_samples = xc.shape[0]
    assert n_samples == ec.shape[0]
    n_in = xc.shape[1]
    n_out = ec.shape[1]
    dws = np.zeros((n_samples, n_in, n_out))
    xr = np.zeros(n_in)
    er = np.zeros(n_out)
    for t in xrange(n_samples):
        xr *= r
        er = er*r + ec[t]
        dws[t] = (xc[t][:, None]*er[None, :] + xr[:, None]*ec[t][None, :]) * scale_factor
        xr += xc[t]
        # er += ec[t]
    return np.cumsum(dws, axis=0)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号