for循环中numpy数组的错误计算结果

2024-06-09 11:55:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码,它在python中使用numpy数组计算错误的数字:

for t in range(T-1,0,-1):
    dh[:,t,:] = dh[:,t,:] + dprev_ht
    dx[:,t,:], dprev_ht, dWxt, dWht, dbt = rnn_step_backward(dh[:,t,:], cache[t])
    dWx += dWxt
    dWh += dWht
    db += dbt

但如果我把它改成:

for t in range(T-1,0,-1):
    cur_dh = dh[:,t,:] + dprev_ht
    dx[:,t,:], dprev_ht, dWxt, dWht, dbt = rnn_step_backward(cur_dh, cache[t])
    dWx += dWxt
    dWh += dWht
    db += dbt

然后我就能得到正确的号码。这个问题是否与python中计算的顺序或优先级或for循环中numpy数组的易变性有关?还是我完全错了?你知道吗


Tags: innumpyforsteprange数组dbtht