Notice
Recent Posts
Recent Comments
Link
관리 메뉴

뛰는 놈 위에 나는 공대생

[Gym] Gymnasium custom environment 본문

프로그래밍 Programming

[Gym] Gymnasium custom environment

보통의공대생 2024. 6. 2. 18:16

기존에 있는 environment에서 설정을 바꾸고 싶어서 기존 environment를 상속한 다음에 custom하는 코드를 만든다.

 

나의 경우에는 initial state를 지정하고 싶어서 따로 만들었다.

 

import gymnasium as gym
import numpy as np
import random
from IPython.display import clear_output
import matplotlib.pyplot as plt
from gym.envs.toy_text.frozen_lake import FrozenLakeEnv

class CustomFrozenLakeEnv(FrozenLakeEnv):
    def __init__(self, is_slippery=False, initial_state=0):
        super(CustomFrozenLakeEnv, self).__init__(is_slippery=is_slippery)
        self.initial_state = initial_state

    def reset(self):
        self.s = self.initial_state
        self.lastaction = None
        return self.s
        
        
env = CustomFrozenLakeEnv(is_slippery=False, initial_state=initial_state)
state = env.reset()

 

 

다음과 같이 reset을 할 때 state를 랜덤 또는 고정된 값으로 내뱉도록 되어있는데 위처럼 작성하면 initial state를 바꿀 수 있다.

또한 위의 toy example을 어떻게 설정했는지 보고 싶으면 github에 있는 코드를 확인해보면 된다.

 

https://github.com/Farama-Foundation/Gymnasium/blob/main/gymnasium/envs/toy_text/frozen_lake.py

 

Gymnasium/gymnasium/envs/toy_text/frozen_lake.py at main · Farama-Foundation/Gymnasium

An API standard for single-agent reinforcement learning environments, with popular reference environments and related utilities (formerly Gym) - Farama-Foundation/Gymnasium

github.com

 

Comments