(rewards, dones, gamma)
| 28 | |
| 29 | |
| 30 | def discount_with_dones(rewards, dones, gamma): |
| 31 | discounted = [] |
| 32 | r = 0 |
| 33 | for reward, done in zip(rewards[::-1], dones[::-1]): |
| 34 | r = reward + gamma * r * (1. - done) # fixed off by one bug |
| 35 | discounted.append(r) |
| 36 | return discounted[::-1] |
| 37 | |
| 38 | |
| 39 |