def discount_cumsum(x, gamma):
"""Compute the discounted cumulative summation of an 1-d array.
From https://github.com/rll/rllab/blob/master/rllab/misc/special.py"""
# See https://docs.scipy.org/doc/scipy/reference/tutorial/signal.html#difference-equation-filtering
# Here, we have y[t] - discount*y[t+1] = x[t]
# or rev(y)[t] - discount*rev(y)[t-1] = rev(x)[t]
return scipy.signal.lfilter([1], [1, float(-gamma)], x[::-1], axis=0)[::-1]
评论列表
文章目录