在Linux的Windows子系统上运行vizdoom和pytorch程序时出现多处理锁定错误 [英] Getting multiprocessing lock error when running vizdoom and pytorch program on Windows Subsystem for Linux

查看:358
本文介绍了在Linux的Windows子系统上运行vizdoom和pytorch程序时出现多处理锁定错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

每当我尝试在WSL上运行程序时,都会出现以下错误.我是pytorch和vizdoom的新手,所以我不知道如何解决这个问题.

whenever I try to run my program on WSL, I get the following error. I'm pretty new to pytorch and vizdoom, so I don't know how to solve this problem.

设置
-Windows 10 x64
-Ubuntu 14(在WSL上)
-Python 2.7.14(Anaconda 2)
-OpenAI Gym 0.9.5
-Vizdoom 1.1.4
-毁灭战士0.0.14
-ppaquette/gym-doom
-pytorch 0.0.12

Setup
- Windows 10 x64
- Ubuntu 14 (on WSL)
- Python 2.7.14 (Anaconda 2)
- OpenAI Gym 0.9.5
- Vizdoom 1.1.4
- doom-py 0.0.14
- ppaquette/gym-doom
- pytorch 0.0.12

(doomenv) hybridsyntax@Blacklynx:/mnt/f/_TUTORIALS/ai/doom/code$ python ai.py  > wsl.log
[2018-05-25 18:21:44,354] Making new env: ppaquette/DoomCorridor-v0
[2018-05-25 18:21:44,365] Clearing 2 monitor files from previous run (because force=True was provided)
Assertion 'pthread_mutex_unlock(&m->mutex) == 0' failed at pulsecore/mutex-posix.c:108, function pa_mutex_unlock(). Aborting.
Traceback (most recent call last):
  File "ai.py", line 155, in <module>
    memory.run_steps(200)
  File "/mnt/f/_TUTORIALS/ai/doom/code/experience_replay.py", line 70, in run_steps
    entry = next(self.n_steps_iter) # 10 consecutive steps
  File "/mnt/f/_TUTORIALS/ai/doom/code/experience_replay.py", line 21, in __iter__
    state = self.env.reset()
  File "/mnt/f/_TUTORIALS/ai/doom/gym/gym/core.py", line 104, in reset
    return self._reset()
  File "/mnt/f/_TUTORIALS/ai/doom/gym/gym/wrappers/monitoring.py", line 39, in _reset
    observation = self.env.reset(**kwargs)
  File "/mnt/f/_TUTORIALS/ai/doom/gym/gym/core.py", line 104, in reset
    return self._reset()
  File "/mnt/f/_TUTORIALS/ai/doom/gym/gym/core.py", line 311, in _reset
    observation = self.env.reset(**kwargs)
  File "/mnt/f/_TUTORIALS/ai/doom/gym/gym/core.py", line 104, in reset
    return self._reset()
  File "/mnt/f/_TUTORIALS/ai/doom/gym/gym/wrappers/frame_skipping.py", line 33, in _reset
    return self.env.reset()
  File "/mnt/f/_TUTORIALS/ai/doom/gym/gym/core.py", line 104, in reset
    return self._reset()
  File "/mnt/f/_TUTORIALS/ai/doom/gym/gym/core.py", line 283, in _reset
    return self.env.reset(**kwargs)
  File "/mnt/f/_TUTORIALS/ai/doom/gym/gym/core.py", line 104, in reset
    return self._reset()
  File "/mnt/f/_TUTORIALS/ai/doom/gym/gym/wrappers/time_limit.py", line 49, in _reset
    return self.env.reset()
  File "/mnt/f/_TUTORIALS/ai/doom/gym/gym/core.py", line 104, in reset
    return self._reset()
  File "/mnt/f/_TUTORIALS/ai/doom/gym-doom/ppaquette_gym_doom/doom_env.py", line 244, in _reset
    return self._load_level()
  File "/mnt/f/_TUTORIALS/ai/doom/gym-doom/ppaquette_gym_doom/doom_env.py", line 157, in _load_level
    'singleton lock in memory.')
gym.error.Error: [ViZDoomUnexpectedExitException, ViZDoomErrorException] VizDoom exited unexpectedly. 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.
[2018-05-25 18:21:44,696] Finished writing results. You can upload them to the scoreboard via gym.upload('/mnt/f/_TUTORIALS/ai/doom/code/videos')
(doomenv) hybridsyntax@Blacklynx:/mnt/f/_TUTORIALS/ai/doom/code$

预先感谢

推荐答案

将WSL上的Ubuntu升级到最新版本(18.04)为我解决了这个问题.

Upgrading the Ubuntu on WSL to the latest version (18.04) solved the problem for me.

对我来说,它在WSL上运行以下命令.

For me it was running the following commands on WSL.

sudo -S env RELEASE_UPGRADER_NO_SCREEN=1 do-release-upgrade
sudo apt-get update
sudo apt-get upgrade -y

这篇关于在Linux的Windows子系统上运行vizdoom和pytorch程序时出现多处理锁定错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆