{"id":17312972,"url":"https://github.com/albinsou/ocl_survey","last_synced_at":"2025-04-14T14:16:07.337Z","repository":{"id":189587720,"uuid":"632652189","full_name":"AlbinSou/ocl_survey","owner":"AlbinSou","description":"Code for \"A Comprehensive Empirical Evaluation on Online Continual Learning\" ICCVW 2023 VCL Workshop","archived":false,"fork":false,"pushed_at":"2024-04-08T10:58:11.000Z","size":12612,"stargazers_count":38,"open_issues_count":1,"forks_count":9,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-14T14:15:53.654Z","etag":null,"topics":["continual","learning","lifelong","online","sustainable"],"latest_commit_sha":null,"homepage":"https://arxiv.org/abs/2308.10328","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AlbinSou.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-25T21:15:27.000Z","updated_at":"2025-03-20T13:27:23.000Z","dependencies_parsed_at":"2024-04-08T11:58:13.037Z","dependency_job_id":null,"html_url":"https://github.com/AlbinSou/ocl_survey","commit_stats":null,"previous_names":["albinsou/ocl_survey"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlbinSou%2Focl_survey","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlbinSou%2Focl_survey/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlbinSou%2Focl_survey/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlbinSou%2Focl_survey/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlbinSou","download_url":"https://codeload.github.com/AlbinSou/ocl_survey/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248894943,"owners_count":21179153,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["continual","learning","lifelong","online","sustainable"],"created_at":"2024-10-15T12:45:14.988Z","updated_at":"2025-04-14T14:16:07.300Z","avatar_url":"https://github.com/AlbinSou.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OCL Survey Code\n\n![Screenshot from 2023-10-12 18-33-31](https://github.com/AlbinSou/ocl_survey/assets/36189710/554aec40-a211-4218-afe1-9937a751eddb)\n\nCode for the paper **A Comprehensive Empirical Evaluation on Online Continual Learning**, *Albin Soutif--Cormerais, Antonio Carta, Andrea Cossu, Julio Hurtado, Hamed Hemati, Vincenzo Lomonaco, Joost van de Weijer*, ICCV Workshop 2023 [arxiv](https://arxiv.org/abs/2308.10328)\n\nThis repository is meant to serve as an extensible codebase to perform experiments on the Online Continual Learning setting. It is based on the [avalanche](https://github.com/ContinualAI/avalanche) library. Feel free to use it for your own experiments. You can also contribute and add your own method and benchmarks to the comparison by doing a pull request !\n\n# Installation\n\nClone this repository\n\n```\ngit clone https://github.com/AlbinSou/ocl_survey.git\n```\n\nCreate a new environment with python 3.10\n\n```\nconda create -n ocl_survey python=3.10\nconda activate ocl_survey\n```\n\nInstall specific ocl_survey repo dependencies\n\n```\npip install -r requirements.txt\n```\n\nSet your PYTHONPATH as the root of the project\n\n```\nconda env config vars set PYTHONPATH=/home/.../ocl_survey\n```\n\nIn order to let the scripts know where to fetch and log data, you should also create a **deploy config**, indicating where the results should be stored and the datasets fetched. Either add a new one or **change the content of config/deploy/default.yaml**\n\nLastly, test the environment by launching main.py\n\n```\ncd experiments/\npython main.py strategy=er experiment=split_cifar100\n```\n\n# Structure\n\nThe code is structured as follows:\n\n```\n├── avalanche.git # Avalanche-Lib code\n├── config # Hydra config files\n│   ├── benchmark\n│   ├── best_configs # Best configs found by main_hp_tuning.py are stored here\n│   ├── deploy # Contains machine specific results and data path\n│   ├── evaluation # Manage evaluation frequency and parrallelism\n│   ├── experiment # Manage general experiment settings\n│   ├── model\n│   ├── optimizer\n│   ├── scheduler\n│   └── strategy\n├── experiments\n│   ├── main_hp_tuning.py # Main script used for hyperparameter optimization\n│   ├── main.py # Main script used to launch single experiments\n│   └── spaces.py\n├── notebooks\n├── results # Exemple results structure containing results for ER\n├── scripts\n    └── get_results.py # Easily collect results from multiple seeds\n├── src\n│   ├── factories # Contains the Benchmark, Method, and Model creation\n│   ├── strategies # Contains code for additional strategies or plugins\n│   └── toolkit\n└── tests\n```\n\n# Experiments launching\n\nTo launch an experiment, start from the default config file and change the part that needs to change\n\n```\npython main.py strategy=er_ace experiment=split_cifar100 evaluation=parallel\n```\n\nIt's also possible to override more fine-grained arguments\n\n```\npython main.py strategy=er_ace experiment=split_cifar100 evaluation=parallel strategy.alpha=0.7 optimizer.lr=0.05\n```\n\nFinally, to use the parameters found by the hyperparameter search, use\n\n```\npython main.py strategy=er_ace experiment=split_cifar100 +best_configs=split_cifar100/er_ace\n```\n\nBefore running the script, you can display the full config with \"-c job\" option\n\n```\npython main.py strategy=er_ace experiment=split_cifar100 evaluation=parallel -c job\n```\n\nResults will be saved in the directory specified in results.yaml. Under the following structure:\n\n```\n\u003cresults_dir\u003e/\u003cstrategy_name\u003e_\u003cbenchmark_name\u003e/\u003cseed\u003e/\n```\n\n# Hyperparameter selection\n\nModify the strategy specific search parameters, search range etc ... inside main_hp_tuning.py then run\n\n```\npython main_hp_tuning.py strategy=er_ace experiment=split_cifar100\n```\n\n# Citation\n\nIf you use this repo for a research project please use the following citation:\n\n```\n@inproceedings{soutif2023comprehensive,\n  title={A comprehensive empirical evaluation on online continual learning},\n  author={Soutif-Cormerais, Albin and Carta, Antonio and Cossu, Andrea and Hurtado, Julio and Lomonaco, Vincenzo and Van de Weijer, Joost and Hemati, Hamed},\n  booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision},\n  pages={3518--3528},\n  year={2023}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falbinsou%2Focl_survey","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falbinsou%2Focl_survey","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falbinsou%2Focl_survey/lists"}