심층 강화 학습 프레임 워크 machina를 사용해 보았습니다.
소개
심층 강화 학습 프레임워크machina가 신경이 쓰였으므로, 어떤 것일까빠른 시작를 해 보기로 한다
환경: Mac, pyenv viertualenv 설치됨
설정하기
우선 virtualenv로 전용 환경을 만든다. Python3.7.3을 컴파일러로 지정
pyenv install 3.7.3
pyenv virtualenv 3.7.3 machina
pyenv activate machina
pip install -U pip
pip install numpy torch torchvision jupyter machina-rl
Python 설치 중 zipimport.ZipImportError: can't decompress data; zlib not available
오류가 발생하여 설치할 수 없습니다. 다음 기사에 설명된 해결 방법으로 안전하게 설치할 수 있습니다.
[MacOS Mojave] pyenv에서 파이썬 설치가 zlib 오류로 실패했을 때의 대응
빠른 시작을 시도
리포지토리 복제
git clone https://github.com/DeepX-inc/machina.git
cd machina
jupyter notebook 시작
jupyter notebook
노트북에서 example -> quickstart -> ppo_acrobot.ipynb 를 열고 깜박이고 훈련하고 결과를 봅니다. 4.Visualize behavior after trainning을 실행하면, 트레이닝 결과의 동영상이 재생된다
음 100 에포크 정도이므로 제대로 서 있지 않지만, 학습하고 있는 것은 확인할 수 있다
다른 example을 시도합니다.
소스 코드를 쫓는 것은 나중에 한다고 해서 quickstart가 시원하게 끝났기 때문에 다른 example을 해 보려고 한다. 의미들 소리. MD에 설명 된 Behavioral Cloning
샘플 코드를 이동해보십시오.
IMITATION.md
에 설명된 절차에 따라 expert_epis
를 다운로드하여 다음을 수행합니다.
cd example
python run_behavior_clone.py
{'batch_size': 256,
'c2d': False,
'check_rate': 0.05,
'cuda': -1,
'data_parallel': False,
'deterministic': False,
'env_name': 'Pendulum-v0',
'epoch': 1000,
'expert_dir': '../data/expert_epis',
'expert_fname': 'Pendulum-v0_100epis.pkl',
'gamma': 0.99,
'h1': 32,
'h2': 32,
'lam': 1,
'log': 'garbage',
'max_epis': 100000000,
'max_epis_per_iter': 10,
'num_parallel': 4,
'pol_lr': 0.0001,
'record': False,
'seed': 256,
'tau': 0.001,
'train_size': 0.7}
/Users/user/.pyenv/versions/machina/lib/python3.7/site-packages/gym/envs/registration.py:14: PkgResourcesDeprecationWarning: Parameters to load are deprecated. Call .resolve and .require separately.
result = entry_point.load(False)
WARN: gym.spaces.Box autodetected dtype as <class 'numpy.float32'>. Please provide explicit dtype.
WARN: gym.spaces.Box autodetected dtype as <class 'numpy.float32'>. Please provide explicit dtype.
2019-05-26 16:18:47.056642 JST | observation space: Box(3,)
2019-05-26 16:18:47.056818 JST | action space: Box(1,)
2019-05-26 16:18:47.224460 JST | expert_score=-203.31068420410156
2019-05-26 16:18:47.225109 JST | num_train_epi=70
2019-05-26 16:18:48.468546 JST | sample: 0.8718sec
2019-05-26 16:18:48.469228 JST | outdir /Users/user/machina/example/garbage
2019-05-26 16:18:48.475059 JST | ------------------ ------------
2019-05-26 16:18:48.475268 JST | PolLossAverage 1.16213
2019-05-26 16:18:48.475474 JST | PolLossStd 0.20314
2019-05-26 16:18:48.475698 JST | PolLossMedian 1.17578
2019-05-26 16:18:48.475883 JST | PolLossMin 0.743538
2019-05-26 16:18:48.476050 JST | PolLossMax 1.57056
2019-05-26 16:18:48.476134 JST | TestPolLossAverage 0.775926
2019-05-26 16:18:48.476208 JST | TestPolLossStd 0
2019-05-26 16:18:48.476281 JST | TestPolLossMedian 0.775926
2019-05-26 16:18:48.476547 JST | TestPolLossMin 0.775926
2019-05-26 16:18:48.476738 JST | TestPolLossMax 0.775926
2019-05-26 16:18:48.476887 JST | RewardAverage -1289.41
2019-05-26 16:18:48.477021 JST | RewardStd 54.1989
2019-05-26 16:18:48.477150 JST | RewardMedian -1285.32
2019-05-26 16:18:48.477271 JST | RewardMin -1404.18
2019-05-26 16:18:48.477401 JST | RewardMax -1200.5
2019-05-26 16:18:48.477508 JST | CurrentEpoch 0
2019-05-26 16:18:48.477638 JST | ------------------ ------------
2019-05-26 16:19:05.279398 JST | sample: 0.7552sec
2019-05-26 16:19:05.280429 JST | outdir /Users/user/machina/example/garbage
...(中略)...
2019-05-26 16:24:19.457548 JST | ------------------ -----------
2019-05-26 16:24:19.457641 JST | PolLossAverage -2.19763
2019-05-26 16:24:19.457720 JST | PolLossStd 0.040569
2019-05-26 16:24:19.457795 JST | PolLossMedian -2.19817
2019-05-26 16:24:19.457868 JST | PolLossMin -2.2765
2019-05-26 16:24:19.458061 JST | PolLossMax -2.06869
2019-05-26 16:24:19.458231 JST | TestPolLossAverage -2.1701
2019-05-26 16:24:19.458352 JST | TestPolLossStd 0
2019-05-26 16:24:19.458442 JST | TestPolLossMedian -2.1701
2019-05-26 16:24:19.458536 JST | TestPolLossMin -2.1701
2019-05-26 16:24:19.458669 JST | TestPolLossMax -2.1701
2019-05-26 16:24:19.458774 JST | RewardAverage -254.439
2019-05-26 16:24:19.458955 JST | RewardStd 86.3936
2019-05-26 16:24:19.459045 JST | RewardMedian -242.488
2019-05-26 16:24:19.459119 JST | RewardMin -364.349
2019-05-26 16:24:19.459191 JST | RewardMax -127.547
2019-05-26 16:24:19.459263 JST | CurrentEpoch 950
2019-05-26 16:24:19.459334 JST | ------------------ -----------
같은 계층에 garbage
디렉토리가 생성되어 모델과 로그가 저장됩니다.
python take_movie.py
실행하면 garbage/optimal_movie
디렉터리가 생성되고 최상의 모델의 결과 동영상이 만들어집니다.
take_movie.py
런타임에 objc[35514]: +[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called.
오류가 발생하면 여기을 참조하여 환경 변수를 추가하고 실행하면 작동합니다.
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
요약
샘플 코드를 대략 바라보면 Pytorch를 기반으로 NN과 학습을 위한 환경, 강화 학습 알고리즘이 잘 추상화되어 컴포넌트가 되고 있다. 환경과 알고리즘을 템플리화해 두고 다양한 NN을 바꾸어 학습시켜 보거나 쉽게 할 수 있을 것 같다. 문서에 설명된 대로 인상을 받
뭔가 실용하고 싶은 곳
Reference
이 문제에 관하여(심층 강화 학습 프레임 워크 machina를 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/bathtimefish/items/a661aa1470f471aa3461
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
우선 virtualenv로 전용 환경을 만든다. Python3.7.3을 컴파일러로 지정
pyenv install 3.7.3
pyenv virtualenv 3.7.3 machina
pyenv activate machina
pip install -U pip
pip install numpy torch torchvision jupyter machina-rl
Python 설치 중
zipimport.ZipImportError: can't decompress data; zlib not available
오류가 발생하여 설치할 수 없습니다. 다음 기사에 설명된 해결 방법으로 안전하게 설치할 수 있습니다.[MacOS Mojave] pyenv에서 파이썬 설치가 zlib 오류로 실패했을 때의 대응
빠른 시작을 시도
리포지토리 복제
git clone https://github.com/DeepX-inc/machina.git
cd machina
jupyter notebook 시작
jupyter notebook
노트북에서 example -> quickstart -> ppo_acrobot.ipynb 를 열고 깜박이고 훈련하고 결과를 봅니다. 4.Visualize behavior after trainning을 실행하면, 트레이닝 결과의 동영상이 재생된다
음 100 에포크 정도이므로 제대로 서 있지 않지만, 학습하고 있는 것은 확인할 수 있다
다른 example을 시도합니다.
소스 코드를 쫓는 것은 나중에 한다고 해서 quickstart가 시원하게 끝났기 때문에 다른 example을 해 보려고 한다. 의미들 소리. MD에 설명 된 Behavioral Cloning
샘플 코드를 이동해보십시오.
IMITATION.md
에 설명된 절차에 따라 expert_epis
를 다운로드하여 다음을 수행합니다.
cd example
python run_behavior_clone.py
{'batch_size': 256,
'c2d': False,
'check_rate': 0.05,
'cuda': -1,
'data_parallel': False,
'deterministic': False,
'env_name': 'Pendulum-v0',
'epoch': 1000,
'expert_dir': '../data/expert_epis',
'expert_fname': 'Pendulum-v0_100epis.pkl',
'gamma': 0.99,
'h1': 32,
'h2': 32,
'lam': 1,
'log': 'garbage',
'max_epis': 100000000,
'max_epis_per_iter': 10,
'num_parallel': 4,
'pol_lr': 0.0001,
'record': False,
'seed': 256,
'tau': 0.001,
'train_size': 0.7}
/Users/user/.pyenv/versions/machina/lib/python3.7/site-packages/gym/envs/registration.py:14: PkgResourcesDeprecationWarning: Parameters to load are deprecated. Call .resolve and .require separately.
result = entry_point.load(False)
WARN: gym.spaces.Box autodetected dtype as <class 'numpy.float32'>. Please provide explicit dtype.
WARN: gym.spaces.Box autodetected dtype as <class 'numpy.float32'>. Please provide explicit dtype.
2019-05-26 16:18:47.056642 JST | observation space: Box(3,)
2019-05-26 16:18:47.056818 JST | action space: Box(1,)
2019-05-26 16:18:47.224460 JST | expert_score=-203.31068420410156
2019-05-26 16:18:47.225109 JST | num_train_epi=70
2019-05-26 16:18:48.468546 JST | sample: 0.8718sec
2019-05-26 16:18:48.469228 JST | outdir /Users/user/machina/example/garbage
2019-05-26 16:18:48.475059 JST | ------------------ ------------
2019-05-26 16:18:48.475268 JST | PolLossAverage 1.16213
2019-05-26 16:18:48.475474 JST | PolLossStd 0.20314
2019-05-26 16:18:48.475698 JST | PolLossMedian 1.17578
2019-05-26 16:18:48.475883 JST | PolLossMin 0.743538
2019-05-26 16:18:48.476050 JST | PolLossMax 1.57056
2019-05-26 16:18:48.476134 JST | TestPolLossAverage 0.775926
2019-05-26 16:18:48.476208 JST | TestPolLossStd 0
2019-05-26 16:18:48.476281 JST | TestPolLossMedian 0.775926
2019-05-26 16:18:48.476547 JST | TestPolLossMin 0.775926
2019-05-26 16:18:48.476738 JST | TestPolLossMax 0.775926
2019-05-26 16:18:48.476887 JST | RewardAverage -1289.41
2019-05-26 16:18:48.477021 JST | RewardStd 54.1989
2019-05-26 16:18:48.477150 JST | RewardMedian -1285.32
2019-05-26 16:18:48.477271 JST | RewardMin -1404.18
2019-05-26 16:18:48.477401 JST | RewardMax -1200.5
2019-05-26 16:18:48.477508 JST | CurrentEpoch 0
2019-05-26 16:18:48.477638 JST | ------------------ ------------
2019-05-26 16:19:05.279398 JST | sample: 0.7552sec
2019-05-26 16:19:05.280429 JST | outdir /Users/user/machina/example/garbage
...(中略)...
2019-05-26 16:24:19.457548 JST | ------------------ -----------
2019-05-26 16:24:19.457641 JST | PolLossAverage -2.19763
2019-05-26 16:24:19.457720 JST | PolLossStd 0.040569
2019-05-26 16:24:19.457795 JST | PolLossMedian -2.19817
2019-05-26 16:24:19.457868 JST | PolLossMin -2.2765
2019-05-26 16:24:19.458061 JST | PolLossMax -2.06869
2019-05-26 16:24:19.458231 JST | TestPolLossAverage -2.1701
2019-05-26 16:24:19.458352 JST | TestPolLossStd 0
2019-05-26 16:24:19.458442 JST | TestPolLossMedian -2.1701
2019-05-26 16:24:19.458536 JST | TestPolLossMin -2.1701
2019-05-26 16:24:19.458669 JST | TestPolLossMax -2.1701
2019-05-26 16:24:19.458774 JST | RewardAverage -254.439
2019-05-26 16:24:19.458955 JST | RewardStd 86.3936
2019-05-26 16:24:19.459045 JST | RewardMedian -242.488
2019-05-26 16:24:19.459119 JST | RewardMin -364.349
2019-05-26 16:24:19.459191 JST | RewardMax -127.547
2019-05-26 16:24:19.459263 JST | CurrentEpoch 950
2019-05-26 16:24:19.459334 JST | ------------------ -----------
같은 계층에 garbage
디렉토리가 생성되어 모델과 로그가 저장됩니다.
python take_movie.py
실행하면 garbage/optimal_movie
디렉터리가 생성되고 최상의 모델의 결과 동영상이 만들어집니다.
take_movie.py
런타임에 objc[35514]: +[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called.
오류가 발생하면 여기을 참조하여 환경 변수를 추가하고 실행하면 작동합니다.
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
요약
샘플 코드를 대략 바라보면 Pytorch를 기반으로 NN과 학습을 위한 환경, 강화 학습 알고리즘이 잘 추상화되어 컴포넌트가 되고 있다. 환경과 알고리즘을 템플리화해 두고 다양한 NN을 바꾸어 학습시켜 보거나 쉽게 할 수 있을 것 같다. 문서에 설명된 대로 인상을 받
뭔가 실용하고 싶은 곳
Reference
이 문제에 관하여(심층 강화 학습 프레임 워크 machina를 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/bathtimefish/items/a661aa1470f471aa3461
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
git clone https://github.com/DeepX-inc/machina.git
cd machina
jupyter notebook
소스 코드를 쫓는 것은 나중에 한다고 해서 quickstart가 시원하게 끝났기 때문에 다른 example을 해 보려고 한다. 의미들 소리. MD에 설명 된
Behavioral Cloning
샘플 코드를 이동해보십시오.IMITATION.md
에 설명된 절차에 따라 expert_epis
를 다운로드하여 다음을 수행합니다.cd example
python run_behavior_clone.py
{'batch_size': 256,
'c2d': False,
'check_rate': 0.05,
'cuda': -1,
'data_parallel': False,
'deterministic': False,
'env_name': 'Pendulum-v0',
'epoch': 1000,
'expert_dir': '../data/expert_epis',
'expert_fname': 'Pendulum-v0_100epis.pkl',
'gamma': 0.99,
'h1': 32,
'h2': 32,
'lam': 1,
'log': 'garbage',
'max_epis': 100000000,
'max_epis_per_iter': 10,
'num_parallel': 4,
'pol_lr': 0.0001,
'record': False,
'seed': 256,
'tau': 0.001,
'train_size': 0.7}
/Users/user/.pyenv/versions/machina/lib/python3.7/site-packages/gym/envs/registration.py:14: PkgResourcesDeprecationWarning: Parameters to load are deprecated. Call .resolve and .require separately.
result = entry_point.load(False)
WARN: gym.spaces.Box autodetected dtype as <class 'numpy.float32'>. Please provide explicit dtype.
WARN: gym.spaces.Box autodetected dtype as <class 'numpy.float32'>. Please provide explicit dtype.
2019-05-26 16:18:47.056642 JST | observation space: Box(3,)
2019-05-26 16:18:47.056818 JST | action space: Box(1,)
2019-05-26 16:18:47.224460 JST | expert_score=-203.31068420410156
2019-05-26 16:18:47.225109 JST | num_train_epi=70
2019-05-26 16:18:48.468546 JST | sample: 0.8718sec
2019-05-26 16:18:48.469228 JST | outdir /Users/user/machina/example/garbage
2019-05-26 16:18:48.475059 JST | ------------------ ------------
2019-05-26 16:18:48.475268 JST | PolLossAverage 1.16213
2019-05-26 16:18:48.475474 JST | PolLossStd 0.20314
2019-05-26 16:18:48.475698 JST | PolLossMedian 1.17578
2019-05-26 16:18:48.475883 JST | PolLossMin 0.743538
2019-05-26 16:18:48.476050 JST | PolLossMax 1.57056
2019-05-26 16:18:48.476134 JST | TestPolLossAverage 0.775926
2019-05-26 16:18:48.476208 JST | TestPolLossStd 0
2019-05-26 16:18:48.476281 JST | TestPolLossMedian 0.775926
2019-05-26 16:18:48.476547 JST | TestPolLossMin 0.775926
2019-05-26 16:18:48.476738 JST | TestPolLossMax 0.775926
2019-05-26 16:18:48.476887 JST | RewardAverage -1289.41
2019-05-26 16:18:48.477021 JST | RewardStd 54.1989
2019-05-26 16:18:48.477150 JST | RewardMedian -1285.32
2019-05-26 16:18:48.477271 JST | RewardMin -1404.18
2019-05-26 16:18:48.477401 JST | RewardMax -1200.5
2019-05-26 16:18:48.477508 JST | CurrentEpoch 0
2019-05-26 16:18:48.477638 JST | ------------------ ------------
2019-05-26 16:19:05.279398 JST | sample: 0.7552sec
2019-05-26 16:19:05.280429 JST | outdir /Users/user/machina/example/garbage
...(中略)...
2019-05-26 16:24:19.457548 JST | ------------------ -----------
2019-05-26 16:24:19.457641 JST | PolLossAverage -2.19763
2019-05-26 16:24:19.457720 JST | PolLossStd 0.040569
2019-05-26 16:24:19.457795 JST | PolLossMedian -2.19817
2019-05-26 16:24:19.457868 JST | PolLossMin -2.2765
2019-05-26 16:24:19.458061 JST | PolLossMax -2.06869
2019-05-26 16:24:19.458231 JST | TestPolLossAverage -2.1701
2019-05-26 16:24:19.458352 JST | TestPolLossStd 0
2019-05-26 16:24:19.458442 JST | TestPolLossMedian -2.1701
2019-05-26 16:24:19.458536 JST | TestPolLossMin -2.1701
2019-05-26 16:24:19.458669 JST | TestPolLossMax -2.1701
2019-05-26 16:24:19.458774 JST | RewardAverage -254.439
2019-05-26 16:24:19.458955 JST | RewardStd 86.3936
2019-05-26 16:24:19.459045 JST | RewardMedian -242.488
2019-05-26 16:24:19.459119 JST | RewardMin -364.349
2019-05-26 16:24:19.459191 JST | RewardMax -127.547
2019-05-26 16:24:19.459263 JST | CurrentEpoch 950
2019-05-26 16:24:19.459334 JST | ------------------ -----------
같은 계층에
garbage
디렉토리가 생성되어 모델과 로그가 저장됩니다.python take_movie.py
실행하면
garbage/optimal_movie
디렉터리가 생성되고 최상의 모델의 결과 동영상이 만들어집니다.take_movie.py
런타임에 objc[35514]: +[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called.
오류가 발생하면 여기을 참조하여 환경 변수를 추가하고 실행하면 작동합니다.export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
요약
샘플 코드를 대략 바라보면 Pytorch를 기반으로 NN과 학습을 위한 환경, 강화 학습 알고리즘이 잘 추상화되어 컴포넌트가 되고 있다. 환경과 알고리즘을 템플리화해 두고 다양한 NN을 바꾸어 학습시켜 보거나 쉽게 할 수 있을 것 같다. 문서에 설명된 대로 인상을 받
뭔가 실용하고 싶은 곳
Reference
이 문제에 관하여(심층 강화 학습 프레임 워크 machina를 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/bathtimefish/items/a661aa1470f471aa3461
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(심층 강화 학습 프레임 워크 machina를 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/bathtimefish/items/a661aa1470f471aa3461텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)