AnnaMats's picture
Second Push
05c9ac2

ο»Ώ# μ„€μΉ˜

ML-Agentsλ₯Ό μ„€μΉ˜ν•˜κ³  μ‚¬μš©ν•˜κΈ° μœ„ν•΄ μœ λ‹ˆν‹°λ₯Ό μ„€μΉ˜ν•΄μ•Ό ν•˜κ³  이 Repository(μ €μž₯μ†Œ)λ₯Ό Clone(볡제)ν•˜κ³  좔가쒅속성을 κ°€μ§€λŠ” Python(파이썬)을 μ„€μΉ˜ν•΄μ•Όν•©λ‹ˆλ‹€. μ•„λž˜ Subsection(ν•˜μœ„μ„Ήμ…˜)μ—μ„œλŠ” Docker(도컀) μ„€μ • 외에도 각 단계λ₯Ό κ°œκ΄„μ μœΌλ‘œ μ„€λͺ…ν•©λ‹ˆλ‹€.

Unity 2018.4 λ˜λŠ” μ΄ν›„μ˜ 버전을 μ„€μΉ˜ν•˜μ‹­μ‹œμ˜€.

λ‹€μš΄λ‘œλ“œν•˜κ³  μ„€μΉ˜ν•˜μ‹­μ‹œμ˜€. λ§Œμ•½ μ €ν¬μ˜ 도컀 μ„€μ •(차후에 μ†Œκ°œν• )을 μ‚¬μš©ν•˜κ³  μ‹Άλ‹€λ©΄, μœ λ‹ˆν‹°λ₯Ό μ„€μΉ˜ν•  λ•Œ, Linux Build Supportλ₯Ό μ„€μ •ν•˜μ‹­μ‹œμ˜€.

Linux Build Support

Windows μ‚¬μš©μž

Windowsμ—μ„œ ν™˜κ²½μ„ μ„€μ •ν•˜κΈ° μœ„ν•΄, μ„ΈλΆ€ 사항에 μ„€μ • 방법에 λŒ€ν•΄ μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€. Macκ³Ό LinuxλŠ” λ‹€μŒ κ°€μ΄λ“œλ₯Ό ν™•μΈν•΄μ£Όμ‹­μ‹œμ˜€.

Mac λ˜λŠ” Unix μ‚¬μš©μž

ML-Agents Toolkit μ €μž₯μ†Œ 볡제

μœ λ‹ˆν‹° μ„€μΉ˜ 후에 ML-Agents Toolkit κΉƒν—ˆλΈŒ μ €μž₯μ†Œλ₯Ό μ„€μΉ˜ν•˜κ³  싢을 κ²ƒμž…λ‹ˆλ‹€.

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

UnitySDK ν•˜μœ„ λ””λ ‰ν† λ¦¬μ—λŠ” ν”„λ‘œμ νŠΈμ— μΆ”κ°€ν•  μœ λ‹ˆν‹° 애셋이 ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ μ‹œμž‘ν•˜λŠ”λ° 도움이 λ˜λŠ” λ§Žμ€ 예제 ν™˜κ²½λ“€μ΄ μžˆμŠ΅λ‹ˆλ‹€.

ml-agents ν•˜μœ„ λ””λ ‰ν† λ¦¬μ—λŠ” μœ λ‹ˆν‹° ν™˜κ²½κ³Ό ν•¨κ²Œ μ‚¬μš©ν•˜λŠ” 심측 κ°•ν™”ν•™μŠ΅ νŠΈλ ˆμ΄λ„ˆ 파이썬 νŒ¨ν‚€μ§€κ°€ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

ml-agents-envs ν•˜μœ„ λ””λ ‰ν† λ¦¬μ—λŠ” ml-agents νŒ¨ν‚€μ§€μ— μ’…μ†λ˜λŠ” μœ λ‹ˆν‹°μ˜ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μœ„ν•œ 파이썬 APIκ°€ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

gym-unity ν•˜μœ„ λ””λ ‰ν† λ¦¬μ—λŠ” OpenAI Gym의 μΈν„°νŽ˜μ΄μŠ€λ₯Ό μœ„ν•œ νŒ¨ν‚€μ§€κ°€ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

파이썬과 mlagents νŒ¨ν‚€μ§€ μ„€μΉ˜

ML-Agents toolkit을 μ‚¬μš©ν•˜κΈ° μœ„ν•΄ setup.py file에 λ‚˜μ—΄λœ 쒅속성과 ν•¨κ»˜ 파이썬 3.8이 ν•„μš”ν•©λ‹ˆλ‹€. μ£Όμš” μ’…μ†μ„±μ˜ μΌλΆ€λŠ” λ‹€μŒμ„ ν¬ν•¨ν•©λ‹ˆλ‹€:

Python 3.8이 λ§Œμ•½ μ„€μΉ˜λ˜μ–΄ μžˆμ§€ μ•Šλ‹€λ©΄, λ‹€μš΄λ‘œλ“œν•˜κ³  μ„€μΉ˜ν•˜μ‹­μ‹œμ˜€.

λ§Œμ•½ λ‹Ήμ‹ μ˜ 파이썬 ν™˜κ²½μ΄ pip3을 ν¬ν•¨ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄, λ‹€μŒ μ§€μ‹œμ‚¬ν•­ 을 λ”°λΌμ„œ μ„€μΉ˜ν•˜μ‹­μ‹œμ˜€.

쒅속성과 mlagents 파이썬 νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•˜κΈ° μœ„ν•΄ λ‹€μŒ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜μ‹­μ‹œμ˜€:

pip3 install mlagents

이 λͺ…λ Ήμ–΄λ₯Ό 톡해 PyPi둜 λΆ€ν„°(볡제된 μ €μž₯μ†Œκ°€ μ•„λ‹Œ) ml-agentsκ°€ μ„€μΉ˜λ  κ²ƒμž…λ‹ˆλ‹€. λ§Œμ•½ μ„±κ³΅μ μœΌλ‘œ μ„€μΉ˜λ₯Ό μ™„λ£Œ ν–ˆλ‹€λ©΄, mlagents-learn --help λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•  수 μžˆμ„ κ²ƒμž…λ‹ˆλ‹€. λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜λ©΄ μœ λ‹ˆν‹° λ‘œκ³ μ™€ mlagents-learnμ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” λͺ…λ Ήμ–΄ 라인 λ§€κ°œλ³€μˆ˜λ“€μ„ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

주의:

  • ν˜„μž¬ Python 3.8 λ˜λŠ” Python 3.5을 μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • λ§Œμ•½ Anacondaλ₯Ό μ‚¬μš©ν•˜κ³  TensorFlow에 λ¬Έμ œκ°€ μžˆλ‹€λ©΄, λ‹€μŒ λ§ν¬μ—μ„œ Anaconda ν™˜κ²½μ—μ„œ μ–΄λ–»κ²Œ TensorFlowλ₯Ό μ„€μΉ˜ν•˜λŠ”μ§€ ν™•μΈν•˜μ‹­μ‹œμ˜€.

κ°œλ°œμ„ μœ„ν•œ μ„€μΉ˜λ°©λ²•

λ§Œμ•½ ml-agents λ˜λŠ” ml-agents-envsλ₯Ό μˆ˜μ •ν•˜κ³  μ‹Άλ‹€λ©΄, PyPiκ°€ μ•„λ‹Œ 볡제된 μ €μž₯μ†Œλ‘œ λΆ€ν„° νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. 이λ₯Ό μœ„ν•΄, ml-agents와 ml-agents-envsλ₯Ό 각각 μ„€μΉ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ €μž₯μ†Œμ˜ 루트 λ””λ ‰ν† λ¦¬μ—μ„œ λ‹€μŒ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜μ‹­μ‹œμ˜€:

cd ml-agents-envs
pip3 install -e ./
cd ..
cd ml-agents
pip3 install -e ./

-e ν”Œλž˜κ·Έλ₯Ό μ‚¬μš©ν•˜μ—¬ pipλ₯Ό μ‹€ν–‰ ν•˜λ©΄ 파이썬 νŒŒμΌμ„ 직접 λ³€κ²½ν•  수 있고 mlagents-learnλ₯Ό μ‹€ν–‰ν•  λ•Œ λ°˜μ˜λ©λ‹ˆλ‹€. mlagents νŒ¨ν‚€μ§€κ°€ mlagents_envs에 의쑴적이고, λ‹€λ₯Έ μˆœμ„œλ‘œ μ„€μΉ˜ν•˜λ©΄ PyPi둜 λΆ€ν„° mlagents_envsλ₯Ό μ„€μΉ˜ν•  수 있기 λ•Œλ¬Έμ— 이 μˆœμ„œλŒ€λ‘œ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•˜λŠ” 것은 μ€‘μš”ν•©λ‹ˆλ‹€.

도컀 기반 μ„€μΉ˜

λ§Œμ•½ ML-Agentsλ₯Ό μœ„ν•΄ 도컀λ₯Ό μ‚¬μš©ν•˜κ³  μ‹Άλ‹€λ©΄, 이 κ°€μ΄λ“œλ₯Ό λ”°λΌν•˜μ‹­μ‹œμ˜€.

λ‹€μŒ 단계

기초 κ°€μ΄λ“œ νŽ˜μ΄μ§€μ—λŠ” μœ λ‹ˆν‹° λ‚΄μ—μ„œ ML-Agents toolkit의 μ„€μ • 및 ν•™μŠ΅λœ λͺ¨λΈ μ‹€ν–‰, ν™˜κ²½ ꡬ좕, ν•™μŠ΅ 방법에 λŒ€ν•œ μ—¬λŸ¬ 짧은 νŠœν† λ¦¬μ–Όμ„ ν¬ν•¨ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

도움말

ML-Agents와 κ΄€λ ¨λœ λ¬Έμ œκ°€ λ°œμƒν•˜λ©΄ μ €ν¬μ˜ FAQ와 μ œμ•½ 사항 νŽ˜μ΄μ§€λ₯Ό μ°Έκ³ ν•΄ μ£Όμ‹­μ‹œμ˜€. λ§Œμ•½ λ¬Έμ œμ— λŒ€ν•œ 아무것도 찾을 수 μ—†λ‹€λ©΄ OS, Pythons 버전 및 μ •ν™•ν•œ 였λ₯˜ 메세지와 ν•¨κ»˜ 이슈 μ œμΆœμ„ ν•΄μ£Όμ‹­μ‹œμ˜€.

ν•œκΈ€ λ²ˆμ—­

ν•΄λ‹Ή λ¬Έμ„œμ˜ ν•œκΈ€ λ²ˆμ—­μ€ μž₯ν˜„μ€€ (Hyeonjun Jang)에 μ˜ν•΄ μ§„ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ‚΄μš©μƒ 였λ₯˜λ‚˜ μ˜€νƒˆμžκ°€ μžˆλŠ” 경우 totok682@naver.com 으둜 μ—°λ½μ£Όμ‹œλ©΄ κ°μ‚¬λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.