我正在尝试在OpenAI基线中运行SuperMarioBros环境。通常这些复古环境不同于健身房库所支持的原生attari 2600。
为了使其与基线一起运行,需要使用此链接的帮助代码(https://www.videogames.ai/2019/01/29/Setup-OpenAI-baselines-retro.html)安装retro附带的第三方库。
python -m retro.import .
python -m baselines.run --alg=a2c --env=SuperMarioBros-Nes --gamestate=Level3-1.state --network=cnn --num_env=2 --num_timesteps=1e3但不幸的是,即使在此之后,它也不能运行,并给出了rom找不到的错误。
虽然安装了外部复古后,它应该是可以的,但它需要原始的rom文件直接从游戏模拟器。有没有可能找到转身的方法?还是我错过了什么
Process SpawnProcess-2: Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/retro/__init__.py", line 49, in make retro.data.get_romfile_path(game, inttype)
File "/usr/local/lib/python3.6/dist-packages/retro/data/__init__.py", line 288, in get_romfile_path
raise FileNotFoundError("No romfiles found for game: %s" % game) FileNotFoundError:
No romfiles found for game: SuperMarioBros-Nes发布于 2019-03-23 23:34:18
默认情况下,只有一个游戏ROM是由复古安装的。
你有没有试过这个。它没有使用retro env (或者可能在内部使用,不确定)。但它对我来说是有效的:
https://pypi.org/project/gym-super-mario-bros/
Python 2.7.16 |Anaconda, Inc.| (default, Mar 14 2019, 21:00:58)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from nes_py.wrappers import BinarySpaceToDiscreteSpaceEnv
>>> import gym_super_mario_bros
>>> from gym_super_mario_bros.actions import SIMPLE_MOVEMENT
>>> env = gym_super_mario_bros.make('SuperMarioBros-v0')
>>> env = BinarySpaceToDiscreteSpaceEnv(env, SIMPLE_MOVEMENT)
>>> done = True
>>> for step in range(5000):
... if done:
... state = env.reset()
... state, reward, done, info = env.step(env.action_space.sample())
... env.render()
...注意:我在linux机器上运行(Windows出了点问题)
发布于 2019-03-24 00:44:44
我做了一个hack并且能够在复古(在windows本身)中运行mario。下面是技巧的一步一步:
游戏导入retro def main():env =retro.make(
=‘SuperMarioBros-Nes’) obs = env.reset() while True: obs,rew,done,info = env.step(env.action_space.sample()) env.render() if done: obs = env.reset() env.close() if __name__ == "__main__":main()
一个额外的提示:如果你想在这之后手动玩mario,那么运行下面的命令。(Z表示跳跃,x表示射击):python -m retro.examples.interactive --game SuperMarioBros-Nes Enjoy
https://stackoverflow.com/questions/55309518
复制相似问题