Basi di Gymnasium
Gymnasium è un toolkit open-source progettato per lo sviluppo e la valutazione di agenti di apprendimento per rinforzo (RL). Fornisce una raccolta di ambienti standard per testare algoritmi e addestrare agenti in modo efficiente.
Caratteristiche principali
- API standardizzata: garantisce la compatibilità tra diversi ambienti;
- Varietà di ambienti: supporta problemi di controllo classici, giochi Atari e simulazioni di robotica;
- Integrazione semplice: compatibile con framework di deep learning come TensorFlow e PyTorch.
Flusso di lavoro
Un tipico flusso di lavoro in Gymnasium è il seguente:
1. Importazione della libreria
import gymnasium as gym
Dopo la dismissione della libreria originale gym
, è ora consigliato utilizzare gymnasium
— un fork di gym ben mantenuto e attivamente sviluppato. Nonostante il cambio di nome, la libreria viene ancora comunemente importata con l'alias gym
per garantire la compatibilità con versioni precedenti e per comodità.
2. Creazione di un ambiente
env = gym.make("CartPole-v1")
La funzione gym.make()
istanzia un ambiente utilizzando il suo identificatore univoco (ad esempio, "CartPole-v1"
). È anche possibile passare parametri di configurazione aggiuntivi a seconda delle esigenze dell'ambiente.
3. Reset dell'ambiente
observation, info = env.reset()
Prima di interagire con l'ambiente, è necessario riportarlo allo stato iniziale tramite env.reset()
. Questo restituisce:
observation
: lo stato iniziale dell'ambiente;info
: dati ausiliari che possono includere metadati o configurazioni specifiche dello stato.
4. Interazione con l'ambiente
action = env.action_space.sample()
observation, reward, terminated, truncated, info = env.step(action)
Nella prima riga, viene scelta un'azione casuale dallo spazio delle azioni tramite env.action_space.sample()
. Lo spazio delle azioni definisce l'insieme di tutte le possibili azioni che l'agente può compiere nell'ambiente. Inoltre, l'ambiente fornisce lo spazio delle osservazioni, accessibile tramite env.observation_space
, che rappresenta l'insieme di tutte le possibili osservazioni (stati) che l'agente può incontrare.
Nella seconda riga, l'azione scelta viene passata a env.step(action)
, che esegue l'azione e restituisce i seguenti valori:
observation
: il nuovo stato dell'agente dopo aver eseguito l'azione;reward
: la ricompensa ricevuta per l'azione eseguita;terminated
: booleano che indica se l'episodio è terminato (cioè se il compito è stato completato);truncated
: booleano che indica se l'episodio è stato interrotto prematuramente (a causa di limiti di tempo o altri vincoli);info
: informazioni diagnostiche aggiuntive, spesso utilizzate per il debug o la registrazione.
5. Chiusura dell'ambiente
env.close()
Se l'ambiente utilizza risorse esterne (ad esempio, finestre di rendering o simulazioni), è necessario chiuderlo tramite env.close()
.
Se desideri approfondire le funzionalità offerte dalla libreria Gymnasium, visita their website.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
What are some popular environments available in Gymnasium?
Can you explain the difference between terminated and truncated in more detail?
How do I integrate Gymnasium with TensorFlow or PyTorch?
Awesome!
Completion rate improved to 2.7
Basi di Gymnasium
Scorri per mostrare il menu
Gymnasium è un toolkit open-source progettato per lo sviluppo e la valutazione di agenti di apprendimento per rinforzo (RL). Fornisce una raccolta di ambienti standard per testare algoritmi e addestrare agenti in modo efficiente.
Caratteristiche principali
- API standardizzata: garantisce la compatibilità tra diversi ambienti;
- Varietà di ambienti: supporta problemi di controllo classici, giochi Atari e simulazioni di robotica;
- Integrazione semplice: compatibile con framework di deep learning come TensorFlow e PyTorch.
Flusso di lavoro
Un tipico flusso di lavoro in Gymnasium è il seguente:
1. Importazione della libreria
import gymnasium as gym
Dopo la dismissione della libreria originale gym
, è ora consigliato utilizzare gymnasium
— un fork di gym ben mantenuto e attivamente sviluppato. Nonostante il cambio di nome, la libreria viene ancora comunemente importata con l'alias gym
per garantire la compatibilità con versioni precedenti e per comodità.
2. Creazione di un ambiente
env = gym.make("CartPole-v1")
La funzione gym.make()
istanzia un ambiente utilizzando il suo identificatore univoco (ad esempio, "CartPole-v1"
). È anche possibile passare parametri di configurazione aggiuntivi a seconda delle esigenze dell'ambiente.
3. Reset dell'ambiente
observation, info = env.reset()
Prima di interagire con l'ambiente, è necessario riportarlo allo stato iniziale tramite env.reset()
. Questo restituisce:
observation
: lo stato iniziale dell'ambiente;info
: dati ausiliari che possono includere metadati o configurazioni specifiche dello stato.
4. Interazione con l'ambiente
action = env.action_space.sample()
observation, reward, terminated, truncated, info = env.step(action)
Nella prima riga, viene scelta un'azione casuale dallo spazio delle azioni tramite env.action_space.sample()
. Lo spazio delle azioni definisce l'insieme di tutte le possibili azioni che l'agente può compiere nell'ambiente. Inoltre, l'ambiente fornisce lo spazio delle osservazioni, accessibile tramite env.observation_space
, che rappresenta l'insieme di tutte le possibili osservazioni (stati) che l'agente può incontrare.
Nella seconda riga, l'azione scelta viene passata a env.step(action)
, che esegue l'azione e restituisce i seguenti valori:
observation
: il nuovo stato dell'agente dopo aver eseguito l'azione;reward
: la ricompensa ricevuta per l'azione eseguita;terminated
: booleano che indica se l'episodio è terminato (cioè se il compito è stato completato);truncated
: booleano che indica se l'episodio è stato interrotto prematuramente (a causa di limiti di tempo o altri vincoli);info
: informazioni diagnostiche aggiuntive, spesso utilizzate per il debug o la registrazione.
5. Chiusura dell'ambiente
env.close()
Se l'ambiente utilizza risorse esterne (ad esempio, finestre di rendering o simulazioni), è necessario chiuderlo tramite env.close()
.
Se desideri approfondire le funzionalità offerte dalla libreria Gymnasium, visita their website.
Grazie per i tuoi commenti!