Python 超级机器人与OpenAI基线,如何?
我试图在OpenAI基线中运行SuperMarioBros环境。通常,这些复古环境不同于健身房图书馆支持的本地attari 2600 为了使其与基线一起运行,需要安装一个第三方库,该库随代码一起使用,并从该链接获得帮助() 但不幸的是,即使在这之后,它也没有运行,并且没有找到rom的错误 虽然在安装外部复古,它应该是好的,但它需要原始rom文件直接从游戏模拟器。有什么办法可以扭转局面吗?还是我在这里遗漏了什么Python 超级机器人与OpenAI基线,如何?,python,openai-gym,Python,Openai Gym,我试图在OpenAI基线中运行SuperMarioBros环境。通常,这些复古环境不同于健身房图书馆支持的本地attari 2600 为了使其与基线一起运行,需要安装一个第三方库,该库随代码一起使用,并从该链接获得帮助() 但不幸的是,即使在这之后,它也没有运行,并且没有找到rom的错误 虽然在安装外部复古,它应该是好的,但它需要原始rom文件直接从游戏模拟器。有什么办法可以扭转局面吗?还是我在这里遗漏了什么 Process SpawnProcess-2: Traceback (most
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
默认情况下,retro只安装1个游戏ROM 你试过这个吗。它没有使用retro env(或者可能在内部使用,不确定)。但它对我有用:
注意:我在linux机器上运行(Windows遇到了麻烦)我做了一次黑客攻击,并能够在retro中运行mario(在Windows本身中)。下面是一步一步的技巧:
python-m retro.examples.interactive——游戏Supermarios Nes
[享受]
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
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()
...
import retro
def main():
env = retro.make(game='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()