1

O.

pyBrain からの強化学習を使用して、ゲームを解こうとしています。NFQ と ActionValueNetwork をコントローラーとして使用します。自作のタスクがあり、pyBrain からの実験セットアップを使用してトレーニングしています。私たちのエージェントは、エピソードごとにリセットされます。

エピソードを見る方法は、レベルでの1回の実行です。各エピソードでは、レベルが失敗または終了するまで、experiment.doInteractions() を呼び出します。その後、agent.learn() と agent.reset() を実行します。

最初は、このエラーは 1 つのエピソードを長時間実行したためにメモリ オーバーフローが発生したためだと考えていました。最初にエラーが発生したとき、最大 10.000 の移動が挿入されました。50 に下げたので、プログラムはより多くのエピソードを実行できますが、それでもエラーが発生します。

これにより、問題は移動の量ではなく、どこかに保存されている累積履歴であり、許容されるメモリ サイズを超えていると思われます。私たちは、agent.reset() がメモリからすべての履歴を消去すると信じていましたが、そうではありませんか? 履歴がどこかに保存されるのを止めることはできますか?

または、他の提案はありますか?

編集: これは例外トレースです。

Running level: Single box block. Try: 125
Traceback (most recent call last):
  File "wrapperSokoban.py", line 168, in <module>
    wrapperSokoban().run_Qlearning()
  File "wrapperSokoban.py", line 154, in run_Qlearning
    self.run_Qlearning_level() 
  File "wrapperSokoban.py", line 122, in run_Qlearning_level
    self.experiment.doInteractions()
  File "/usr/local/lib/python2.7/dist-packages/PyBrain-0.3.1-py2.7.egg/pybrain/rl/experiments/experiment.py", line 18, in doInteractions
    self._oneInteraction()
  File "/usr/local/lib/python2.7/dist-packages/PyBrain-0.3.1-py2.7.egg/pybrain/rl/experiments/experiment.py", line 29, in _oneInteraction
    self.agent.giveReward(reward)
  File "/usr/local/lib/python2.7/dist-packages/PyBrain-0.3.1-py2.7.egg/pybrain/rl/agents/logging.py", line 62, in giveReward
    self.history.addSample(self.lastobs, self.lastaction, self.lastreward)
  File "/usr/local/lib/python2.7/dist-packages/PyBrain-0.3.1-py2.7.egg/pybrain/datasets/reinforcement.py", line 40, in addSample
    self.appendLinked(state, action, reward)
  File "/usr/local/lib/python2.7/dist-packages/PyBrain-0.3.1-py2.7.egg/pybrain/datasets/dataset.py", line 216, in appendLinked
    self._appendUnlinked(l, args[i])
  File "/usr/local/lib/python2.7/dist-packages/PyBrain-0.3.1-py2.7.egg/pybrain/datasets/dataset.py", line 196, in _appendUnlinked
    self._resize(label)
  File "/usr/local/lib/python2.7/dist-packages/PyBrain-0.3.1-py2.7.egg/pybrain/datasets/dataset.py", line 181, in _resize
    self.data[l] = self._resizeArray(self.data[l])
  File "/usr/local/lib/python2.7/dist-packages/PyBrain-0.3.1-py2.7.egg/pybrain/datasets/dataset.py", line 188, in _resizeArray
    return resize(a, shape)
  File "/usr/lib/python2.7/dist-packages/numpy/core/fromnumeric.py", line 864, in resize
    a = concatenate( (a,)*n_copies)
MemoryError
4

0 に答える 0