강화 학습 공부를 위해 이런저런 실습 코드를 따라 치던 도중
import gym
env = gym.make('~')
이러한 형태의 코드 자체가 실행이 안 되는 아주아주 답답한 상황에 이르렀다.
저 ~ 에 들어가는 부분은 게임의 이름들인데
1. classic control
https://gym.openai.com/envs/#classic_control
2. Box 2D
https://gym.openai.com/envs/#box2d
3. Atari
https://gym.openai.com/envs/#atari
와 같이 다양한 게임들이 있는데 환경 자체가 안 만들어지니 답답함을 주체할 수가 없다
그래서 그냥 하나하나 다 때려 넣어봤다 우선
1. classic control에 있는 게임들을 바로 make가 돼서 실습을 진행할 수 있었다.
2. Box2d에 있는 게임들도 되겠거니 했는데 안되더라
AttributeError: module 'gym.envs.box2d' has no attribute 'LunarLander' 요러한 에러가 나왔다 Box 2D에 있는 모든 이들이 게임 이름만 다르게 없다더라
해결은 다음 코드 실행 후에 됐다
pip install box2d-py
이제 2.Box2D 게임들까지 실습에 활용할 수 있게 됐다.
3. Atari에 있는 게임들은 ~에 뭘 집어넣어도
AttributeError: module 'gym.envs.atari' has no attribute 'AtariEnv' 이 에러가 뜨더라 진짜 다쳐봄
pip install ale-py
이거 하면 된다고 많은 사람들이 적어놨는데 난 안된다.
pip uninstall gym ale-py && pip install 'gym[atari]'
이걸 입력한뒤론 다른 에러가 나오기 시작했다.
env = gym.make('SpaceInvaders-v4')
다음과 같은데 중요해 보이는 부분만 추려보겠다.
A.L.E: Arcade Learning Environment (version 0.7.4+069f8 bd)
[Powered by Stella]
gym.error.Error: We're Unable to find the game "SpaceInvaders". Note: Gym no longer distributes ROMs. If you own a license to use the necessary ROMs for research purposes you can download them via `pip install gym [accept-rom-license]`. Otherwise, you should try importing "SpaceInvaders" via the command `ale-import-roms`. If you believe this is a mistake perhaps your copy of "SpaceInvaders" is unsupported. To check if this is the case try providing the environment variable `PYTHONWARNINGS=default::ImportWarning:ale_py.roms`. For more information see: https://github.com/mgbellemare/Arcade-Learning-Environment#rom-management
SpaceInvader를 사용할 수 없다는 건가? 다른 게임 입력하면 다른가? 아니고요 뭘 입력하건 다 안된다
일단 상업적 목적은 아니니까 하라는 대로 해보자
pip install 'gym[accept-rom-license]'
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/gym/envs/registration.py:506: UserWarning: WARN: The environment SpaceInvaders-v4 is out of date. You should consider upgrading to version `v5` with the environment ID `ALE/SpaceInvaders-v5`.
f"The environment {path} is out of date. You should consider "
A.L.E: Arcade Learning Environment (version 0.7.4+069f8 bd)
[Powered by Stella]
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/gym/utils/seeding.py:139: DeprecationWarning: WARN: Function `hash_seed(seed, max_bytes)` is marked as deprecated and will be removed in the future.
"Function `hash_seed(seed, max_bytes)` is marked as deprecated and will be removed in the future. "
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/gym/utils/seeding.py:176: DeprecationWarning: WARN: Function `_bigint_from_bytes(bytes)` is marked as deprecated and will be removed in the future.
"Function `_bigint_from_bytes(bytes)` is marked as deprecated and will be removed in the future. "
위와 같은 에러가 떠서 다음과 같이 해주었다
env = gym.make('ALE/SpaceInvaders-v5')
됐다. 이 맛이야..
에러 찾으면서 해결할 때마다 글들이 현재 시점과 가깝고 개수가 현저히 줄어든 것을 보고, 문제 해결할 때까지 고민하는 사람은 그리 많지 않다는 것을 느낀다.
'Have Done > Reinforcement Learning' 카테고리의 다른 글
[강화학습] CS234 class1 (0) | 2022.04.26 |
---|---|
[강화학습] Space-Invader 환경설정 후 학습하기 (0) | 2022.04.14 |
[RL] Q - Learning (0) | 2022.03.29 |
[RL] Reinforcement Learning 구분 (0) | 2022.03.29 |
[Reinforcement Learning] 강화학습 기본 (0) | 2022.03.29 |
댓글