Interakcja ze środowiskami Gymnasium

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Fouad Trad

Machine Learning Engineer

Gymnasium

  • Standardowa biblioteka do zadań RL
  • Abstrahuje złożoność problemów RL
  • Udostępnia wiele środowisk RL

Obraz przedstawiający logo Gymnasium oraz przykłady dostępnych środowisk.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Kluczowe środowiska Gymnasium

CartPole: Agent musi utrzymać równowagę tyczki na poruszającym się wózku GIF przedstawiający środowisko CartPole.

MountainCar: Agent musi wjechać samochodem na stromą górę GIF przedstawiający środowisko MountainCar.

FrozenLake: Agent musi przejść przez zamarznięte jezioro z dziurami GIF przedstawiający środowisko FrozenLake.

Taxi: Odbieranie i wysadzanie pasażerów GIF przedstawiający środowisko Taxi.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Interfejs Gymnasium

 

  • Ujednolicony dla wszystkich środowisk
  • Zawiera funkcje i metody do:
    • Inicjalizacji środowiska
    • Wizualnej reprezentacji środowiska
    • Wykonywania akcji
    • Obserwowania wyników

GIF przedstawiający środowisko CartPole.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Tworzenie i inicjalizacja środowiska

import gymnasium as gym

env = gym.make('CartPole', render_mode='rgb_array')
state, info = env.reset(seed=42) print(state)
[-0.04405273  0.0242996  -0.04377224 -0.01767325]
1 https://gymnasium.farama.org/environments/classic_control/cart_pole/
Uczenie przez wzmacnianie z Gymnasium w Pythonie

Wizualizacja stanu

 

import matplotlib.pyplot as plt

state_image = env.render()
plt.imshow(state_image)

plt.show()

Wykres stanu początkowego w środowisku CartPole.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Wizualizacja stanu

 

import matplotlib.pyplot as plt

def render(): state_image = env.render() plt.imshow(state_image) plt.show()
# Call function render()

Wykres stanu początkowego w środowisku CartPole.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Wykonywanie akcji

  • 0: ruch w lewo
  • 1: ruch w prawo
action = 1 
state, reward, terminated, truncated, info = env.step(action)




Uczenie przez wzmacnianie z Gymnasium w Pythonie

Wykonywanie akcji

  • 0: ruch w lewo
  • 1: ruch w prawo
action = 1
state, reward, terminated, _, _ = env.step(action)


print("State: ", state) print("Reward: ", reward) print("Terminated: ", terminated)
State:  [-0.04356674  0.22002107 -0.0441257  -0.3238392 ]
Reward:  1.0
Terminated:  False
Uczenie przez wzmacnianie z Gymnasium w Pythonie

Pętle interakcji

while not terminated:
    action = 1 # Move to the right
    state, reward, terminated, _, _ = env.step(action)
    render()

Obraz przedstawiający cztery różne stany środowiska CartPole zarejestrowane podczas pętli interakcji.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Czas na ćwiczenia!

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Preparing Video For Download...