Implementacja agenta Double DQN w PyTorch dla środowiska CartPole-v1 (Gymnasium).
| Plik | Opis |
|---|---|
dqn_cartpole.py |
Główny skrypt treningowy: replay buffer, polityka epsilon-greedy, Double DQN, soft update target network |
play_cartpole.py |
Odtwarzanie wytrenowanego modelu z wizualizacją (render_mode="human") |
cartpole_test.py |
Krótki test środowiska na losowych akcjach |
dqn_model.py |
Przykładowa definicja architektury sieci DQN |
dqn_cartpole.pth |
Zapisane wagi modelu (checkpoint po treningu) |
- Python 3.11
- PyTorch 2.5.1 (
+cu121w aktualnym środowisku) - Gymnasium 1.2.3
- NumPy 2.3.5
- Matplotlib 3.10.8
./rlenv/Scripts/Activate.ps1Jeśli instalujesz zależności ręcznie:
pip install torch torchvision torchaudio gymnasium matplotlib numpyTrening agenta:
python dqn_cartpole.pyOdtwarzanie wytrenowanego modelu (20 epizodów, okno środowiska):
python play_cartpole.pySzybki test środowiska (losowe akcje):
python cartpole_test.pyAktualne wartości w dqn_cartpole.py:
- liczba epizodów:
500 - replay buffer:
10000 - batch size:
64 - gamma:
0.99 - learning rate:
0.001 - epsilon:
1.0 -> 0.01(decay0.995) - soft update:
tau = 0.01 - uczenie co
4kroki środowiska (po zapełnieniu bufora min.1000próbek) - gradient clipping: max norm
1.0 - early stopping: średnia nagroda z ostatnich 100 epizodów >
400
Po spełnieniu warunku early stopping model jest zapisywany do dqn_cartpole.pth.
- logi w konsoli per epizod:
Reward,Avg100,Epsilon - wykres postępu treningu (Matplotlib) po zakończeniu
- aktualizacja pliku checkpointu:
dqn_cartpole.pth
play_cartpole.pywymaga istniejącego plikudqn_cartpole.pth.- Jeśli renderowanie nie działa, upewnij się, że środowisko ma dostęp do okna GUI (lokalna sesja desktopowa).