如何在OpenAI健身房的“ CarRacing-v0”环境中解决段错误

时间:2020-02-24 23:36:08

标签: python docker segmentation-fault openai-gym

问题

reset()-在OpenAI健身房中进入CarRacing-v0环境时,如下所示:

import gym
env = gym.make('CarRacing-v0')
env.reset()

我遇到段错误:

Track generation: 1043..1308 -> 265-tiles track
/usr/bin/python3: Relink `/lib/x86_64-linux-gnu/libbsd.so.0' with `/lib/x86_64-linux-gnu/librt.so.1' for IFUNC symbol `clock_gettime'
Segmentation fault (core dumped)

我的调试过程

  • 我认为问题可能出在我的机器上,因为今天早些时候我的系统时钟出现了一些奇怪的问题。因此,我尝试在由不同机器上的相同Docker映像构建的Docker容器中运行相同的命令,并遇到相同的seg错误。因此,我认为这不是我的机器有问题。
  • 我尝试实例化和reset()设置其他几个环境,其中一些在Box2d包内,而另一些在包外。具体来说,我尝试了LunarLander-v2(在Box2d内),Bipedal-Walker-v2(内部)和CartPole-v0(在Box2d外)。一切都像灵符一样工作(在我的机器和另一台机器上)。
  • 这时我怀疑这可能是程序包中的错误,与我为库安装依赖项的特定方式相对应。

其他可能有用或可能不相关的有用上下文

  • 我正在Docker容器中运行代码
  • OpenAI健身环境往往需要安装外部依赖项才能使其正常运行。在这种环境下,我必须安装Box2d软件包和python-opengl软件包。这是从我的Dockerfile复制我的安装的所有相关代码:
    FROM ubuntu

    RUN \
      apt-get update -y && \
      apt-get install -y \
      python-opengl \
      python3 \
      python3-dev \
      python3-pip \
      python3-virtualenv \
      && rm -rf /var/lib/apt/lists/*

    RUN pip3 install --upgrade pip
    RUN pip3 --no-cache-dir install \
        gym \
        box2d-py

什么可能导致此段错误?我的安装有问题吗?还是包装中的错误?

更新

实际上,其他Box2d环境不能像灵符一样工作。它们在IPython中可以正常工作,但是当我在运行相应的代码后退出IPython时,出现了段错误。 CartPole-v0(在Box2d之外)没有这个问题。

0 个答案:

没有答案