[Gym] Gymnasium custom environment

2024. 6. 2. 18:16·프로그래밍 Programming

기존에 있는 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

 

저작자표시 비영리 변경금지 (새창열림)

'프로그래밍 Programming' 카테고리의 다른 글

[에러기록] libcuda.so is not in found but libcuda.so.1  (0) 2024.11.08
[WSL] WSL 2 설치 및 설정  (0) 2024.09.03
[Python] 각종 라이브러리 버전체크 방법  (0) 2024.05.16
[에러기록] XlaRuntimeError: UNIMPLEMENTED: Kernel launch needs more blocks (3199360032) than allowed by hardware (2147483647).  (0) 2024.05.14
[Julia] 변수 Variables  (0) 2024.04.30
'프로그래밍 Programming' 카테고리의 다른 글
  • [에러기록] libcuda.so is not in found but libcuda.so.1
  • [WSL] WSL 2 설치 및 설정
  • [Python] 각종 라이브러리 버전체크 방법
  • [에러기록] XlaRuntimeError: UNIMPLEMENTED: Kernel launch needs more blocks (3199360032) than allowed by hardware (2147483647).
보통의공대생
보통의공대생
수학,프로그래밍,기계항공우주 등 공부하는 기록들을 남깁니다.
  • 보통의공대생
    뛰는 놈 위에 나는 공대생
    보통의공대생
  • 전체
    오늘
    어제
    • 분류 전체보기 (458)
      • 공지 (1)
      • 영어 공부 English Study (40)
        • 텝스 TEPS (7)
        • 글 Article (21)
        • 영상 Video (10)
      • 연구 Research (99)
        • 최적화 Optimization (3)
        • 데이터과학 Data Science (7)
        • 인공지능 Artificial Intelligent (40)
        • 제어 Control (45)
      • 프로그래밍 Programming (103)
        • 매트랩 MATLAB (25)
        • 파이썬 Python (33)
        • 줄리아 Julia (2)
        • C++ (3)
        • 리눅스 우분투 Ubuntu (6)
      • 항공우주 Aeronautical engineeri.. (21)
        • 항법 Navigation (0)
        • 유도 Guidance (0)
      • 기계공학 Mechanical engineering (13)
        • 열역학 Thermodynamics (0)
        • 고체역학 Statics & Solid mechan.. (10)
        • 동역학 Dynamics (1)
        • 유체역학 Fluid Dynamics (0)
      • 수학 Mathematics (34)
        • 선형대수학 Linear Algebra (18)
        • 미분방정식 Differential Equation (3)
        • 확률및통계 Probability & Sta.. (2)
        • 미적분학 Calculus (1)
        • 복소해석학 Complex Analysis (5)
        • 실해석학 Real Analysis (0)
      • 수치해석 Numerical Analysis (21)
      • 확률 및 랜덤프로세스 Random process (2)
      • 추론 & 추정 이론 Estimation (3)
      • 기타 (26)
        • 설계 프로젝트 System Design (8)
        • 논문작성 Writing (55)
        • 세미나 Seminar (2)
        • 생산성 Productivity (3)
      • 유학 생활 Daily (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    텝스
    WOX
    우분투
    Dear abby
    에러기록
    Julia
    IEEE
    생산성
    pytorch
    텝스공부
    수식삽입
    Python
    LaTeX
    MATLAB
    teps
    matplotlib
    논문작성법
    수치해석
    논문작성
    ChatGPT
    Statics
    Numerical Analysis
    JAX
    Linear algebra
    고체역학
    딥러닝
    인공지능
    옵시디언
    Zotero
    obsidian
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
보통의공대생
[Gym] Gymnasium custom environment
상단으로

티스토리툴바