본문 바로가기
코딩코딩/머신러닝, 딥러닝

[ml-agents] 윈도우에 ml-agents 환경 구축

by g0n1 2022. 2. 14.
728x90

https://youtu.be/mJh31T3aGkI

1. git으로 ml-agents 저장소 클론하기

저는 사용자 폴더(powershell을 키면 default로 설정되어있는 경로)에 git clone을 했습니다.

git clone https://github.com/Unity-Technologies/ml-agents

2. python 환경 구축

아나콘다, 파이썬 뭐든 상관 없습니다. 저는 아나콘다로 ml-agents라는 이름의 파이썬 3.8버전 가상환경을 만들었다.

conda create -n ml-agents python=3.8
conda activate ml-agents

3. ml-agents/ml-agents 폴더로 이동

아래 명령어를 치면 됩니다. 2번 치는 거 맞습니다.

cd ml-agents
cd ml-agents

4. 편집기로 build.py 내용 수정하기

vscode나 메모장으로 현재 폴더에 있는 build.py를 수정해야 됩니다.

f"mlagents_envs=={VERSION}",    # 원본
"mlagents_envs>=0.28.0",        # 수정

위에 원본이라고 써져있는 코드를 찾아 아래 코드로 수정해줍니다.

5. 환경 빌드하기

pip install -e .

이러면 1차적으로 빌드가 될 겁니다.

테스트를 위해 아래 명령어를 치면 다음과 같은 오류가 납니다.

mlagents-learn --help
Traceback (most recent call last):
  File "C:\Miniconda3\envs\unity\Scripts\mlagents-learn-script.py", line 33, in <module>
    sys.exit(load_entry_point('mlagents', 'console_scripts', 'mlagents-learn')())
  File "C:\Miniconda3\envs\unity\Scripts\mlagents-learn-script.py", line 25, in importlib_load_entry_point
    return next(matches).load()
  File "C:\Miniconda3\envs\unity\lib\importlib\metadata.py", line 77, in load
    module = import_module(match.group('module'))
  File "C:\Miniconda3\envs\unity\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 843, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "c:\users\fizz5\ml-agents\ml-agents\mlagents\trainers\learn.py", line 2, in <module>
    from mlagents import torch_utils
  File "c:\users\fizz5\ml-agents\ml-agents\mlagents\torch_utils\__init__.py", line 1, in <module>
    from mlagents.torch_utils.torch import torch as torch  # noqa
  File "c:\users\fizz5\ml-agents\ml-agents\mlagents\torch_utils\torch.py", line 30, in <module>
    assert_torch_installed()
  File "c:\users\fizz5\ml-agents\ml-agents\mlagents\torch_utils\torch.py", line 21, in assert_torch_installed
    assert torch_pkg is not None and LooseVersion(torch_pkg.version) >= LooseVersion(
AssertionError: A compatible version of PyTorch was not installed. Please visit the PyTorch homepage (https://pytorch.org/get-started/locally/) and follow the instructions to install. Version 1.6.0 and later are supported.

원인는 pytorch의 버전이 안 맞아서 그렇습니다. 아래를 보고 버전에 맞춰 설치해줍시다. 저는 CUDA 10.2버전을 설치했습니다.(출처: https://pytorch.org/get-started/previous-versions/)

# CUDA 9.2
conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=9.2 -c pytorch

# CUDA 10.1
conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.1 -c pytorch

# CUDA 10.2
conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.2 -c pytorch

# CPU Only
conda install pytorch==1.6.0 torchvision==0.7.0 cpuonly -c pytorch

6. 테스트

mlagents-learn --help

이제 이렇게 치면 오류는 안 나는데 UNITY라는 멋쟁이 글자가 안 나옵니다. 빌드가 잘 된 건지는 모르겠습니다. 그럼에도 파이썬 초보분들께서 오류때문에 갑갑하실까봐 제가 사용한 방법을 공유드려봤어요. 부디 도움되셨길 바랍니다.

728x90

댓글