From 5a4cb989d1c6b0615b7a343e53259c8a075c7aba Mon Sep 17 00:00:00 2001 From: vincentpierre Date: Mon, 15 Oct 2018 12:01:47 -0700 Subject: [PATCH 01/12] Documentation Update --- README.md | 2 +- docs/Basic-Guide.md | 40 +++++++++++++++++++++++++++++++--------- docs/Migrating.md | 23 ++++++++++++++++------- 3 files changed, 48 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index cec91e6cb6..251c3fd2a4 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ developer communities. * For more information, in addition to installation and usage instructions, see our [documentation home](docs/Readme.md). * If you are a researcher interested in a discussion of Unity as an AI platform, see a pre-print of our [reference paper on Unity and the ML-Agents Toolkit](https://arxiv.org/abs/1809.02627). Also, see below for instructions on citing this paper. -* If you have used a version of the ML-Agents toolkit prior to v0.6, we strongly +* If you have used a prior version of the ML-Agents toolkit, we strongly recommend our [guide on migrating from earlier versions](docs/Migrating.md). ## Additional Resources diff --git a/docs/Basic-Guide.md b/docs/Basic-Guide.md index e55f0434e9..a32d071b1e 100644 --- a/docs/Basic-Guide.md +++ b/docs/Basic-Guide.md @@ -11,9 +11,7 @@ the basic concepts of Unity. ## Setting up the ML-Agents Toolkit within Unity In order to use the ML-Agents toolkit within Unity, you need to change some -Unity settings first. You will also need to have appropriate inference backends -installed in order to run your models inside of Unity. See [here](Inference-Engine.md) -for more information. +Unity settings first. 1. Launch Unity 2. On the Projects dialog, choose the **Open** option at the top of the window. @@ -27,6 +25,20 @@ for more information. Equivalent or .NET 4.x Equivalent)** 6. Go to **File** > **Save Project** +## Setting up the Inference Engine + +In order to run pre-trained models of agents behaviors, you will need to set-up the +[Inference Engine](Inference-Engine.md). The Inference Engine is a general API to +run Neural Network models in Unity that leverages existing inference libraries such +as TensorFlowSharp and CoreML. The models we ship with our examples and the models +generated with our trainers use the TensorFlowSharp inference backend : +They have a `.tf` extension. This means that you will not be able to use them +without first installing the TensorflowSharp backend. You can find instructions +on how to install the TensorflowSharp backend [here](Inference-Engine.md). +Once the backend is installed, you will need to reimport the models : Right click +on the `.tf` model and select `Reimport`. + + ## Running a Pre-trained Model 1. In the **Project** window, go to `Assets/ML-Agents/Examples/3DBall/Scenes` folder @@ -63,15 +75,25 @@ More information and documentation is provided in the ### Adding a Brain to the training session -Since we are going to build this environment to conduct training, we need to add -the Brain to the training session. This allows the Agents linked to that Brain -to communicate with the external training process when making their decisions. - -1. Assign the **3DBallLearning** to the agents you would like to train and the **3DBallPlayer** Brain to the agents you want to control manually. - __Note:__ You can only perform training with an `Learning Brain`. +To set up the environment for training, you will need specify which agents are contributing +to the training and which Brain is being trained. You can only perform training with + an `Learning Brain`. + +1. Assign the **3DBallLearning** to the agents you would like to train. + __Note:__ You can assign the same brain to multiple agents at once : To do so, you can + use the prefab system. When an agent is created from a prefab, modifying the prefab + will modify the agent as well. If the agent does not synchronize with the prefab, you + can hit the Revert button on top of the Inspector. + Alternatively, you can select multiple agents in the scene and modify their `Brain` + property all at once. 2. Select the **Ball3DAcademy** GameObject and make sure the **3DBallLearning** Brain is in the Broadcast Hub. In order to train, you need to toggle the `Control` checkbox. + +__Note:__ Assigning a Brain to an agent (dragging a Brain into the `Brain` property of +the agent) means that the Brain will be making decision for that agent. Whereas dragging +a Brain into the Broadcast Hub means that the Brain will be exposed to the Python process. +You need both these steps to train a model. ![Set Brain to External](images/mlagents-SetBrainToTrain.png) diff --git a/docs/Migrating.md b/docs/Migrating.md index 683c96518f..d251c9e075 100644 --- a/docs/Migrating.md +++ b/docs/Migrating.md @@ -1,10 +1,16 @@ # Migrating ## Migrating from ML-Agents toolkit v0.5 to v0.6 + ### Important -* Brains are now Scriptable Objects instead of MonoBehaviors. This will - allow you to set Brains into prefabs and use the same brains across - scenes. + +* Brains are now Scriptable Objects instead of MonoBehaviors. +* You can no longer modify the type of a Brain. If you want to switch + between `PlayerBrain` and `LearningBrain` for multiple agents, + you will need to assign a new Brain to each agent separately. + __Note:__ You can pass the same brain to multiple agents in a scene by +leveraging Unity's prefab system or look for all the agents in a scene +using the search bar of the `Hierarchy` window with the word `Agent`. * To update a scene from v0.5 to v0.6, you must: * Remove the `Brain` GameObjects in the scene * Create new `Brain` Scriptable Objects using `Assets -> Create -> @@ -13,10 +19,13 @@ in the `Brain` GameObjects * Agents have a `Brain` field in the Inspector, you need to drag the appropriate Brain asset in it. - -__Note:__ You can pass the same brain to multiple agents in a scene by -leveraging Unity's prefab system or look for all the agents in a scene -using the search bar of the `Hierarchy` window with the word `Agent`. +* We modified the way we do inference with ML-Agents. All previous `.bytes` + files can no longer be used. The training process and the shipped models + have now a `.tf` extension and use TensorflowSharp as a backend for the + [Inference Engine](Inference-Engine.md). + __Note:__ You will need to delete the previous TensorFlowSharp package + and install the new one to do inference. + ## Migrating from ML-Agents toolkit v0.4 to v0.5 From d0ce35e6242152814c02606bb2e6a32c56980a27 Mon Sep 17 00:00:00 2001 From: vincentpierre Date: Mon, 15 Oct 2018 18:05:39 -0700 Subject: [PATCH 02/12] addressed comments --- docs/Basic-Guide.md | 17 +++++++++-------- docs/Migrating.md | 2 +- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/docs/Basic-Guide.md b/docs/Basic-Guide.md index a32d071b1e..6dc0c381ea 100644 --- a/docs/Basic-Guide.md +++ b/docs/Basic-Guide.md @@ -33,8 +33,8 @@ run Neural Network models in Unity that leverages existing inference libraries s as TensorFlowSharp and CoreML. The models we ship with our examples and the models generated with our trainers use the TensorFlowSharp inference backend : They have a `.tf` extension. This means that you will not be able to use them -without first installing the TensorflowSharp backend. You can find instructions -on how to install the TensorflowSharp backend [here](Inference-Engine.md). +without first installing the TensorFlowSharp backend. You can find instructions +on how to install the TensorFlowSharp backend [here](Inference-Engine.md). Once the backend is installed, you will need to reimport the models : Right click on the `.tf` model and select `Reimport`. @@ -45,15 +45,16 @@ on the `.tf` model and select `Reimport`. and open the `3DBall` scene file. 2. In the **Project** window, go to `Assets/ML-Agents/Examples/3DBall/Prefabs` folder and select the `Game/Platform` prefab. -3. In the `Ball 3D Agent` Component: Drag the **3DBallLearning** located into +3. In the `Ball 3D Agent` Component: Drag the **3DBallLearning** Brain located into `Assets/ML-Agents/Examples/3DBall/Brains` into the `Brain` property of the `Ball 3D Agent`. 4. Make sure that all of the Agents in the Scene now have **3DBallLearning** as `Brain`. - __Note__ : You can modify multiple game objects in a scene by selecting them all at once using the search bar in the Scene Hierarchy. + __Note__ : You can modify multiple game objects in a scene by selecting them all at + once using the search bar in the Scene Hierarchy. 5. In the **Project** window, locate the `Assets/ML-Agents/Examples/3DBall/TFModels` folder. -6. Drag the `3DBall` model file from the `Assets/ML-Agents/Examples/3DBall/TFModels` - folder to the **Model** field of the **3DBallLearning**. +6. Drag the `3DBallLearning` model file from the `Assets/ML-Agents/Examples/3DBall/TFModels` + folder to the **Model** field of the **3DBallLearning** Brain. 7. Click the **Play** button and you will see the platforms balance the balls using the pretrained model. @@ -77,9 +78,9 @@ More information and documentation is provided in the To set up the environment for training, you will need specify which agents are contributing to the training and which Brain is being trained. You can only perform training with - an `Learning Brain`. +a `Learning Brain`. -1. Assign the **3DBallLearning** to the agents you would like to train. +1. Assign the **3DBallLearning** Brain to the agents you would like to train. __Note:__ You can assign the same brain to multiple agents at once : To do so, you can use the prefab system. When an agent is created from a prefab, modifying the prefab will modify the agent as well. If the agent does not synchronize with the prefab, you diff --git a/docs/Migrating.md b/docs/Migrating.md index d251c9e075..cf5a7e3d96 100644 --- a/docs/Migrating.md +++ b/docs/Migrating.md @@ -19,7 +19,7 @@ using the search bar of the `Hierarchy` window with the word `Agent`. in the `Brain` GameObjects * Agents have a `Brain` field in the Inspector, you need to drag the appropriate Brain asset in it. -* We modified the way we do inference with ML-Agents. All previous `.bytes` +* We have changed the way ML-Agents models perform inference. All previous `.bytes` files can no longer be used. The training process and the shipped models have now a `.tf` extension and use TensorflowSharp as a backend for the [Inference Engine](Inference-Engine.md). From 9d6408acc2b818fc9a52ada7b31214561d1b24d4 Mon Sep 17 00:00:00 2001 From: vincentpierre Date: Mon, 15 Oct 2018 18:53:57 -0700 Subject: [PATCH 03/12] new images for the recorder --- docs/images/demo_component.png | Bin 30269 -> 29173 bytes docs/images/demo_inspector.png | Bin 65515 -> 64162 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/demo_component.png b/docs/images/demo_component.png index 489e77bd1072dd15258170cf1d6e780d5d5661b5..6cc78380bbfd66da1d4c23e709b3adcbbe3b70e8 100644 GIT binary patch literal 29173 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 bzod?Drk!=O8<+xwuUiT-&!2viGVuLB`T%Aw literal 30269 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 PdQVYSRi*@F^!|SUMXU{| diff --git a/docs/images/demo_inspector.png b/docs/images/demo_inspector.png index ab69f2f7649f8fa07cc59bd127b484981c9bd4b3..9cb7a6098013d54eb09b18ab0ccff5b1e6050116 100644 GIT binary patch literal 64162 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
    9dT^@-(#$AoZ|GsKbjiG~`HCE0dhO?<>7I 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

    a-L$uMMUB*kB``buxb=Acm2Ke{;Y~)o7_Fyv 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 F{{VeD790Qo literal 65515 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 h1aJHQeA}wuRISoY@$ Date: Mon, 15 Oct 2018 20:01:21 -0700 Subject: [PATCH 04/12] Improvements to the docs --- README.md | 2 +- docs/Basic-Guide.md | 24 +++++++++++++----------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 251c3fd2a4..40b1eadf84 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ developer communities. * For more information, in addition to installation and usage instructions, see our [documentation home](docs/Readme.md). * If you are a researcher interested in a discussion of Unity as an AI platform, see a pre-print of our [reference paper on Unity and the ML-Agents Toolkit](https://arxiv.org/abs/1809.02627). Also, see below for instructions on citing this paper. -* If you have used a prior version of the ML-Agents toolkit, we strongly +* If you have used an earlier version of the ML-Agents toolkit, we strongly recommend our [guide on migrating from earlier versions](docs/Migrating.md). ## Additional Resources diff --git a/docs/Basic-Guide.md b/docs/Basic-Guide.md index 6dc0c381ea..34f88d369f 100644 --- a/docs/Basic-Guide.md +++ b/docs/Basic-Guide.md @@ -10,8 +10,8 @@ the basic concepts of Unity. ## Setting up the ML-Agents Toolkit within Unity -In order to use the ML-Agents toolkit within Unity, you need to change some -Unity settings first. +In order to use the ML-Agents toolkit within Unity, you need to change a few +Unity settings. 1. Launch Unity 2. On the Projects dialog, choose the **Open** option at the top of the window. @@ -20,20 +20,22 @@ Unity settings first. 4. Go to **Edit** > **Project Settings** > **Player** 5. For **each** of the platforms you target (**PC, Mac and Linux Standalone**, **iOS** or **Android**): - 1. Option the **Other Settings** section. + 1. Expand the **Other Settings** section. 2. Select **Scripting Runtime Version** to **Experimental (.NET 4.6 Equivalent or .NET 4.x Equivalent)** 6. Go to **File** > **Save Project** ## Setting up the Inference Engine -In order to run pre-trained models of agents behaviors, you will need to set-up the -[Inference Engine](Inference-Engine.md). The Inference Engine is a general API to -run Neural Network models in Unity that leverages existing inference libraries such -as TensorFlowSharp and CoreML. The models we ship with our examples and the models -generated with our trainers use the TensorFlowSharp inference backend : -They have a `.tf` extension. This means that you will not be able to use them -without first installing the TensorFlowSharp backend. You can find instructions +We provide pre-trained models for all the agents in our all demo environments. +To be able to run those models, you'll first need to set-up the Inference +Engine.The Inference Engine is a general API to +run neural network models in Unity that leverages existing inference libraries such +as TensorFlowSharp and Apple's CoreML. Since the ML-Agents Toolkit uses TensorFlow +for training neural network models, the output model format is TensorFlow and +the model files include a `.tf` extension. Consequently, you need to install +the TensorFlowSharp backend to be able to run these models within the Unity +Editor. You can find instructions on how to install the TensorFlowSharp backend [here](Inference-Engine.md). Once the backend is installed, you will need to reimport the models : Right click on the `.tf` model and select `Reimport`. @@ -45,7 +47,7 @@ on the `.tf` model and select `Reimport`. and open the `3DBall` scene file. 2. In the **Project** window, go to `Assets/ML-Agents/Examples/3DBall/Prefabs` folder and select the `Game/Platform` prefab. -3. In the `Ball 3D Agent` Component: Drag the **3DBallLearning** Brain located into +3. In the `Ball 3D Agent` Component: Drag the **3DBallLearning** Brain located in `Assets/ML-Agents/Examples/3DBall/Brains` into the `Brain` property of the `Ball 3D Agent`. 4. Make sure that all of the Agents in the Scene now have **3DBallLearning** as `Brain`. From ba4421cf0c7e150aad7c96c3306c1392a16e7d0a Mon Sep 17 00:00:00 2001 From: vincentpierre Date: Tue, 16 Oct 2018 14:43:59 -0700 Subject: [PATCH 05/12] Address the comments --- docs/Basic-Guide.md | 7 ++++--- docs/Migrating.md | 33 +++++++++++++++++++++++++-------- 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/docs/Basic-Guide.md b/docs/Basic-Guide.md index 34f88d369f..19f5f911aa 100644 --- a/docs/Basic-Guide.md +++ b/docs/Basic-Guide.md @@ -27,7 +27,7 @@ Unity settings. ## Setting up the Inference Engine -We provide pre-trained models for all the agents in our all demo environments. +We provide pre-trained models for all the agents in all our demo environments. To be able to run those models, you'll first need to set-up the Inference Engine.The Inference Engine is a general API to run neural network models in Unity that leverages existing inference libraries such @@ -78,7 +78,7 @@ More information and documentation is provided in the ### Adding a Brain to the training session -To set up the environment for training, you will need specify which agents are contributing +To set up the environment for training, you will need to specify which agents are contributing to the training and which Brain is being trained. You can only perform training with a `Learning Brain`. @@ -96,7 +96,8 @@ a `Learning Brain`. __Note:__ Assigning a Brain to an agent (dragging a Brain into the `Brain` property of the agent) means that the Brain will be making decision for that agent. Whereas dragging a Brain into the Broadcast Hub means that the Brain will be exposed to the Python process. -You need both these steps to train a model. +The `Control` checkbox means that in addition to being exposed to Python, the Brain will +be controlled by the Python process (required for training). ![Set Brain to External](images/mlagents-SetBrainToTrain.png) diff --git a/docs/Migrating.md b/docs/Migrating.md index cf5a7e3d96..6b0407427f 100644 --- a/docs/Migrating.md +++ b/docs/Migrating.md @@ -12,19 +12,36 @@ leveraging Unity's prefab system or look for all the agents in a scene using the search bar of the `Hierarchy` window with the word `Agent`. * To update a scene from v0.5 to v0.6, you must: - * Remove the `Brain` GameObjects in the scene + * Remove the `Brain` GameObjects in the scene. (Delete all of the + Brain GameObjects under Academy in the scene.) * Create new `Brain` Scriptable Objects using `Assets -> Create -> - ML-Agents` + ML-Agents` for each type of the Brain you plan to use, and put + the created files under a folder called Brains within your project. * Edit their `Brain Parameters` to be the same as the parameters used - in the `Brain` GameObjects + in the `Brain` GameObjects. * Agents have a `Brain` field in the Inspector, you need to drag the - appropriate Brain asset in it. + appropriate Brain ScriptableObject in it. + + __Note:__ You will need to delete the previous TensorFlowSharp package + and install the new one to do inference. To correctly delete the previous + TensorFlowSharp package, Delete all of the files under `ML-Agents/Plugins` + folder except the files under `ML-Agents/Plugins/ProtoBuffer`. + +* We replaced the **Internal** and **External** Brain with **Learning Brain**. + When you need to train a model, you need to drag it into the `Training Hub` + inside the `Academy` and check the `Control` checkbox. +* We removed the `Broadcast` checkbox of the Brain, to use the broadcast + functionality, you need to drag the Brain into the `Broadcast Hub`. +* When training multiple brains at the same time, each model is now stored + into a separate model file rather than in the same file under different + graph scopes. * We have changed the way ML-Agents models perform inference. All previous `.bytes` - files can no longer be used. The training process and the shipped models - have now a `.tf` extension and use TensorflowSharp as a backend for the + files can no longer be used (you will have to retrain them). The models + produced by the training process and the shipped models have now a `.tf` + extension and use TensorflowSharp as a backend for the [Inference Engine](Inference-Engine.md). - __Note:__ You will need to delete the previous TensorFlowSharp package - and install the new one to do inference. +* To use a `.tf` model, drag it inside the `Model` property of the `Learning Brain` + ## Migrating from ML-Agents toolkit v0.4 to v0.5 From efa9a9d93e95c601b56131140abf2b802ec613e9 Mon Sep 17 00:00:00 2001 From: vincentpierre Date: Tue, 16 Oct 2018 15:24:37 -0700 Subject: [PATCH 06/12] Core_ML typo --- docs/Basic-Guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Basic-Guide.md b/docs/Basic-Guide.md index 19f5f911aa..f401321e27 100644 --- a/docs/Basic-Guide.md +++ b/docs/Basic-Guide.md @@ -31,7 +31,7 @@ We provide pre-trained models for all the agents in all our demo environments. To be able to run those models, you'll first need to set-up the Inference Engine.The Inference Engine is a general API to run neural network models in Unity that leverages existing inference libraries such -as TensorFlowSharp and Apple's CoreML. Since the ML-Agents Toolkit uses TensorFlow +as TensorFlowSharp and Apple's Core ML. Since the ML-Agents Toolkit uses TensorFlow for training neural network models, the output model format is TensorFlow and the model files include a `.tf` extension. Consequently, you need to install the TensorFlowSharp backend to be able to run these models within the Unity From 0f3368932bcee5a884f0a9cf28bc9f9e6f0dbc8b Mon Sep 17 00:00:00 2001 From: vincentpierre Date: Tue, 16 Oct 2018 15:47:45 -0700 Subject: [PATCH 07/12] Updated the links to inference repo --- docs/Background-TensorFlow.md | 2 +- docs/Basic-Guide.md | 2 +- docs/FAQ.md | 2 +- docs/Getting-Started-with-Balance-Ball.md | 2 +- docs/Learning-Environment-Design-Learning-Brains.md | 2 +- docs/Migrating.md | 2 +- docs/Readme.md | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/Background-TensorFlow.md b/docs/Background-TensorFlow.md index f38ecfe88f..026a5bf31f 100644 --- a/docs/Background-TensorFlow.md +++ b/docs/Background-TensorFlow.md @@ -39,6 +39,6 @@ recommend this ## Tensorflow Model Inference One of the drawbacks of TensorFlow is that it does not provide a native C# API. -We have are using the [Unity Machine Learning Inference SDK](Inference-Engine.md) to +We have are using the [Unity Machine Learning Inference SDK](https://github.com/Unity-Technologies/ml-inference/blob/0.1.0/docs/Using-ML-Agents-Toolkit-With-ML-Inference-SDK.md) to run the models inside of Unity. In order to use it, you will need to have an appropriate backend downloaded. diff --git a/docs/Basic-Guide.md b/docs/Basic-Guide.md index f401321e27..673d8d99c1 100644 --- a/docs/Basic-Guide.md +++ b/docs/Basic-Guide.md @@ -36,7 +36,7 @@ for training neural network models, the output model format is TensorFlow and the model files include a `.tf` extension. Consequently, you need to install the TensorFlowSharp backend to be able to run these models within the Unity Editor. You can find instructions -on how to install the TensorFlowSharp backend [here](Inference-Engine.md). +on how to install the TensorFlowSharp backend [here](https://github.com/Unity-Technologies/ml-inference/blob/0.1.0/docs/Using-ML-Agents-Toolkit-With-ML-Inference-SDK.md). Once the backend is installed, you will need to reimport the models : Right click on the `.tf` model and select `Reimport`. diff --git a/docs/FAQ.md b/docs/FAQ.md index e58fc5589a..ce3633570e 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -16,7 +16,7 @@ Unity](Installation.md#setting-up-ml-agent-within-unity) for solution. ## Cannot drag Model into Learning Brain You migh not have the appropriate backend required to import the model. Refer to the -[Inference Engine](Inference-Engine.md) for more information on how to import backends +[Inference Engine](https://github.com/Unity-Technologies/ml-inference/blob/0.1.0/docs/Using-ML-Agents-Toolkit-With-ML-Inference-SDK.md) for more information on how to import backends and reimport the asset. diff --git a/docs/Getting-Started-with-Balance-Ball.md b/docs/Getting-Started-with-Balance-Ball.md index bf885de0f3..2b3f2e2ca8 100644 --- a/docs/Getting-Started-with-Balance-Ball.md +++ b/docs/Getting-Started-with-Balance-Ball.md @@ -279,7 +279,7 @@ containing the trained model is not exported into the ml-agents folder. ### Setting up Inference Support In order to run neural network models inside of Unity, you will need to setup the -Inference Engine with an appropriate backend. See [here](Inference-Engine.md) for more +Inference Engine with an appropriate backend. See [here](https://github.com/Unity-Technologies/ml-inference/blob/0.1.0/docs/Using-ML-Agents-Toolkit-With-ML-Inference-SDK.md) for more information. ### Embedding the trained model into Unity diff --git a/docs/Learning-Environment-Design-Learning-Brains.md b/docs/Learning-Environment-Design-Learning-Brains.md index 7c68977217..dee03221d2 100644 --- a/docs/Learning-Environment-Design-Learning-Brains.md +++ b/docs/Learning-Environment-Design-Learning-Brains.md @@ -44,7 +44,7 @@ To use a graph model: 1. Select the **Learning Brain** asset in the **Project** window of the Unity Editor. **Note:** In order to use the **Learning** Brain, you have appropriate backend for the - Inference Engine. See [here](Inference-Engine.md). + Inference Engine. See [here](https://github.com/Unity-Technologies/ml-inference/blob/0.1.0/docs/Using-ML-Agents-Toolkit-With-ML-Inference-SDK.md). 2. Import the `model_name` file produced by the PPO training program. (Where `model_name` is the name of the model file, which is constructed from the name of your Unity environment executable and the run-id diff --git a/docs/Migrating.md b/docs/Migrating.md index 6b0407427f..774b5d1ee3 100644 --- a/docs/Migrating.md +++ b/docs/Migrating.md @@ -39,7 +39,7 @@ using the search bar of the `Hierarchy` window with the word `Agent`. files can no longer be used (you will have to retrain them). The models produced by the training process and the shipped models have now a `.tf` extension and use TensorflowSharp as a backend for the - [Inference Engine](Inference-Engine.md). + [Inference Engine](https://github.com/Unity-Technologies/ml-inference/blob/0.1.0/docs/Using-ML-Agents-Toolkit-With-ML-Inference-SDK.md). * To use a `.tf` model, drag it inside the `Model` property of the `Learning Brain` diff --git a/docs/Readme.md b/docs/Readme.md index 7a47ad7948..fa61e969f1 100644 --- a/docs/Readme.md +++ b/docs/Readme.md @@ -42,7 +42,7 @@ * [Using TensorBoard to Observe Training](Using-Tensorboard.md) ## Inference -* [Unity Machine Learning Inference SDK](Inference-Engine.md) +* [Unity Machine Learning Inference SDK](https://github.com/Unity-Technologies/ml-inference/blob/0.1.0/docs/Using-ML-Agents-Toolkit-With-ML-Inference-SDK.md) ## Help From 48fd830f0c5cb3ff576c0fa15496b3255efcdae1 Mon Sep 17 00:00:00 2001 From: vincentpierre Date: Tue, 16 Oct 2018 16:47:45 -0700 Subject: [PATCH 08/12] Put back Inference-Engine.md --- docs/Background-TensorFlow.md | 2 +- docs/Basic-Guide.md | 2 +- docs/FAQ.md | 2 +- docs/Getting-Started-with-Balance-Ball.md | 2 +- docs/Learning-Environment-Design-Learning-Brains.md | 2 +- docs/Migrating.md | 2 +- docs/Readme.md | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/Background-TensorFlow.md b/docs/Background-TensorFlow.md index 026a5bf31f..f38ecfe88f 100644 --- a/docs/Background-TensorFlow.md +++ b/docs/Background-TensorFlow.md @@ -39,6 +39,6 @@ recommend this ## Tensorflow Model Inference One of the drawbacks of TensorFlow is that it does not provide a native C# API. -We have are using the [Unity Machine Learning Inference SDK](https://github.com/Unity-Technologies/ml-inference/blob/0.1.0/docs/Using-ML-Agents-Toolkit-With-ML-Inference-SDK.md) to +We have are using the [Unity Machine Learning Inference SDK](Inference-Engine.md) to run the models inside of Unity. In order to use it, you will need to have an appropriate backend downloaded. diff --git a/docs/Basic-Guide.md b/docs/Basic-Guide.md index 673d8d99c1..f401321e27 100644 --- a/docs/Basic-Guide.md +++ b/docs/Basic-Guide.md @@ -36,7 +36,7 @@ for training neural network models, the output model format is TensorFlow and the model files include a `.tf` extension. Consequently, you need to install the TensorFlowSharp backend to be able to run these models within the Unity Editor. You can find instructions -on how to install the TensorFlowSharp backend [here](https://github.com/Unity-Technologies/ml-inference/blob/0.1.0/docs/Using-ML-Agents-Toolkit-With-ML-Inference-SDK.md). +on how to install the TensorFlowSharp backend [here](Inference-Engine.md). Once the backend is installed, you will need to reimport the models : Right click on the `.tf` model and select `Reimport`. diff --git a/docs/FAQ.md b/docs/FAQ.md index ce3633570e..e58fc5589a 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -16,7 +16,7 @@ Unity](Installation.md#setting-up-ml-agent-within-unity) for solution. ## Cannot drag Model into Learning Brain You migh not have the appropriate backend required to import the model. Refer to the -[Inference Engine](https://github.com/Unity-Technologies/ml-inference/blob/0.1.0/docs/Using-ML-Agents-Toolkit-With-ML-Inference-SDK.md) for more information on how to import backends +[Inference Engine](Inference-Engine.md) for more information on how to import backends and reimport the asset. diff --git a/docs/Getting-Started-with-Balance-Ball.md b/docs/Getting-Started-with-Balance-Ball.md index 2b3f2e2ca8..bf885de0f3 100644 --- a/docs/Getting-Started-with-Balance-Ball.md +++ b/docs/Getting-Started-with-Balance-Ball.md @@ -279,7 +279,7 @@ containing the trained model is not exported into the ml-agents folder. ### Setting up Inference Support In order to run neural network models inside of Unity, you will need to setup the -Inference Engine with an appropriate backend. See [here](https://github.com/Unity-Technologies/ml-inference/blob/0.1.0/docs/Using-ML-Agents-Toolkit-With-ML-Inference-SDK.md) for more +Inference Engine with an appropriate backend. See [here](Inference-Engine.md) for more information. ### Embedding the trained model into Unity diff --git a/docs/Learning-Environment-Design-Learning-Brains.md b/docs/Learning-Environment-Design-Learning-Brains.md index dee03221d2..7c68977217 100644 --- a/docs/Learning-Environment-Design-Learning-Brains.md +++ b/docs/Learning-Environment-Design-Learning-Brains.md @@ -44,7 +44,7 @@ To use a graph model: 1. Select the **Learning Brain** asset in the **Project** window of the Unity Editor. **Note:** In order to use the **Learning** Brain, you have appropriate backend for the - Inference Engine. See [here](https://github.com/Unity-Technologies/ml-inference/blob/0.1.0/docs/Using-ML-Agents-Toolkit-With-ML-Inference-SDK.md). + Inference Engine. See [here](Inference-Engine.md). 2. Import the `model_name` file produced by the PPO training program. (Where `model_name` is the name of the model file, which is constructed from the name of your Unity environment executable and the run-id diff --git a/docs/Migrating.md b/docs/Migrating.md index 774b5d1ee3..6b0407427f 100644 --- a/docs/Migrating.md +++ b/docs/Migrating.md @@ -39,7 +39,7 @@ using the search bar of the `Hierarchy` window with the word `Agent`. files can no longer be used (you will have to retrain them). The models produced by the training process and the shipped models have now a `.tf` extension and use TensorflowSharp as a backend for the - [Inference Engine](https://github.com/Unity-Technologies/ml-inference/blob/0.1.0/docs/Using-ML-Agents-Toolkit-With-ML-Inference-SDK.md). + [Inference Engine](Inference-Engine.md). * To use a `.tf` model, drag it inside the `Model` property of the `Learning Brain` diff --git a/docs/Readme.md b/docs/Readme.md index fa61e969f1..7a47ad7948 100644 --- a/docs/Readme.md +++ b/docs/Readme.md @@ -42,7 +42,7 @@ * [Using TensorBoard to Observe Training](Using-Tensorboard.md) ## Inference -* [Unity Machine Learning Inference SDK](https://github.com/Unity-Technologies/ml-inference/blob/0.1.0/docs/Using-ML-Agents-Toolkit-With-ML-Inference-SDK.md) +* [Unity Machine Learning Inference SDK](Inference-Engine.md) ## Help From cafac95dac46f57572484ad70afad9448b9a2502 Mon Sep 17 00:00:00 2001 From: vincentpierre Date: Tue, 16 Oct 2018 17:40:19 -0700 Subject: [PATCH 09/12] fix typos : brain --- docs/Basic-Guide.md | 2 +- docs/Getting-Started-with-Balance-Ball.md | 14 ++--- docs/Learning-Environment-Create-New.md | 14 ++--- docs/Learning-Environment-Design-Academy.md | 6 +-- docs/Learning-Environment-Design-Agents.md | 2 +- docs/Learning-Environment-Design-Brains.md | 6 +-- docs/Learning-Environment-Design.md | 10 ++-- docs/Learning-Environment-Examples.md | 4 +- docs/Learning-Environment-Executable.md | 2 +- docs/ML-Agents-Overview.md | 4 +- docs/Migrating.md | 6 +-- docs/Readme.md | 58 --------------------- docs/Training-Imitation-Learning.md | 6 +-- 13 files changed, 38 insertions(+), 96 deletions(-) diff --git a/docs/Basic-Guide.md b/docs/Basic-Guide.md index f401321e27..10cbb7108a 100644 --- a/docs/Basic-Guide.md +++ b/docs/Basic-Guide.md @@ -83,7 +83,7 @@ to the training and which Brain is being trained. You can only perform training a `Learning Brain`. 1. Assign the **3DBallLearning** Brain to the agents you would like to train. - __Note:__ You can assign the same brain to multiple agents at once : To do so, you can + __Note:__ You can assign the same Brain to multiple agents at once : To do so, you can use the prefab system. When an agent is created from a prefab, modifying the prefab will modify the agent as well. If the agent does not synchronize with the prefab, you can hit the Revert button on top of the Inspector. diff --git a/docs/Getting-Started-with-Balance-Ball.md b/docs/Getting-Started-with-Balance-Ball.md index bf885de0f3..65a890d12b 100644 --- a/docs/Getting-Started-with-Balance-Ball.md +++ b/docs/Getting-Started-with-Balance-Ball.md @@ -53,10 +53,10 @@ to speed up training since all twelve agents contribute to training in parallel. The Academy object for the scene is placed on the Ball3DAcademy GameObject. When you look at an Academy component in the inspector, you can see several properties that control how the environment works. -The **Broadcast Hub** keeps track of which brains will send data during training, -If a brain is added to the hub, his data will be sent to the external training +The **Broadcast Hub** keeps track of which Brains will send data during training, +If a Brain is added to the hub, his data will be sent to the external training process. If the `Control` checkbox is checked, the training process will be able to -control the agents linked to the brain to train them. +control the agents linked to the Brain to train them. The **Training** and **Inference Configuration** properties set the graphics and timescale properties for the Unity application. The Academy uses the **Training Configuration** during training and the @@ -89,16 +89,16 @@ environment around the Agents. ### Brain Brains are assets that exist in your project folder. The Ball3DAgents are connected -to a brain, for example : the **3DBallLearning**. +to a Brain, for example : the **3DBallLearning**. A Brain doesn't store any information about an Agent, it just routes the Agent's collected observations to the decision making process and returns the chosen action to the Agent. Thus, all Agents can share the same Brain, but act independently. The Brain settings tell you quite a bit about how an Agent works. -You can create brain objects by selecting `Assets -> -Create -> ML-Agents -> Brain`. There are 3 kinds of brains : -The **Learning Brain** is a brain that uses a Neural Network to take decisions. +You can create Brain objects by selecting `Assets -> +Create -> ML-Agents -> Brain`. There are 3 kinds of Brains : +The **Learning Brain** is a Brain that uses a Neural Network to take decisions. When the Brain is checked as `Control` in the Academy **Broadcast Hub**, the external process will be taking decisions for the agents and generate a neural network when the training is over. You can also use the diff --git a/docs/Learning-Environment-Create-New.md b/docs/Learning-Environment-Create-New.md index f6370af47b..df236c8f2a 100644 --- a/docs/Learning-Environment-Create-New.md +++ b/docs/Learning-Environment-Create-New.md @@ -157,11 +157,11 @@ in the Inspector window. ## Add Brains The Brain object encapsulates the decision making process. An Agent sends its -observations to its Brain and expects a decision in return. The type of the brain +observations to its Brain and expects a decision in return. The type of the Brain (Learning, Heuristic or player) determines how the Brain makes decisions. To create the Brain: -1. Go to `Assets -> Create -> ML-Agents` and select the type of brain you want to +1. Go to `Assets -> Create -> ML-Agents` and select the type of Brain you want to create. In this tutorial, we will create a **Learning Brain** and a **Player Brain**. 2. Name them `RollerBallBrain` and `RollerBallPlayer` respectively. @@ -466,7 +466,7 @@ Brain asset to the Agent, changing some of the Agent Components properties, and setting the Brain properties so that they are compatible with our Agent code. 1. In the Academy Inspector, add the `RollerBallBrain` and `RollerBallPlayer` - brains to the **Broadcast Hub**. + Brains to the **Broadcast Hub**. 2. Select the RollerAgent GameObject to show its properties in the Inspector window. 3. Drag the Brain `RollerBallPlayer` from the Project window to the @@ -478,7 +478,7 @@ setting the Brain properties so that they are compatible with our Agent code. Also, drag the Target GameObject from the Hierarchy window to the RollerAgent Target field. -Finally, select the the `RollerBallBrain` and `RollerBallPlayer` brains assets +Finally, select the the `RollerBallBrain` and `RollerBallPlayer` Brain assets so that you can edit their properties in the Inspector window. Set the following properties on both of them: @@ -493,16 +493,16 @@ Now you are ready to test the environment before training. ## Testing the Environment It is always a good idea to test your environment manually before embarking on -an extended training run. The reason we have created the `RollerBallPlayer` brain +an extended training run. The reason we have created the `RollerBallPlayer` Brain is so that we can control the Agent using direct keyboard control. But first, you need to define the keyboard to action mapping. Although the RollerAgent only has an `Action Size` of two, we will use one key to specify positive values and one to specify negative values for each action, for a total of four keys. -1. Select the `RollerBallPlayer` brain to view its properties in the Inspector. +1. Select the `RollerBallPlayer` Brain to view its properties in the Inspector. 2. Expand the **Continuous Player Actions** dictionary (only visible when using - a player brain). + a **PlayerBrain**). 3. Set **Size** to 4. 4. Set the following mappings: diff --git a/docs/Learning-Environment-Design-Academy.md b/docs/Learning-Environment-Design-Academy.md index 775eaa9f50..c5f129a945 100644 --- a/docs/Learning-Environment-Design-Academy.md +++ b/docs/Learning-Environment-Design-Academy.md @@ -50,9 +50,9 @@ logic for creating them in the `AcademyStep()` function. ## Academy Properties ![Academy Inspector](images/academy.png) -* `Broadcast Hub` - Gathers the brains that will communicate with the external - process. Any brain added to the Broadcast Hub will be visible from the external - process. In addition, if the checkbox `Control` is checked, the brain will be +* `Broadcast Hub` - Gathers the Brains that will communicate with the external + process. Any Brain added to the Broadcast Hub will be visible from the external + process. In addition, if the checkbox `Control` is checked, the Brain will be controllable from the external process and will thus be trainable. * `Max Steps` - Total number of steps per-episode. `0` corresponds to episodes without a maximum number of steps. Once the step counter reaches maximum, the diff --git a/docs/Learning-Environment-Design-Agents.md b/docs/Learning-Environment-Design-Agents.md index bcf95efbfa..3a7dacf9f7 100644 --- a/docs/Learning-Environment-Design-Agents.md +++ b/docs/Learning-Environment-Design-Agents.md @@ -19,7 +19,7 @@ The Brain class abstracts out the decision making logic from the Agent itself so that you can use the same Brain in multiple Agents. How a Brain makes its decisions depends on the kind of Brain it is. A Player Brain allows you to directly control the agent. A Heuristic Brain allows you to create a -decision script to control the agent with a set of rules. These two brains +decision script to control the agent with a set of rules. These two Brains do not involve neural networks but they can be useful for debugging. The Learning Brain allows you to train and use neural network models for your Agents. See [Brains](Learning-Environment-Design-Brains.md). diff --git a/docs/Learning-Environment-Design-Brains.md b/docs/Learning-Environment-Design-Brains.md index c6460d21fc..60bb1ae1bf 100644 --- a/docs/Learning-Environment-Design-Brains.md +++ b/docs/Learning-Environment-Design-Brains.md @@ -5,9 +5,9 @@ assigned a Brain, but you can use the same Brain with more than one Agent. You can also create several Brains, attach each of the Brain to one or more than one Agent. -There are 3 kinds of brains you can use: +There are 3 kinds of Brains you can use: -* [Learning](Learning-Environment-Learning-Brains.md) – Use a +* [Learning](Learning-Environment-Design-Learning-Brains.md) – Use a **LearningBrain** to make use of a trained model or train a new model. * [Heuristic](Learning-Environment-Design-Heuristic-Brains.md) – Use a **HeuristicBrain** to hand-code the Agent's logic by extending the Decision class. @@ -55,7 +55,7 @@ to a Brain component: * `Action Descriptions` - A list of strings used to name the available actions for the Brain. -The other properties of the brain depend on the type of Brain you are using. +The other properties of the Brain depend on the type of Brain you are using. ## Using the Broadcast Feature diff --git a/docs/Learning-Environment-Design.md b/docs/Learning-Environment-Design.md index 1480187d5c..0b40f97f84 100644 --- a/docs/Learning-Environment-Design.md +++ b/docs/Learning-Environment-Design.md @@ -72,7 +72,7 @@ information. To train and use the ML-Agents toolkit in a Unity scene, the scene must contain a single Academy subclass and as many Agent subclasses -as you need. The brain assets are present in the project and should be grouped +as you need. The Brain assets are present in the project and should be grouped together and named according to the type of agents they are compatible with. Agent instances should be attached to the GameObject representing that Agent. @@ -114,18 +114,18 @@ the Academy properties and their uses. The Brain encapsulates the decision making process. Every Agent must be assigned a Brain, but you can use the same Brain with more than one Agent. -__Note__:You can assign the same brain to multiple agents by using prefabs -or by selecting all the agents you want to attach the brain to using the +__Note__:You can assign the same Brain to multiple agents by using prefabs +or by selecting all the agents you want to attach the Brain to using the search bar on top of the Scene Hierarchy window. To Create a Brain, go to `Assets -> Create -> Ml-Agents` and select the -type of brain you want to use. During training, use a **Learning Brain** +type of Brain you want to use. During training, use a **Learning Brain** and drag it into the Academy's `Broadcast Hub` with the `Control` checkbox checked. When you want to use the trained model, import the model file into the Unity project, add it to the **Model** property of the **Learning Brain** and uncheck the `Control` checkbox of the `Broadcast Hub`. See [Brains](Learning-Environment-Design-Brains.md) for details on using the -different types of Brains. You can create new kinds of brains if the three +different types of Brains. You can create new kinds of Brains if the three built-in don't do what you need. The Brain class has several important properties that you can set using the diff --git a/docs/Learning-Environment-Examples.md b/docs/Learning-Environment-Examples.md index f40036261e..0dab3bd538 100644 --- a/docs/Learning-Environment-Examples.md +++ b/docs/Learning-Environment-Examples.md @@ -115,11 +115,11 @@ If you would like to contribute environments, please see our * Set-up: A platforming environment where the agent can push a block around. * Goal: The agent must push the block to the goal. -* Agents: The environment contains one agent linked to a single brain. +* Agents: The environment contains one agent linked to a single Brain. * Agent Reward Function: * -0.0025 for every step. * +1.0 if the block touches the goal. -* Brains: One brain with the following observation/action space. +* Brains: One Brain with the following observation/action space. * Vector Observation space: (Continuous) 70 variables corresponding to 14 ray-casts each detecting one of three possible objects (wall, goal, or block). diff --git a/docs/Learning-Environment-Executable.md b/docs/Learning-Environment-Executable.md index 22210f2ea5..09918062b1 100644 --- a/docs/Learning-Environment-Executable.md +++ b/docs/Learning-Environment-Executable.md @@ -28,7 +28,7 @@ environment: ![3DBall Scene](images/mlagents-Open3DBall.png) Make sure the Brains in the scene have the right type. For example, if you want -to be able to control your agents from Python, you will need to put the brain +to be able to control your agents from Python, you will need to put the Brain controlling the Agents to be a **Learning Brain** and drag it into the Academy's `Broadcast Hub` with the `Control` checkbox checked. diff --git a/docs/ML-Agents-Overview.md b/docs/ML-Agents-Overview.md index 64faea827e..5d727ca6ad 100644 --- a/docs/ML-Agents-Overview.md +++ b/docs/ML-Agents-Overview.md @@ -224,7 +224,7 @@ inference can proceed. As mentioned previously, the ML-Agents toolkit ships with several implementations of state-of-the-art algorithms for training intelligent agents. -In this mode, the only brain used is a **Learning Brain**. More +In this mode, the only Brain used is a **Learning Brain**. More specifically, during training, all the medics in the scene send their observations to the Python API through the External Communicator (this is the behavior with an External Brain). The Python API @@ -409,7 +409,7 @@ training process. observations for all its Agents to the Python API when dragged into the Academy's `Broadcast Hub` with the `Control` checkbox checked. This is helpful for training and later inference. Broadcasting is a feature which can be - enabled all types of brains (Player, Learning, Heuristic) where the Agent + enabled all types of Brains (Player, Learning, Heuristic) where the Agent observations and actions are also sent to the Python API (despite the fact that the Agent is **not** controlled by the Python API). This feature is leveraged by Imitation Learning, where the observations and actions for a diff --git a/docs/Migrating.md b/docs/Migrating.md index 6b0407427f..37962bf226 100644 --- a/docs/Migrating.md +++ b/docs/Migrating.md @@ -8,7 +8,7 @@ * You can no longer modify the type of a Brain. If you want to switch between `PlayerBrain` and `LearningBrain` for multiple agents, you will need to assign a new Brain to each agent separately. - __Note:__ You can pass the same brain to multiple agents in a scene by + __Note:__ You can pass the same Brain to multiple agents in a scene by leveraging Unity's prefab system or look for all the agents in a scene using the search bar of the `Hierarchy` window with the word `Agent`. * To update a scene from v0.5 to v0.6, you must: @@ -32,7 +32,7 @@ using the search bar of the `Hierarchy` window with the word `Agent`. inside the `Academy` and check the `Control` checkbox. * We removed the `Broadcast` checkbox of the Brain, to use the broadcast functionality, you need to drag the Brain into the `Broadcast Hub`. -* When training multiple brains at the same time, each model is now stored +* When training multiple Brains at the same time, each model is now stored into a separate model file rather than in the same file under different graph scopes. * We have changed the way ML-Agents models perform inference. All previous `.bytes` @@ -98,7 +98,7 @@ using the search bar of the `Hierarchy` window with the word `Agent`. [curriculum learning documentation](Training-Curriculum-Learning.md) for detailed information. In summary: * Curriculum files for the same environment must now be placed into a folder. - Each curriculum file should be named after the brain whose curriculum it + Each curriculum file should be named after the Brain whose curriculum it specifies. * `min_lesson_length` now specifies the minimum number of episodes in a lesson and affects reward thresholding. diff --git a/docs/Readme.md b/docs/Readme.md index 7a47ad7948..e69de29bb2 100644 --- a/docs/Readme.md +++ b/docs/Readme.md @@ -1,58 +0,0 @@ -# Unity ML-Agents Toolkit Documentation - -## Installation & Set-up - -* [Installation](Installation.md) - * [Background: Jupyter Notebooks](Background-Jupyter.md) - * [Docker Set-up](Using-Docker.md) -* [Basic Guide](Basic-Guide.md) - -## Getting Started - -* [ML-Agents Toolkit Overview](ML-Agents-Overview.md) - * [Background: Unity](Background-Unity.md) - * [Background: Machine Learning](Background-Machine-Learning.md) - * [Background: TensorFlow](Background-TensorFlow.md) -* [Getting Started with the 3D Balance Ball Environment](Getting-Started-with-Balance-Ball.md) -* [Example Environments](Learning-Environment-Examples.md) - -## Creating Learning Environments - -* [Making a New Learning Environment](Learning-Environment-Create-New.md) -* [Designing a Learning Environment](Learning-Environment-Design.md) - * [Agents](Learning-Environment-Design-Agents.md) - * [Academy](Learning-Environment-Design-Academy.md) - * [Brains](Learning-Environment-Design-Brains.md): - [Player](Learning-Environment-Design-Player-Brains.md), - [Heuristic](Learning-Environment-Design-Heuristic-Brains.md), - [Learning](Learning-Environment-Design-Learning-Brains.md) -* [Learning Environment Best Practices](Learning-Environment-Best-Practices.md) -* [Using the Monitor](Feature-Monitor.md) -* [Using an Executable Environment](Learning-Environment-Executable.md) - -## Training - -* [Training ML-Agents](Training-ML-Agents.md) -* [Training with Proximal Policy Optimization](Training-PPO.md) -* [Training with Curriculum Learning](Training-Curriculum-Learning.md) -* [Training with Imitation Learning](Training-Imitation-Learning.md) -* [Training with LSTM](Feature-Memory.md) -* [Training on the Cloud with Amazon Web Services](Training-on-Amazon-Web-Service.md) -* [Training on the Cloud with Microsoft Azure](Training-on-Microsoft-Azure.md) -* [Using TensorBoard to Observe Training](Using-Tensorboard.md) - -## Inference -* [Unity Machine Learning Inference SDK](Inference-Engine.md) - -## Help - -* [Migrating from earlier versions of ML-Agents](Migrating.md) -* [Frequently Asked Questions](FAQ.md) -* [ML-Agents Glossary](Glossary.md) -* [Limitations](Limitations.md) - -## API Docs - -* [API Reference](API-Reference.md) -* [How to use the Python API](Python-API.md) -* [Wrapping Learning Environment as a Gym](../gym-unity/README.md) diff --git a/docs/Training-Imitation-Learning.md b/docs/Training-Imitation-Learning.md index 2fb7125ec6..6f387cd5aa 100644 --- a/docs/Training-Imitation-Learning.md +++ b/docs/Training-Imitation-Learning.md @@ -63,10 +63,10 @@ It is also possible to provide demonstrations in realtime during training, witho 2. The "Teacher" Brain must be a **Player Brain**. You must properly configure the inputs to map to the corresponding actions. 3. The "Student" Brain must be a **Learning Brain**. -4. The Brain Parameters of both the "Teacher" and "Student" brains must be +4. The Brain Parameters of both the "Teacher" and "Student" Brains must be compatible with the agent. -5. Drag both the "Teacher" and "Student" brain into the Academy's `Broadcast Hub` - and check the `Control` checkbox on the "Student" brain. +5. Drag both the "Teacher" and "Student" Brain into the Academy's `Broadcast Hub` + and check the `Control` checkbox on the "Student" Brain. 4. Link the Brains to the desired Agents (one Agent as the teacher and at least one Agent as a student). 5. In `config/online_bc_config.yaml`, add an entry for the "Student" Brain. Set From 512adbbbae2d0666e2db2c495f8ddc6f106d957b Mon Sep 17 00:00:00 2001 From: vincentpierre Date: Tue, 16 Oct 2018 17:43:30 -0700 Subject: [PATCH 10/12] Readd deleted file --- docs/Readme.md | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/docs/Readme.md b/docs/Readme.md index e69de29bb2..1708c229b7 100644 --- a/docs/Readme.md +++ b/docs/Readme.md @@ -0,0 +1,45 @@ +# Unity ML-Agents Toolkit Documentation + ## Installation & Set-up + * [Installation](Installation.md) + * [Background: Jupyter Notebooks](Background-Jupyter.md) + * [Docker Set-up](Using-Docker.md) +* [Basic Guide](Basic-Guide.md) + ## Getting Started + * [ML-Agents Toolkit Overview](ML-Agents-Overview.md) + * [Background: Unity](Background-Unity.md) + * [Background: Machine Learning](Background-Machine-Learning.md) + * [Background: TensorFlow](Background-TensorFlow.md) +* [Getting Started with the 3D Balance Ball Environment](Getting-Started-with-Balance-Ball.md) +* [Example Environments](Learning-Environment-Examples.md) + ## Creating Learning Environments + * [Making a New Learning Environment](Learning-Environment-Create-New.md) +* [Designing a Learning Environment](Learning-Environment-Design.md) + * [Agents](Learning-Environment-Design-Agents.md) + * [Academy](Learning-Environment-Design-Academy.md) + * [Brains](Learning-Environment-Design-Brains.md): + [Player](Learning-Environment-Design-Player-Brains.md), + [Heuristic](Learning-Environment-Design-Heuristic-Brains.md), + [Learning](Learning-Environment-Design-Learning-Brains.md) +* [Learning Environment Best Practices](Learning-Environment-Best-Practices.md) +* [Using the Monitor](Feature-Monitor.md) +* [Using an Executable Environment](Learning-Environment-Executable.md) + ## Training + * [Training ML-Agents](Training-ML-Agents.md) +* [Training with Proximal Policy Optimization](Training-PPO.md) +* [Training with Curriculum Learning](Training-Curriculum-Learning.md) +* [Training with Imitation Learning](Training-Imitation-Learning.md) +* [Training with LSTM](Feature-Memory.md) +* [Training on the Cloud with Amazon Web Services](Training-on-Amazon-Web-Service.md) +* [Training on the Cloud with Microsoft Azure](Training-on-Microsoft-Azure.md) +* [Using TensorBoard to Observe Training](Using-Tensorboard.md) + ## Inference +* [Unity Machine Learning Inference SDK](Inference-Engine.md) + ## Help + * [Migrating from earlier versions of ML-Agents](Migrating.md) +* [Frequently Asked Questions](FAQ.md) +* [ML-Agents Glossary](Glossary.md) +* [Limitations](Limitations.md) + ## API Docs + * [API Reference](API-Reference.md) +* [How to use the Python API](Python-API.md) +* [Wrapping Learning Environment as a Gym](../gym-unity/README.md) From 1b9e73273d6eddf798b9f499f5a915b063c5d3b3 Mon Sep 17 00:00:00 2001 From: vincentpierre Date: Tue, 16 Oct 2018 18:05:41 -0700 Subject: [PATCH 11/12] fix typos --- docs/FAQ.md | 2 +- docs/Getting-Started-with-Balance-Ball.md | 2 +- docs/Learning-Environment-Best-Practices.md | 2 +- docs/Learning-Environment-Examples.md | 2 +- docs/Training-Imitation-Learning.md | 4 ++-- docs/Training-ML-Agents.md | 2 +- docs/Training-PPO.md | 4 ++-- docs/Training-on-Microsoft-Azure.md | 4 ++-- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/FAQ.md b/docs/FAQ.md index e58fc5589a..da73c5ed09 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -15,7 +15,7 @@ Unity](Installation.md#setting-up-ml-agent-within-unity) for solution. ## Cannot drag Model into Learning Brain -You migh not have the appropriate backend required to import the model. Refer to the +You might not have the appropriate backend required to import the model. Refer to the [Inference Engine](Inference-Engine.md) for more information on how to import backends and reimport the asset. diff --git a/docs/Getting-Started-with-Balance-Ball.md b/docs/Getting-Started-with-Balance-Ball.md index 65a890d12b..1bf4221c9f 100644 --- a/docs/Getting-Started-with-Balance-Ball.md +++ b/docs/Getting-Started-with-Balance-Ball.md @@ -225,7 +225,7 @@ environment first. The `--train` flag tells the ML-Agents toolkit to run in training mode. **Note**: You can train using an executable rather than the Editor. To do so, -follow the intructions in +follow the instructions in [Using an Executable](Learning-Environment-Executable.md). ### Observing Training Progress diff --git a/docs/Learning-Environment-Best-Practices.md b/docs/Learning-Environment-Best-Practices.md index f52b466ac3..09c90f54bb 100644 --- a/docs/Learning-Environment-Best-Practices.md +++ b/docs/Learning-Environment-Best-Practices.md @@ -3,7 +3,7 @@ ## General * It is often helpful to start with the simplest version of the problem, to - ensure the agent can learn it. From there increase complexity over time. This + ensure the agent can learn it. From there, increase complexity over time. This can either be done manually, or via Curriculum Learning, where a set of lessons which progressively increase in difficulty are presented to the agent ([learn more here](Training-Curriculum-Learning.md)). diff --git a/docs/Learning-Environment-Examples.md b/docs/Learning-Environment-Examples.md index 0dab3bd538..690ed4adf0 100644 --- a/docs/Learning-Environment-Examples.md +++ b/docs/Learning-Environment-Examples.md @@ -161,7 +161,7 @@ If you would like to contribute environments, please see our ![Reacher](images/reacher.png) * Set-up: Double-jointed arm which can move to target locations. -* Goal: The agents must move it's hand to the goal location, and keep it there. +* Goal: The agents must move its hand to the goal location, and keep it there. * Agents: The environment contains 10 agent linked to a single Brain. * Agent Reward Function (independent): * +0.1 Each step agent's hand is in goal location. diff --git a/docs/Training-Imitation-Learning.md b/docs/Training-Imitation-Learning.md index 6f387cd5aa..b7ae760e60 100644 --- a/docs/Training-Imitation-Learning.md +++ b/docs/Training-Imitation-Learning.md @@ -51,7 +51,7 @@ With offline behavioral cloning, we can use demonstrations (`.demo` files) gener 6. Launch `mlagent-learn`, and providing `./config/offline_bc_config.yaml` as the config parameter, and your environment as the `--env` parameter. 7. (Optional) Observe training performance using Tensorboard. -This will use the demonstration file to train a nerual network driven agent to directly imitate the actions provided in the demonstration. The environment will launch and be used for evaluating the agent's performance during training. +This will use the demonstration file to train a neural network driven agent to directly imitate the actions provided in the demonstration. The environment will launch and be used for evaluating the agent's performance during training. ### Online Training @@ -59,7 +59,7 @@ It is also possible to provide demonstrations in realtime during training, witho 1. First create two Brains, one which will be the "Teacher," and the other which will be the "Student." We will assume that the names of the Brain - `Assets`s are "Teacher" and "Student" respectively. + Assets are "Teacher" and "Student" respectively. 2. The "Teacher" Brain must be a **Player Brain**. You must properly configure the inputs to map to the corresponding actions. 3. The "Student" Brain must be a **Learning Brain**. diff --git a/docs/Training-ML-Agents.md b/docs/Training-ML-Agents.md index 43891d18df..30ae9d9913 100644 --- a/docs/Training-ML-Agents.md +++ b/docs/Training-ML-Agents.md @@ -168,7 +168,7 @@ environments are included in the provided config file. | brain\_to\_imitate | For online imitation learning, the name of the GameObject containing the Brain component to imitate. | (online)BC | | demo_path | For offline imitation learning, the file path of the recorded demonstration file | (offline)BC | | buffer_size | The number of experiences to collect before updating the policy model. | PPO | -| curiosity\_enc\_size | The size of the encoding to use in the forward and inverse models in the Curioity module. | PPO | +| curiosity\_enc\_size | The size of the encoding to use in the forward and inverse models in the Curiosity module. | PPO | | curiosity_strength | Magnitude of intrinsic reward generated by Intrinsic Curiosity Module. | PPO | | epsilon | Influences how rapidly the policy can evolve during training. | PPO | | gamma | The reward discount rate for the Generalized Advantage Estimator (GAE). | PPO | diff --git a/docs/Training-PPO.md b/docs/Training-PPO.md index 7f9047ff5f..2735207974 100644 --- a/docs/Training-PPO.md +++ b/docs/Training-PPO.md @@ -188,7 +188,7 @@ Typical Range: `64` - `512` The below hyperparameters are only used when `use_curiosity` is set to true. -### Curioisty Encoding Size +### Curiosity Encoding Size `curiosity_enc_size` corresponds to the size of the hidden layer used to encode the observations within the intrinsic curiosity module. This value should be @@ -202,7 +202,7 @@ Typical Range: `64` - `256` `curiosity_strength` corresponds to the magnitude of the intrinsic reward generated by the intrinsic curiosity module. This should be scaled in order to -ensure it is large enough to not be overwhelmed by extrnisic reward signals in +ensure it is large enough to not be overwhelmed by extrinsic reward signals in the environment. Likewise it should not be too large to overwhelm the extrinsic reward signal. diff --git a/docs/Training-on-Microsoft-Azure.md b/docs/Training-on-Microsoft-Azure.md index 6651fc89b2..861b35de49 100644 --- a/docs/Training-on-Microsoft-Azure.md +++ b/docs/Training-on-Microsoft-Azure.md @@ -9,7 +9,7 @@ support. ## Pre-Configured Azure Virtual Machine A pre-configured virtual machine image is available in the Azure Marketplace and -is nearly compltely ready for training. You can start by deploying the +is nearly completely ready for training. You can start by deploying the [Data Science Virtual Machine for Linux (Ubuntu)](https://azuremarketplace.microsoft.com/marketplace/apps/microsoft-ads.linux-data-science-vm-ubuntu) into your Azure subscription. Once your VM is deployed, SSH into it and run the following command to complete dependency installation: @@ -75,7 +75,7 @@ mlagents-learn --env= --run-id= --train ``` Where `` is the path to your app (i.e. -`~/unity-volume/3DBallHeadless`) and `` is an identifer you would like +`~/unity-volume/3DBallHeadless`) and `` is an identifier you would like to identify your training run with. If you've selected to run on a N-Series VM with GPU support, you can verify that From 34eecf61b3ee70b50ed1ea9b5e0fe3459e701739 Mon Sep 17 00:00:00 2001 From: vincentpierre Date: Thu, 18 Oct 2018 13:53:34 -0700 Subject: [PATCH 12/12] Addressed comments --- docs/Basic-Guide.md | 4 ++-- docs/Readme.md | 39 ++++++++++++++++++++++++++------------- 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/docs/Basic-Guide.md b/docs/Basic-Guide.md index 10cbb7108a..626e36d844 100644 --- a/docs/Basic-Guide.md +++ b/docs/Basic-Guide.md @@ -10,7 +10,7 @@ the basic concepts of Unity. ## Setting up the ML-Agents Toolkit within Unity -In order to use the ML-Agents toolkit within Unity, you need to change a few +In order to use the ML-Agents toolkit within Unity, you first need to change a few Unity settings. 1. Launch Unity @@ -29,7 +29,7 @@ Unity settings. We provide pre-trained models for all the agents in all our demo environments. To be able to run those models, you'll first need to set-up the Inference -Engine.The Inference Engine is a general API to +Engine. The Inference Engine is a general API to run neural network models in Unity that leverages existing inference libraries such as TensorFlowSharp and Apple's Core ML. Since the ML-Agents Toolkit uses TensorFlow for training neural network models, the output model format is TensorFlow and diff --git a/docs/Readme.md b/docs/Readme.md index 1708c229b7..7a47ad7948 100644 --- a/docs/Readme.md +++ b/docs/Readme.md @@ -1,18 +1,24 @@ # Unity ML-Agents Toolkit Documentation - ## Installation & Set-up - * [Installation](Installation.md) + +## Installation & Set-up + +* [Installation](Installation.md) * [Background: Jupyter Notebooks](Background-Jupyter.md) * [Docker Set-up](Using-Docker.md) * [Basic Guide](Basic-Guide.md) - ## Getting Started - * [ML-Agents Toolkit Overview](ML-Agents-Overview.md) + +## Getting Started + +* [ML-Agents Toolkit Overview](ML-Agents-Overview.md) * [Background: Unity](Background-Unity.md) * [Background: Machine Learning](Background-Machine-Learning.md) * [Background: TensorFlow](Background-TensorFlow.md) * [Getting Started with the 3D Balance Ball Environment](Getting-Started-with-Balance-Ball.md) * [Example Environments](Learning-Environment-Examples.md) - ## Creating Learning Environments - * [Making a New Learning Environment](Learning-Environment-Create-New.md) + +## Creating Learning Environments + +* [Making a New Learning Environment](Learning-Environment-Create-New.md) * [Designing a Learning Environment](Learning-Environment-Design.md) * [Agents](Learning-Environment-Design-Agents.md) * [Academy](Learning-Environment-Design-Academy.md) @@ -23,8 +29,10 @@ * [Learning Environment Best Practices](Learning-Environment-Best-Practices.md) * [Using the Monitor](Feature-Monitor.md) * [Using an Executable Environment](Learning-Environment-Executable.md) - ## Training - * [Training ML-Agents](Training-ML-Agents.md) + +## Training + +* [Training ML-Agents](Training-ML-Agents.md) * [Training with Proximal Policy Optimization](Training-PPO.md) * [Training with Curriculum Learning](Training-Curriculum-Learning.md) * [Training with Imitation Learning](Training-Imitation-Learning.md) @@ -32,14 +40,19 @@ * [Training on the Cloud with Amazon Web Services](Training-on-Amazon-Web-Service.md) * [Training on the Cloud with Microsoft Azure](Training-on-Microsoft-Azure.md) * [Using TensorBoard to Observe Training](Using-Tensorboard.md) - ## Inference + +## Inference * [Unity Machine Learning Inference SDK](Inference-Engine.md) - ## Help - * [Migrating from earlier versions of ML-Agents](Migrating.md) + +## Help + +* [Migrating from earlier versions of ML-Agents](Migrating.md) * [Frequently Asked Questions](FAQ.md) * [ML-Agents Glossary](Glossary.md) * [Limitations](Limitations.md) - ## API Docs - * [API Reference](API-Reference.md) + +## API Docs + +* [API Reference](API-Reference.md) * [How to use the Python API](Python-API.md) * [Wrapping Learning Environment as a Gym](../gym-unity/README.md)