由于观察不能揭示整个状态,我需要使用递归神经网络进行强化,以便网络对过去发生的事情有某种记忆。为简单起见,我们假设使用LSTM。
现在,内置的shape LSTM需要向它提供shape Time x MiniBatch x Input D的一个PyTorch输入,它输出shape Time x MiniBatch x Output D的张量。
然而,在强化学习中,要知道time t+1的输入,我需要知道time t的输出,因为我是在环境中执行操作。
那么,有没有可能使用内置的BPTT在强化学习环境中进行PyTorch?如果是的话,我该怎么做呢?
发布于 2017-11-07 18:50:36
也许您可以将循环中的输入序列提供给您的LSTM。像这样的东西:
h, c = Variable(torch.zeros()), Variable(torch.zeros())
for i in range(T):
input = Variable(...)
_, (h, c) = lstm(input, (h,c))例如,每个时间步都可以使用(h,c)和input来评估操作。只要你不破坏计算图,你就可以像变量一样反向传播,保留所有的历史记录。
https://stackoverflow.com/questions/46914292
复制相似问题