Environnements Gymnasium personnalisés
Sous-classe gym.Env, espaces d’observation et d’action, step/reset/render, enregistrement d’un environnement personnalisé.
Environnements Gymnasium personnalisés est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.
Qu'est-ce que Gymnasium ?
Gymnasium (le successeur actuellement maintenu de OpenAI Gym) est l'API standard des environnements RL. Tout agent qui respecte son interface fonctionne avec n'importe quel environnement compatible ; créer votre propre environnement permet donc d'utiliser RL pour des problèmes personnalisés.
pip install gymnasium
import gymnasium as gymCréer une sous-classe de gymnasium.Env
Un environnement personnalisé dérive de gymnasium.Env et implémente quatre éléments : les espaces d'actions et d'observations, ainsi que reset et step. Ce contrat est tout ce dont un agent a besoin.
class GridWorld(gym.Env):
def __init__(self):
super().__init__()L'espace d'actions
action_space indique quelles actions sont valides. Discrete(n) signifie qu'il existe n choix (par exemple, haut, bas, gauche et droite) ; Box définit des plages continues pour des actions comme le pilotage.
self.action_space = gym.spaces.Discrete(4) # 4 movesL'espace d'observations
observation_space décrit ce que voit l'agent. Un espace Box définit la forme et les bornes de valeurs du vecteur d'observation, afin que les algorithmes connaissent les dimensions d'entrée.
self.observation_space = gym.spaces.Box(
low=0, high=10, shape=(2,), dtype=float
) # agent (x, y) positionLa méthode reset
reset démarre un nouvel épisode et renvoie un tuple (observation, info). Elle accepte un seed pour garantir la reproductibilité. Renvoyez toujours l'observation initiale ici.
def reset(self, seed=None, options=None):
super().reset(seed=seed)
self.pos = [0, 0]
obs = self._get_obs()
info = {}
return obs, infoLa méthode step
step(action) fait avancer l'environnement d'un pas. Elle renvoie cinq valeurs : (obs, reward, terminated, truncated, info). Il est essentiel de respecter cette signature pour assurer la compatibilité.
def step(self, action):
self._move(action)
obs = self._get_obs()
...Fin naturelle ou interruption forcée
Deux indicateurs distincts : terminated signifie que la tâche s'est terminée naturellement (objectif atteint ou échec) ; truncated signifie qu'elle a été interrompue (par exemple, à cause d'une limite de temps). Cette distinction permet aux algorithmes de traiter chaque cas correctement.
terminated = (self.pos == self.goal)
truncated = (self.steps >= self.max_steps)
reward = 1.0 if terminated else -0.01
return obs, reward, terminated, truncated, {}Concevoir la récompense
La fonction de récompense définit l'objectif. Concevez-la avec soin : une petite pénalité à chaque pas, associée à un bonus pour l'objectif atteint, encourage l'agent à atteindre rapidement la cible. Une mauvaise conception de la récompense est la cause la plus courante des échecs en RL.
Enregistrer l'environnement
Enregistrez votre environnement avec un ID afin de pouvoir le créer via gym.make, conformément à la convention des environnements intégrés.
gym.register(id="GridWorld-v0", entry_point=GridWorld)
env = gym.make("GridWorld-v0")L'utiliser avec un agent
Comme il respecte l'API standard, votre environnement personnalisé s'intègre directement à des bibliothèques comme Stable-Baselines3, sans code d'adaptation supplémentaire.
from stable_baselines3 import PPO
env = gym.make("GridWorld-v0")
model = PPO("MlpPolicy", env, verbose=1)
model.learn(total_timesteps=50_000)La boucle d'interaction standard
Toute boucle RL se présente de la même façon : appelez reset pour obtenir la première observation, puis choisissez à plusieurs reprises une action, appelez step et arrêtez-vous lorsque l'épisode est terminé naturellement ou interrompu. Cette uniformité est précisément la raison d'être de 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 truncatedVérification rapide
Testez vos connaissances sur Gymnasium.
Récapitulatif : environnements Gymnasium personnalisés
Vous avez créé un environnement personnalisé en dérivant de gymnasium.Env, en définissant action_space et observation_space, en implémentant reset() (qui renvoie obs, info) et step() (qui renvoie obs, reward, terminated, truncated, info), et en concevant une récompense. Le respect de l'API standard permet à toute bibliothèque RL de l'utiliser pour l'entraînement.
Questions Fréquemment Posées
La leçon « Environnements Gymnasium personnalisés » est-elle gratuite ?
Oui — le texte complet de « Environnements Gymnasium personnalisés » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Environnements Gymnasium personnalisés » ?
Sous-classe gym.Env, espaces d’observation et d’action, step/reset/render, enregistrement d’un environnement personnalisé. Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Learn AI with Python ?
Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Environnements Gymnasium personnalisés » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?
Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Méthodes de gradient de politique : REINFORCE
- Méthodes acteur-critique (A2C)
- Optimisation proximale de politique (PPO)
- Environnements Gymnasium personnalisés