Learn AI with Python · Aula

Ambientes personalizados do Gymnasium

Subclasse gym.Env, espaços de observação/ação, step/reset/render e registro de um ambiente personalizado.

Aula 4 de 413 etapas

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 gym

Criando 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 moves

O 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) position

O 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, info

O 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 truncated

Verificaçã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.

Grátis para começar

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

  1. Métodos de gradiente de política: REINFORCE
  2. Métodos ator-crítico (A2C)
  3. Otimização proximal de política (PPO)
  4. Ambientes personalizados do Gymnasium
← Voltar para Learn AI with Python