| from stable_baselines3 import A2C |
| from stable_baselines3 import PPO |
| from tetris_gym.wrappers.observation import ExtendedObservationWrapper |
| from agent.MyWrapper import MyWrapper |
| from stable_baselines3 import DQN |
|
|
| class Agent: |
| """ |
| Az Agent tanítása során PPO-t használtam 2M steppel. Reward function ként az alábbi cikkhez hasonlót használtam. |
| http://cs231n.stanford.edu/reports/2016/pdfs/121_Report.pdf |
| """ |
|
|
| def __init__(self, env) -> None: |
| """ |
| A konsztruktorban van lehetőség például a modell betöltésére |
| vagy a környezet wrapper-ekkel való kiterjesztésére. |
| """ |
| |
| self.model = PPO.load("agent/A2CPaper") |
| |
| |
| |
| |
| |
| self.observation_wrapper = MyWrapper(env) |
|
|
|
|
| def act(self, observation): |
| """ |
| A megfigyelés alapján visszaadja a következő lépést. |
| Ez a függvény fogja megadni az ágens működését. |
| """ |
|
|
| |
| |
| |
|
|
| return self.model.predict(observation, deterministic=True) |
| |