由于观察不能揭示整个状态,我需要使用循环神经网络进行强化,以便网络对过去发生的事情有某种记忆。为简单起见,我们假设我们使用LSTM。
现在,内置的PyTorch LSTM要求您输入形状Time x MiniBatch x Input D
的输入,并输出形状Time x MiniBatch x Output D
的张量。
在强化学习中,要知道时间t+1
的输入,我需要知道时间t
的输出,因为我在环境中进行操作。
那么可以使用内置的PyTorch LSTM在强化学习环境中进行BPTT吗?如果是的话,我怎么能这样做?
答案 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)和输入来评估操作。只要你不破坏计算图,你可以反向传播,因为变量保留所有的历史记录。