weixin_38256708
weixin_38256708
采纳率36.4%
2018-08-23 06:40

吴恩达deeplearning.ai课程中序列模型这一章的作业Rnn(lstm)反向传播推导

20
已采纳

为什么自己算的结果和答案中给的结果对不上?
for t in reversed(range(T_x)):
# Compute all gradients using lstm_cell_backward
gradients = lstm_cell_backward(da[:, :, t] + da_prevt, dc_prevt, caches[t])
# Store or add the gradient to the parameters' previous step's gradient
da_prevt = gradients['da_prev']
dc_prevt = gradients['dc_prev']
dx[:,:,t] = gradients['dxt']
dWf = dWf + gradients['dWf']
dWi = dWi + gradients['dWi']
dWc = dWc + gradients['dWc']
dWo = dWo + gradients['dWo']
dbf = dbf + gradients['dbf']
dbi = dbi + gradients['dbi']
dbc = dbc + gradients['dbc']
dbo = dbo + gradients['dbo']

            这个对吗da[:, :, t] + da_prevt, dc_prevt
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • devmiao devmiao 3年前
  • weixin_45316967 大叔变码农 1年前

    赞同你的答案。我觉得很多博客中的程序好像都有问题,循环时第一个参数不应该是a[:,:,t],而是a[_:,:,t]+a_prev才对。但是搜了很多答案,_都没有加上a_prev,这样的话,相当于只考虑了单步内部输出传来的误差,没有考虑下一步传回来的误差。我也不知道为什么主流答案都是没有加a_prev的。理解不了。

    点赞 1 评论 复制链接分享
  • a649644406 thetree_ 6月前

    对呀,我看那个文件里给的公式就很奇怪,偏a<t>/偏Wax怎么只算了本时序的导数,为啥不链式求导再加上偏a<t-1>/偏Wax

    点赞 评论 复制链接分享
  • xiaodidadada xiaodidadada 1年前

    我算的也对不上,我看其他人的代码和预期结果对的上的都没有更新da_prev和dc_prev,感觉有点问题

    点赞 评论 复制链接分享

相关推荐