[PYTHON] Verstärkungslernen 37 Starten Sie automatisch mit Ataris Wrapper

Es ist für KI-Anfänger gedacht, von Schülern der Mittelstufe bis zu Studenten der Universität.

Wenn ich versuche, OpenAIs ATARI zu verwenden, möchte ich einen Wrapper, der die Besonderheiten des Spiels abdeckt. Beispielsweise wird beim Blockbrechen der Lebenspunkt zunächst auf 5 gesetzt, aber das Spiel funktioniert nur, wenn Sie zu Beginn den Feuerknopf drücken und wenn der Lebenspunkt abnimmt (wenn er fehlschlägt). Wenn Sie dies nicht überschreiten, wird es wie ein Idiot sein, dass maschinelles Lernen überhaupt nicht voranschreitet. Persönlich ist es Zeitverschwendung. Zunächst wird ein Wrapper namens FireResetEnv vorbereitet. Wenn Sie jedoch den Block brechen, bewegt er sich nicht jedes Mal, wenn Ihr Leben abnimmt. Wenn Sie also einmal versagen, bleibt er unverändert. Also habe ich einen Wrapper wie den folgenden geschrieben.

class FireResetEnvAuto(gym.Wrapper):
    def __init__(self, env):
        """Take action on reset for envs that are fixed until firing."""
        gym.Wrapper.__init__(self, env)
        assert env.unwrapped.get_action_meanings()[1] == 'FIRE'
        assert len(env.unwrapped.get_action_meanings()) >= 3
        self.lives = 0

    def reset(self, **kwargs):
        self.env.reset(**kwargs)
        self.lives = self.env.unwrapped.ale.lives()
        obs, _, done, info = self.env.step(1)
        if done or info.get('needs_reset', False):
            self.env.reset(**kwargs)
        obs, _, done, info = self.env.step(2)
        if done or info.get('needs_reset', False):
            self.env.reset(**kwargs)
        return obs

    def step(self, ac):
        lives = self.env.unwrapped.ale.lives()
        if lives<self.lives:
            self.lives=lives
            return self.env.step(1)
        return self.env.step(ac)

Die meisten sind chainerrl / wrapper / atari_wrapper.py Ich habe nur ein wenig hinzugefügt. Das ist Chokozainerrl.

Recommended Posts

Verstärkungslernen 37 Starten Sie automatisch mit Ataris Wrapper
Verbessertes Lernen ab Python
Verstärkungslernen 34 Erstellen Sie fortlaufende Agentenvideos
Lernen stärken 13 Probieren Sie Mountain_car mit ChainerRL aus.
Machen Sie ASCII-Kunst mit tiefem Lernen
Entdecken Sie das Labyrinth mit erweitertem Lernen
Bringen Sie Menschen mit Deep Learning zum Lächeln
Machen Sie Scrapy exe mit Pyinstaller
Erstellen Sie einen Audio-Interface-Controller mit pyusb (1).
[Python] Probieren Sie mit Keras-RL ganz einfach erweitertes Lernen (DQN) aus
Stärkung des Lernens 11 Probieren Sie OpenAI Acrobot mit ChainerRL aus.
Stellen Sie ein Überwachungsgerät mit einem Infrarotsensor her
Stärkung des Lernens 12 ChainerRL-Kurzanleitung Windows-Version
Herausforderung Blockbruch mit Actor-Critic-Modell zur Stärkung des Lernens
[Mac] Ich habe versucht, das Lernen mit Open AI Baselines zu stärken
[Lernnotiz] So erstellen Sie eine App mit Django ~ Bis Hello World angezeigt wird ~
[Lernnotiz] So erstellen Sie eine Anwendung mit Django ~ Von der virtuellen Umgebung bis zum Pushing zu Github ~