代码之家  ›  专栏  ›  技术社区  ›  user19826638

环境`MiniWorld拾取对象`不存在

  •  0
  • user19826638  · 技术社区  · 2 年前

    我正在做一个RL项目,我需要尝试一下我对迷你世界环境的想法。安装完体育馆和迷你世界后,当我试图加载环境时,它显示了以下错误,

    enter image description here

    我如何摆脱这个错误并加载迷你世界环境?这是我在集群上工作的额外信息。我不知道这是否是解决问题的有价值的信息,因为我可以在我的机器上本地加载环境。

    下面附上一个最小可重复代码,

    import gymnasium
    env = gymnasium.make('MiniWorld-PickupObjects-v0')#, 
    render_mode='human', domain_rand=False)
    for i_episode in range(50):
      env.reset()
      done = False
      episode_Step = 0
      while not done:
        action = env.action_space.sample()
        next_state, reward, terminated, truncated, info = env.step(action)
        done = terminated + truncated
        env.render()
    env.close()
    
    1 回复  |  直到 2 年前
        1
  •  0
  •   doneforaiur    2 年前

    要获取可用的env:

    print(gymnasium.envs.registry.keys())
    

    它在新安装时输出这些:

    CartPole-v0
    CartPole-v1
    MountainCar-v0
    MountainCarContinuous-v0
    Pendulum-v1
    Acrobot-v1
    phys2d/CartPole-v0
    phys2d/CartPole-v1
    phys2d/Pendulum-v0
    LunarLander-v2
    LunarLanderContinuous-v2
    BipedalWalker-v3
    BipedalWalkerHardcore-v3
    CarRacing-v2
    Blackjack-v1
    FrozenLake-v1
    FrozenLake8x8-v1
    CliffWalking-v0
    Taxi-v3
    tabular/Blackjack-v0
    tabular/CliffWalking-v0
    Reacher-v2
    Reacher-v4
    Pusher-v2
    Pusher-v4
    InvertedPendulum-v2
    InvertedPendulum-v4
    InvertedDoublePendulum-v2
    InvertedDoublePendulum-v4
    HalfCheetah-v2
    HalfCheetah-v3
    HalfCheetah-v4
    Hopper-v2
    Hopper-v3
    Hopper-v4
    Swimmer-v2
    Swimmer-v3
    Swimmer-v4
    Walker2d-v2
    Walker2d-v3
    Walker2d-v4
    Ant-v2
    Ant-v3
    Ant-v4
    Humanoid-v2
    Humanoid-v3
    Humanoid-v4
    HumanoidStandup-v2
    HumanoidStandup-v4
    GymV21Environment-v0
    GymV26Environment-v0
    

    不包含 MiniWorld-PickupObjects-v0 MiniWorld-PickupObjects

    根据 doc s、 你必须注册一个新的env才能与一起使用 gymnasium.make() 。因此,注册一个新的env或使用上面列出的任何env。

        2
  •  0
  •   Kallinteris Andreas    2 年前
    pip install minigrid
    

    然后

    import gymnasium
    import minigrid
    env = gymnasium.make('MiniWorld-PickupObjects-v0')#, 
    
        3
  •  0
  •   user19826638    2 年前

    我终于从MiniWorld Github页面上找到了运行脚本的方法,如下所示,

    xvfb-run -a -s "-screen 0 1024x768x24 -ac +extension GLX +render -noreset" python3 your_script.py
    

    这是脚本在集群中运行的时候。否则,简单的运行就可以了。这种方法也适用于sbatch。

    为了在交互式中运行,还可以使用x11转发。

    推荐文章