# Overview In the initial study of LIBERO, we conduct multiple experiments under the following five topics:




1. Knowledge Transfer under Specific Distribution Shift





2. Design of Lifelong Learning Algorithm





3. Design of Vision-Language Policy Architecture for Lifelong Learning





4. Robustness to Task Ordering





5. Effect of Pretraining on Lifelong Learning

## Scripts for reproducing the results The `lifelong/main.py` and `lifelong/evaluate.py` scripts are the two main scripts used to reproduce our experiments. By default, `main.py` performs both training and evaluation. However, if you have limited resources and want to separate the training and evaluation steps, you can turn off evaluation in `main.py` and do the evaluation separately using `evaluate.py`. To learn how to run the scripts, please read the pages under the Research Topic session.

Note: How to run LIBERO outside the repo?

If you want to use LIBERO as a separate module outside of the repository, we provide command scripts `lifelong.main` and `lifelong.evaluate`. Simply use them with the arguments you would use for the python scripts, and you can launch the experiments and save the results in your local project folder!
## How to interpret / visualize the results? The result will be , by defautlt, saved into a folder named like `experiments/LIBERO_90/SingleTask/BCViLTPolicy_seed100/run_001`, where the results are stored in this folder. The results consist of two parts: `result.pt` and `task{TASK_INDEX}_auc.log`. Both of them are saved through `torch.save` function, so in order to read them out, you should use `torch.load` function. `result.pt` saves the information regarding lifelong learning, which as the following structure: (TODO). ``` { 'L_conf_mat': np.zeros((NUM_TASKS, NUM_TASKS)), # loss confusion matrix 'S_conf_mat': np.zeros((NUM_TASKS, NUM_TASKS)), # success confusion matrix 'L_fwd' : np.zeros((NUM_TASKS,)), # loss AUC, how fast the agent learns 'S_fwd' : np.zeros((NUM_TASKS,)), # success AUC, how fast the agent succeeds } ``` `task{TASK_INDEX}_auc.log` saves the information regarding the training in single task, saving the success rates and the training loss every 5 epochs. More concretely, each `.log` file contains the following information (the values are examples): ``` { 'success': array([0.08, 1. , 1. , 0.42, 1. , 1. , 0.98, 1. , 1. , 0.92, 0.98]), 'loss': array([ 5.43036654, -15.55810809, -17.16367282, -18.11807803, -18.97084025, -19.48923949, -20.5096283 , -21.28826938, -21.83023319, -22.32912602, -22.60586715]) } ```