Как устранить ошибку сегмента в среде CarRacing-v0 в тренажерном зале OpenAI - PullRequest
0 голосов
/ 25 февраля 2020

Проблема

Когда reset() -ing-окружение CarRacing-v0 в тренажерном зале OpenAI выглядит следующим образом:

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 на другом компьютере, и получил ту же ошибку сегмента. Так что я не думаю, что это проблема с моей машиной.
  • Я пытался создать и 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 НЕ работают как брелок. Они отлично работают в I Python, но когда я выхожу из I Python после выполнения соответствующего кода, я получаю ошибку сегмента. CartPole-v0 (за пределами Box2d), однако, этой проблемы не существует.

...