如何在PyTorch中使用LSTM进行强化学习?

时间:2017-10-24 15:20:54

标签: recurrent-neural-network backpropagation reinforcement-learning pytorch

由于观察不能揭示整个状态,我需要使用循环神经网络进行强化,以便网络对过去发生的事情有某种记忆。为简单起见,我们假设我们使用LSTM。

现在,内置的PyTorch LSTM要求您输入形状Time x MiniBatch x Input D的输入,并输出形状Time x MiniBatch x Output D的张量。

在强化学习中,要知道时间t+1的输入,我需要知道时间t的输出,因为我在环境中进行操作。

那么可以使用内置的PyTorch LSTM在强化学习环境中进行BPTT吗?如果是的话,我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

也许您可以将循环中的输入序列提供给LSTM。像这样的东西:

 holder.mView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(getActivity(),MainActivity.class);
                    intent.putExtra("databaseKey", key);
                    startActivity(intent);
                }
            });

每次执行时,您都可以使用(h,c)和输入来评估操作。只要你不破坏计算图,你可以反向传播,因为变量保留所有的历史记录。