Experiment¶

The experiment in Garage is a function we use to run an algorithm. This function is wrapped by a decorator called wrap_experiment, which defines the scope of an experiment, sets up the log directory and what to be saved in snapshots.

Below is a simple experiment launcher. The first parameter of the experiment function must be ctxt, which is used to pass the experiment’s context into the inner function.

from garage import wrap_experiment

@wrap_experiment
def my_first_experiment(ctxt=None):
    print('Hello World!')

my_first_experiment()

Running the example launcher will generate outputs like the following (CUR_DIR is the current directory).

2020-08-20 15:18:53 | [my_first_experiment] Logging to CUR_DIR/data/local/experiment/my_first_experiment
Hello World!

The followings are some useful parameters of wrap_experiment. You can see details of its parameters here.

  • log_dir: The custom log directory to log to.

  • snapshot_mode: Policy for which snapshots to keep. The last iteration will be saved by default. Here are acceptable inputs.

    • 'last', only the last iteration will be saved.

    • 'all', all iterations will be saved.

    • 'gap', every snapshot_gap iterations are saved.

    • 'none', do not save snapshots.

  • snapshot_gap: Gap between snapshot iterations. Waits this number of iterations before taking another snapshot.

Here is an example to set a custom log directory:

from garage import wrap_experiment

@wrap_experiment(log_dir='my_custom_log_fir')
def my_first_experiment(ctxt=None):
    print('Hello World!')

You can check this user guide for how to write and run an experiment in detail.


This page was authored by Ruofu Wang (@yeukfu).