Ambientes personalizados do Gymnasium
Subclasse gym.Env, espaços de observação/ação, step/reset/render e registro de um ambiente personalizado.
Ambientes personalizados do Gymnasium é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.
O que é o Gymnasium?
O Gymnasium (sucessor mantido do OpenAI Gym) é a API padrão para ambientes de RL. Qualquer agente que siga sua interface funciona com qualquer ambiente compatível; assim, criar seu próprio ambiente permite usar RL em problemas personalizados.
pip install gymnasium
import gymnasium as gymCriando uma subclasse de gymnasium.Env
Um ambiente personalizado cria uma subclasse de gymnasium.Env e implementa quatro elementos: os espaços de ações e observações, além de reset e step. Esse contrato é tudo de que um agente precisa.
class GridWorld(gym.Env):
def __init__(self):
super().__init__()O espaço de ações
O action_space declara quais ações são válidas. Discrete(n) significa n opções (por exemplo, cima/baixo/esquerda/direita); Box define intervalos contínuos para ações como dirigir.
self.action_space = gym.spaces.Discrete(4) # 4 movesO espaço de observações
O observation_space descreve o que o agente vê. Um espaço Box define o formato e os limites de valores do vetor de observação, para que os algoritmos conheçam as dimensões da entrada.
self.observation_space = gym.spaces.Box(
low=0, high=10, shape=(2,), dtype=float
) # agent (x, y) positionO método reset
reset inicia um novo episódio e retorna uma tupla (observation, info). Ele aceita um seed para garantir a reprodutibilidade. Sempre retorne aqui a observação inicial.
def reset(self, seed=None, options=None):
super().reset(seed=seed)
self.pos = [0, 0]
obs = self._get_obs()
info = {}
return obs, infoO método step
step(action) avança o ambiente em um instante. Ele retorna cinco valores: (obs, reward, terminated, truncated, info). Obter essa assinatura corretamente é essencial para a compatibilidade.
def step(self, action):
self._move(action)
obs = self._get_obs()
...Encerrado versus truncado
São dois sinalizadores separados: terminated significa que a tarefa terminou naturalmente (o objetivo foi alcançado ou houve falha); truncated significa que ela foi interrompida (por exemplo, pelo limite de tempo). Separá-los permite que os algoritmos tratem cada caso corretamente.
terminated = (self.pos == self.goal)
truncated = (self.steps >= self.max_steps)
reward = 1.0 if terminated else -0.01
return obs, reward, terminated, truncated, {}Projetando a recompensa
A função de recompensa define o objetivo. Defina-a cuidadosamente: uma pequena penalidade por passo, somada a um bônus por alcançar o objetivo, incentiva chegar rapidamente ao alvo. Um projeto ruim da recompensa é a causa mais comum de falhas em RL.
Registrando o ambiente
Registre seu ambiente com um ID para poder criá-lo por meio de gym.make, seguindo a convenção dos ambientes integrados.
gym.register(id="GridWorld-v0", entry_point=GridWorld)
env = gym.make("GridWorld-v0")Usando-o com um agente
Como segue a API padrão, seu ambiente personalizado se conecta diretamente a bibliotecas como Stable-Baselines3, sem necessidade de adaptação adicional.
from stable_baselines3 import PPO
env = gym.make("GridWorld-v0")
model = PPO("MlpPolicy", env, verbose=1)
model.learn(total_timesteps=50_000)O ciclo de interação padrão
Todo ciclo de RL segue o mesmo padrão: use reset para obter a primeira observação, depois escolha repetidamente uma ação, chame step e pare quando ocorrer terminated ou truncated. Essa uniformidade é a finalidade central do 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 truncatedVerificação rápida
Teste seus conhecimentos sobre o Gymnasium.
Recapitulação: ambientes personalizados do Gymnasium
Você criou um ambiente personalizado usando uma subclasse de gymnasium.Env, definindo action_space e observation_space, implementando reset() (que retorna obs, info) e step() (que retorna obs, reward, terminated, truncated, info) e projetando uma recompensa. Seguir a API padrão permite que qualquer biblioteca de RL treine nesse ambiente.
Aprenda Python com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 53
- Aulas
- 225
Perguntas Frequentes
A aula “Ambientes personalizados do Gymnasium” é grátis?
Sim — o texto completo de “Ambientes personalizados do Gymnasium” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.
O que vou aprender em “Ambientes personalizados do Gymnasium”?
Subclasse gym.Env, espaços de observação/ação, step/reset/render e registro de um ambiente personalizado. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Learn AI with Python?
Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Ambientes personalizados do Gymnasium”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Learn AI with Python?
Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Métodos de gradiente de política: REINFORCE
- Métodos ator-crítico (A2C)
- Otimização proximal de política (PPO)
- Ambientes personalizados do Gymnasium