Skip to content

v1 to v2 Migration

The repository has changed very significantly from the original Sample Factory v1, which makes it pretty much impossible to track all the changes.

Perhaps the most obvious change that will affect everyone is that we removed generic entry points such as train_appo.py and enjoy_appo.py. As a consequence, now there's no difference between how "custom" and "built-in" environments are handled (custom envs are first-class citizens now). See train/enjoy scripts in sf_examples to see how to use the new API.

If you have any custom code that registers custom environments of model architectures, please check Custom Environments and Custom Models for the new API.

Some configuration parameters were renamed:

  • --ppo_epochs -> --num_epochs
  • --num_batches_per_iteration -> --num_batches_per_epoch
  • --num_minibatches_to_accumulate -> --num_batches_to_accumulate (also changed semantically, check the cfg reference)

Runner class we used to launch groups of experiments such as hyperparameter searches got renamed to Launcher. The name Runner now refers to an entirely different concept, a class that handles the main loop of the algorithm.

Entities ActorWorker and PolicyWorker were renamed to RolloutWorker and InferenceWorker respectively.

Due to the gravity of the changes it is difficult to provide a comprehensive migration guide. If you recently updated your codebase to use Sample Factory v2.0+, please consider sharing your experience and contribute to this guide! :)