|
# Installing ML-Agents Toolkit for Windows (Deprecated) |
|
|
|
:warning: **Note:** We no longer use this guide ourselves and so it may not work |
|
correctly. We've decided to keep it up just in case it is helpful to you. |
|
|
|
The ML-Agents Toolkit supports Windows 10. While it might be possible to run the |
|
ML-Agents Toolkit using other versions of Windows, it has not been tested on |
|
other versions. Furthermore, the ML-Agents Toolkit has not been tested on a |
|
Windows VM such as Bootcamp or Parallels. |
|
|
|
To use the ML-Agents Toolkit, you install Python and the required Python |
|
packages as outlined below. This guide also covers how set up GPU-based training |
|
(for advanced users). GPU-based training is not currently required for the |
|
ML-Agents Toolkit. However, training on a GPU might be required by future |
|
versions and features. |
|
|
|
## Step 1: Install Python via Anaconda |
|
|
|
[Download](https://www.anaconda.com/download/#windows) and install Anaconda for |
|
Windows. By using Anaconda, you can manage separate environments for different |
|
distributions of Python. Python 3.7.2 or higher is required as we no longer |
|
support Python 2. In this guide, we are using Python version 3.7 and Anaconda |
|
version 5.1 |
|
([64-bit](https://repo.continuum.io/archive/Anaconda3-5.1.0-Windows-x86_64.exe) |
|
or [32-bit](https://repo.continuum.io/archive/Anaconda3-5.1.0-Windows-x86.exe) |
|
direct links). |
|
|
|
<p align="center"> |
|
<img src="images/anaconda_install.PNG" |
|
alt="Anaconda Install" |
|
width="500" border="10" /> |
|
</p> |
|
|
|
We recommend the default _advanced installation options_. However, select the |
|
options appropriate for your specific situation. |
|
|
|
<p align="center"> |
|
<img src="images/anaconda_default.PNG" alt="Anaconda Install" width="500" border="10" /> |
|
</p> |
|
|
|
After installation, you must open **Anaconda Navigator** to finish the setup. |
|
From the Windows search bar, type _anaconda navigator_. You can close Anaconda |
|
Navigator after it opens. |
|
|
|
If environment variables were not created, you will see error "conda is not |
|
recognized as internal or external command" when you type `conda` into the |
|
command line. To solve this you will need to set the environment variable |
|
correctly. |
|
|
|
Type `environment variables` in the search bar (this can be reached by hitting |
|
the Windows key or the bottom left Windows button). You should see an option |
|
called **Edit the system environment variables**. |
|
|
|
<p align="center"> |
|
<img src="images/edit_env_var.png" |
|
alt="edit env variables" |
|
width="250" border="10" /> |
|
</p> |
|
|
|
From here, click the **Environment Variables** button. Double click "Path" under |
|
**System variable** to edit the "Path" variable, click **New** to add the |
|
following new paths. |
|
|
|
```console |
|
%UserProfile%\Anaconda3\Scripts |
|
%UserProfile%\Anaconda3\Scripts\conda.exe |
|
%UserProfile%\Anaconda3 |
|
%UserProfile%\Anaconda3\python.exe |
|
``` |
|
|
|
## Step 2: Setup and Activate a New Conda Environment |
|
|
|
You will create a new [Conda environment](https://conda.io/docs/) to be used |
|
with the ML-Agents Toolkit. This means that all the packages that you install |
|
are localized to just this environment. It will not affect any other |
|
installation of Python or other environments. Whenever you want to run |
|
ML-Agents, you will need activate this Conda environment. |
|
|
|
To create a new Conda environment, open a new Anaconda Prompt (_Anaconda Prompt_ |
|
in the search bar) and type in the following command: |
|
|
|
```sh |
|
conda create -n ml-agents python=3.7 |
|
``` |
|
|
|
You may be asked to install new packages. Type `y` and press enter _(make sure |
|
you are connected to the Internet)_. You must install these required packages. |
|
The new Conda environment is called ml-agents and uses Python version 3.7. |
|
|
|
<p align="center"> |
|
<img src="images/conda_new.PNG" alt="Anaconda Install" width="500" border="10" /> |
|
</p> |
|
|
|
To use this environment, you must activate it. _(To use this environment In the |
|
future, you can run the same command)_. In the same Anaconda Prompt, type in the |
|
following command: |
|
|
|
```sh |
|
activate ml-agents |
|
``` |
|
|
|
You should see `(ml-agents)` prepended on the last line. |
|
|
|
Next, install `tensorflow`. Install this package using `pip` - which is a |
|
package management system used to install Python packages. Latest versions of |
|
TensorFlow won't work, so you will need to make sure that you install version |
|
1.7.1. In the same Anaconda Prompt, type in the following command _(make sure |
|
you are connected to the Internet)_: |
|
|
|
```sh |
|
pip install tensorflow==1.7.1 |
|
``` |
|
|
|
## Step 3: Install Required Python Packages |
|
|
|
The ML-Agents Toolkit depends on a number of Python packages. Use `pip` to |
|
install these Python dependencies. |
|
|
|
If you haven't already, clone the ML-Agents Toolkit Github repository to your |
|
local computer. You can do this using Git |
|
([download here](https://git-scm.com/download/win)) and running the following |
|
commands in an Anaconda Prompt _(if you open a new prompt, be sure to activate |
|
the ml-agents Conda environment by typing `activate ml-agents`)_: |
|
|
|
```sh |
|
git clone --branch release_19 https://github.com/Unity-Technologies/ml-agents.git |
|
``` |
|
|
|
The `--branch release_19` option will switch to the tag of the latest stable |
|
release. Omitting that will get the `main` branch which is potentially |
|
unstable. |
|
|
|
If you don't want to use Git, you can find download links on the |
|
[releases page](https://github.com/Unity-Technologies/ml-agents/releases). |
|
|
|
The `com.unity.ml-agents` subdirectory contains the core code to add to your |
|
projects. The `Project` subdirectory contains many |
|
[example environments](Learning-Environment-Examples.md) to help you get |
|
started. |
|
|
|
The `ml-agents` subdirectory contains a Python package which provides deep |
|
reinforcement learning trainers to use with Unity environments. |
|
|
|
The `ml-agents-envs` subdirectory contains a Python API to interface with Unity, |
|
which the `ml-agents` package depends on. |
|
|
|
The `gym-unity` subdirectory contains a package to interface with OpenAI Gym. |
|
|
|
Keep in mind where the files were downloaded, as you will need the trainer |
|
config files in this directory when running `mlagents-learn`. Make sure you are |
|
connected to the Internet and then type in the Anaconda Prompt: |
|
|
|
```console |
|
python -m pip install mlagents==0.30.0 |
|
``` |
|
|
|
This will complete the installation of all the required Python packages to run |
|
the ML-Agents Toolkit. |
|
|
|
Sometimes on Windows, when you use pip to install certain Python packages, the |
|
pip will get stuck when trying to read the cache of the package. If you see |
|
this, you can try: |
|
|
|
```console |
|
python -m pip install mlagents==0.30.0 --no-cache-dir |
|
``` |
|
|
|
This `--no-cache-dir` tells the pip to disable the cache. |
|
|
|
### Installing for Development |
|
|
|
If you intend to make modifications to `ml-agents` or `ml-agents-envs`, you |
|
should install the packages from the cloned repo rather than from PyPi. To do |
|
this, you will need to install `ml-agents` and `ml-agents-envs` separately. |
|
|
|
In our example, the files are located in `C:\Downloads`. After you have either |
|
cloned or downloaded the files, from the Anaconda Prompt, change to the |
|
ml-agents subdirectory inside the ml-agents directory: |
|
|
|
```console |
|
cd C:\Downloads\ml-agents |
|
``` |
|
|
|
From the repo's main directory, now run: |
|
|
|
```console |
|
cd ml-agents-envs |
|
pip install -e . |
|
cd .. |
|
cd ml-agents |
|
pip install -e . |
|
``` |
|
|
|
Running pip with the `-e` flag will let you make changes to the Python files |
|
directly and have those reflected when you run `mlagents-learn`. It is important |
|
to install these packages in this order as the `mlagents` package depends on |
|
`mlagents_envs`, and installing it in the other order will download |
|
`mlagents_envs` from PyPi. |
|
|
|
## (Optional) Step 4: GPU Training using The ML-Agents Toolkit |
|
|
|
GPU is not required for the ML-Agents Toolkit and won't speed up the PPO |
|
algorithm a lot during training(but something in the future will benefit from |
|
GPU). This is a guide for advanced users who want to train using GPUs. |
|
Additionally, you will need to check if your GPU is CUDA compatible. Please |
|
check Nvidia's page [here](https://developer.nvidia.com/cuda-gpus). |
|
|
|
Currently for the ML-Agents Toolkit, only CUDA v9.0 and cuDNN v7.0.5 is |
|
supported. |
|
|
|
### Install Nvidia CUDA toolkit |
|
|
|
[Download](https://developer.nvidia.com/cuda-toolkit-archive) and install the |
|
CUDA toolkit 9.0 from Nvidia's archive. The toolkit includes GPU-accelerated |
|
libraries, debugging and optimization tools, a C/C++ (Step Visual Studio 2017) |
|
compiler and a runtime library and is needed to run the ML-Agents Toolkit. In |
|
this guide, we are using version |
|
[9.0.176](https://developer.nvidia.com/compute/cuda/9.0/Prod/network_installers/cuda_9.0.176_win10_network-exe)). |
|
|
|
Before installing, please make sure you **close any running instances of Unity |
|
or Visual Studio**. |
|
|
|
Run the installer and select the Express option. Note the directory where you |
|
installed the CUDA toolkit. In this guide, we installed in the directory |
|
`C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0` |
|
|
|
### Install Nvidia cuDNN library |
|
|
|
[Download](https://developer.nvidia.com/cudnn) and install the cuDNN library |
|
from Nvidia. cuDNN is a GPU-accelerated library of primitives for deep neural |
|
networks. Before you can download, you will need to sign up for free to the |
|
Nvidia Developer Program. |
|
|
|
<p align="center"> |
|
<img src="images/cuDNN_membership_required.png" |
|
alt="cuDNN membership required" |
|
width="500" border="10" /> |
|
</p> |
|
|
|
Once you've signed up, go back to the cuDNN |
|
[downloads page](https://developer.nvidia.com/cudnn). You may or may not be |
|
asked to fill out a short survey. When you get to the list cuDNN releases, |
|
**make sure you are downloading the right version for the CUDA toolkit you |
|
installed in Step 1.** In this guide, we are using version 7.0.5 for CUDA |
|
toolkit version 9.0 |
|
([direct link](https://developer.nvidia.com/compute/machine-learning/cudnn/secure/v7.0.5/prod/9.0_20171129/cudnn-9.0-windows10-x64-v7)). |
|
|
|
After you have downloaded the cuDNN files, you will need to extract the files |
|
into the CUDA toolkit directory. In the cuDNN zip file, there are three folders |
|
called `bin`, `include`, and `lib`. |
|
|
|
<p align="center"> |
|
<img src="images/cudnn_zip_files.PNG" |
|
alt="cuDNN zip files" |
|
width="500" border="10" /> |
|
</p> |
|
|
|
Copy these three folders into the CUDA toolkit directory. The CUDA toolkit |
|
directory is located at |
|
`C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0` |
|
|
|
<p align="center"> |
|
<img src="images/cuda_toolkit_directory.PNG" |
|
alt="cuda toolkit directory" |
|
width="500" border="10" /> |
|
</p> |
|
|
|
### Set Environment Variables |
|
|
|
You will need to add one environment variable and two path variables. |
|
|
|
To set the environment variable, type `environment variables` in the search bar |
|
(this can be reached by hitting the Windows key or the bottom left Windows |
|
button). You should see an option called **Edit the system environment |
|
variables**. |
|
|
|
<p align="center"> |
|
<img src="images/edit_env_var.png" |
|
alt="edit env variables" |
|
width="250" border="10" /> |
|
</p> |
|
|
|
From here, click the **Environment Variables** button. Click **New** to add a |
|
new system variable _(make sure you do this under **System variables** and not |
|
User variables_. |
|
|
|
<p align="center"> |
|
<img src="images/new_system_variable.PNG" |
|
alt="new system variable" |
|
width="500" border="10" /> |
|
</p> |
|
|
|
For **Variable Name**, enter `CUDA_HOME`. For the variable value, put the |
|
directory location for the CUDA toolkit. In this guide, the directory location |
|
is `C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0`. Press **OK** once. |
|
|
|
<p align="center"> |
|
<img src="images/system_variable_name_value.PNG" |
|
alt="system variable names and values" |
|
width="500" border="10" /> |
|
</p> |
|
|
|
To set the two path variables, inside the same **Environment Variables** window |
|
and under the second box called **System Variables**, find a variable called |
|
`Path` and click **Edit**. You will add two directories to the list. For this |
|
guide, the two entries would look like: |
|
|
|
```console |
|
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64 |
|
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\extras\CUPTI\libx64 |
|
``` |
|
|
|
Make sure to replace the relevant directory location with the one you have |
|
installed. _Please note that case sensitivity matters_. |
|
|
|
<p align="center"> |
|
<img src="images/path_variables.PNG" |
|
alt="Path variables" |
|
width="500" border="10" /> |
|
</p> |
|
|
|
### Install TensorFlow GPU |
|
|
|
Next, install `tensorflow-gpu` using `pip`. You'll need version 1.7.1. In an |
|
Anaconda Prompt with the Conda environment ml-agents activated, type in the |
|
following command to uninstall TensorFlow for cpu and install TensorFlow for gpu |
|
_(make sure you are connected to the Internet)_: |
|
|
|
```sh |
|
pip uninstall tensorflow |
|
pip install tensorflow-gpu==1.7.1 |
|
``` |
|
|
|
Lastly, you should test to see if everything installed properly and that |
|
TensorFlow can identify your GPU. In the same Anaconda Prompt, open Python in |
|
the Prompt by calling: |
|
|
|
```sh |
|
python |
|
``` |
|
|
|
And then type the following commands: |
|
|
|
```python |
|
import tensorflow as tf |
|
|
|
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True)) |
|
``` |
|
|
|
You should see something similar to: |
|
|
|
```console |
|
Found device 0 with properties ... |
|
``` |
|
|
|
## Acknowledgments |
|
|
|
We would like to thank |
|
[Jason Weimann](https://unity3d.college/2017/10/25/machine-learning-in-unity3d-setting-up-the-environment-tensorflow-for-agentml-on-windows-10/) |
|
and |
|
[Nitish S. Mutha](http://blog.nitishmutha.com/tensorflow/2017/01/22/TensorFlow-with-gpu-for-windows.html) |
|
for writing the original articles which were used to create this guide. |
|
|