Tilpassede Gymnasium-miljøer
gym.Env-subklasse, observations- og action spaces, step/reset/render, registrering af custom env.
Tilpassede Gymnasium-miljøer er en gratis Lær AI med Python-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Lær AI med Python, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Lær AI med Python-kurset indeholder 4 lektioner i alt.
Hvad er Gymnasium?
Gymnasium (den vedligeholdte efterfølger til OpenAI Gym) er standard-API'et til miljøer for forstærkningslæring. Enhver agent, der følger dets grænseflade, fungerer med ethvert kompatibelt miljø, så du kan bruge forstærkningslæring på specialtilpassede problemer ved at bygge dit eget.
pip install gymnasium
import gymnasium as gymOprettelse af en underklasse af gymnasium.Env
Et specialtilpasset miljø opretter en underklasse af gymnasium.Env og implementerer fire ting: handlings- og observationsrummene samt reset og step. Denne kontrakt er alt, hvad en agent har brug for.
class GridWorld(gym.Env):
def __init__(self):
super().__init__()Handlingsrummet
action_space angiver, hvilke handlinger der er gyldige. Discrete(n) betyder n valgmuligheder (f.eks. op/ned/venstre/højre); Box definerer kontinuerte intervaller for handlinger som styring.
self.action_space = gym.spaces.Discrete(4) # 4 movesObservationsrummet
observation_space beskriver, hvad agenten ser. Et Box-rum angiver form og værdigrænser for observationsvektoren, så algoritmerne kender dimensionerne af inddataene.
self.observation_space = gym.spaces.Box(
low=0, high=10, shape=(2,), dtype=float
) # agent (x, y) positionreset-metoden
reset starter en ny episode og returnerer en tupel (observation, info). Den accepterer et seed for reproducerbarhed. Returnér altid den indledende observation her.
def reset(self, seed=None, options=None):
super().reset(seed=seed)
self.pos = [0, 0]
obs = self._get_obs()
info = {}
return obs, infostep-metoden
step(action) fører miljøet ét tidssteg frem. Den returnerer fem værdier: (obs, reward, terminated, truncated, info). Det er afgørende for kompatibiliteten, at denne signatur er korrekt.
def step(self, action):
self._move(action)
obs = self._get_obs()
...terminated kontra truncated
To separate indikatorer: terminated betyder, at opgaven sluttede naturligt (målet blev nået, eller opgaven mislykkedes); truncated betyder, at den blev afbrudt (f.eks. på grund af en tidsgrænse). Ved at holde dem adskilt kan algoritmerne håndtere hver af dem korrekt.
terminated = (self.pos == self.goal)
truncated = (self.steps >= self.max_steps)
reward = 1.0 if terminated else -0.01
return obs, reward, terminated, truncated, {}Udformning af belønningen
Belønningsfunktionen definerer målet. Udform den omhyggeligt: En lille straf pr. trin plus en målbonus tilskynder agenten til at nå målet hurtigt. Dårlig belønningsudformning er den mest almindelige årsag til, at forstærkningslæring mislykkes.
Registrering af miljøet
Registrér dit env med et ID, så du kan oprette det via gym.make i overensstemmelse med konventionen for indbyggede miljøer.
gym.register(id="GridWorld-v0", entry_point=GridWorld)
env = gym.make("GridWorld-v0")Brug af det sammen med en agent
Fordi det følger standard-API'et, kan dit specialtilpassede env kobles direkte til biblioteker som Stable-Baselines3 uden behov for ekstra forbindelseskode.
from stable_baselines3 import PPO
env = gym.make("GridWorld-v0")
model = PPO("MlpPolicy", env, verbose=1)
model.learn(total_timesteps=50_000)Den standardiserede interaktionsløkke
Alle løkker for forstærkningslæring ser ens ud: Nulstil miljøet for at få den første observation, vælg derefter gentagne gange en handling, kald step, og stop, når terminated eller truncated indtræffer. Denne ensartethed er hele formålet med Gymnasium.
obs, info = env.reset()
done = False
while not done:
action = env.action_space.sample()
obs, reward, terminated, truncated, info = env.step(action)
done = terminated or truncatedHurtigt tjek
Afprøv din viden om Gymnasium.
Opsamling: Specialtilpassede Gymnasium-miljøer
Du byggede et specialtilpasset env ved at oprette en underklasse af gymnasium.Env, definere action_space og observation_space, implementere reset() (returnerer obs, info) og step() (returnerer obs, reward, terminated, truncated, info) samt udforme en belønning. Hvis du følger standard-API'et, kan alle biblioteker til forstærkningslæring træne på det.
Lær Python med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 53
- Lektioner
- 225
Ofte stillede spørgsmål
Er lektionen “Tilpassede Gymnasium-miljøer” gratis?
Ja — alle 3 lektioner i læringssporet Lær AI med Python, inklusive “Tilpassede Gymnasium-miljøer”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Lær AI med Python-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Tilpassede Gymnasium-miljøer”?
gym.Env-subklasse, observations- og action spaces, step/reset/render, registrering af custom env. Du øver dig i Lær AI med Python med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Lær AI med Python?
Der kræves ingen tidligere erfaring. Lær AI med Python på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “Tilpassede Gymnasium-miljøer”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Lær AI med Python-lektion?
Ja. Alle Lær AI med Python-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Policy gradient-metoder: REINFORCE
- Actor-critic-metoder (A2C)
- Proximal Policy Optimization (PPO)
- Tilpassede Gymnasium-miljøer