Hello,
The code runs fine for a few minutes. I get the following error when env.reset()
is called. Any ideas on how to fix it?
Process Process-2:
Traceback (most recent call last):
File "/usr/lib/python3.5/multiprocessing/process.py", line 249, in _bootstrap
self.run()
File "/usr/lib/python3.5/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/home/roozbehm/code/pytorch-noreward-rl/train.py", line 112, in train
state = env.reset()
File "/home/roozbehm/.local/lib/python3.5/site-packages/gym/core.py", line 123, in reset
observation = self._reset()
File "/home/roozbehm/code/pytorch-noreward-rl/env_wrapper.py", line 53, in _reset
obs = self._convert(self.env.reset())
File "/home/roozbehm/.local/lib/python3.5/site-packages/gym/core.py", line 123, in reset
observation = self._reset()
File "/home/roozbehm/.local/lib/python3.5/site-packages/gym/core.py", line 336, in _reset
return self.env.reset()
File "/home/roozbehm/.local/lib/python3.5/site-packages/gym/core.py", line 123, in reset
observation = self._reset()
File "/home/roozbehm/.local/lib/python3.5/site-packages/gym/core.py", line 336, in _reset
return self.env.reset()
File "/home/roozbehm/.local/lib/python3.5/site-packages/gym/core.py", line 123, in reset
observation = self._reset()
File "/home/roozbehm/.local/lib/python3.5/site-packages/gym/core.py", line 336, in _reset
return self.env.reset()
File "/home/roozbehm/.local/lib/python3.5/site-packages/gym/core.py", line 123, in reset
observation = self._reset()
File "/home/roozbehm/.local/lib/python3.5/site-packages/gym/wrappers/time_limit.py", line 49, in _reset
return self.env.reset()
File "/home/roozbehm/.local/lib/python3.5/site-packages/gym/core.py", line 123, in reset
observation = self._reset()
File "/usr/local/lib/python3.5/dist-packages/ppaquette_gym_doom/doom_env.py", line 215, in _reset
'singleton lock in memory.')
gym.error.Error: VizDoom incorrectly initiated. This is likely caused by a missing multiprocessing lock. To run VizDoom across multiple processes, you need to pass a lock when you configure the env [e.g. env.configure(lock=my_multiprocessing_lock)], or create and close an env before starting your processes [e.g. env = gym.make("DoomBasic-v0"); env.close()] to cache a singleton lock in memory.