What is the purpose of the Environment Parameters system?

Is the training network formed from using environment parameters as opposed to those parameters passed in as inputs different?

For instance, let’s say I have a parameter “bot arm strength”

I can randomly adjust it between episodes and pass it in as an input

or

Use the environment parameters system.

The environment parameters system is implemented and used in examples for a reason, but I cannot find this in the scripting API or manual.

The end result is the same either way; the environment parameters aren’t fed into the trainer directly.

A few small advantages to using environment parameters instead of doing it in your own Unity code:

  1. Easier to change things like the ranges or mean/stddev without recompiling a build
  2. You can control it from within a curriculum and adjust the values based on the training progress
  3. It will always be disabled when you’re not training.
1 Like