{"id":17313594,"url":"https://github.com/mmasana/facil","last_synced_at":"2025-10-03T18:32:14.617Z","repository":{"id":37627665,"uuid":"297619858","full_name":"mmasana/FACIL","owner":"mmasana","description":"Framework for Analysis of Class-Incremental Learning with 12 state-of-the-art methods and 3 baselines.","archived":false,"fork":false,"pushed_at":"2023-05-26T16:28:09.000Z","size":7779,"stargazers_count":549,"open_issues_count":11,"forks_count":101,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-05-24T23:13:32.489Z","etag":null,"topics":["continual-learning","deep-learning","framework","incremental-learning","lifelong-learning","machine-learning","reproducible-research","survey"],"latest_commit_sha":null,"homepage":"https://arxiv.org/pdf/2010.15277.pdf","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/mmasana.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}},"created_at":"2020-09-22T10:52:32.000Z","updated_at":"2025-05-12T06:56:31.000Z","dependencies_parsed_at":"2023-01-21T11:46:49.008Z","dependency_job_id":"9b16aff4-f25c-49c7-a079-0827e7618d2e","html_url":"https://github.com/mmasana/FACIL","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mmasana/FACIL","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmasana%2FFACIL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmasana%2FFACIL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmasana%2FFACIL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmasana%2FFACIL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mmasana","download_url":"https://codeload.github.com/mmasana/FACIL/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmasana%2FFACIL/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274402583,"owners_count":25278343,"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","status":"online","status_checked_at":"2025-09-10T02:00:12.551Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","deep-learning","framework","incremental-learning","lifelong-learning","machine-learning","reproducible-research","survey"],"created_at":"2024-10-15T12:48:49.992Z","updated_at":"2025-10-03T18:32:09.581Z","avatar_url":"https://github.com/mmasana.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"./docs/_static/facil_logo.png\" width=\"100px\"\u003e\n\n# Framework for Analysis of Class-Incremental Learning\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#what-is-facil\"\u003eWhat is FACIL\u003c/a\u003e •\n  \u003ca href=\"#key-features\"\u003eKey Features\u003c/a\u003e •\n  \u003ca href=\"#how-to-use\"\u003eHow To Use\u003c/a\u003e •\n  \u003ca href=\"src/approach#approaches-1\"\u003eApproaches\u003c/a\u003e •\n  \u003ca href=\"src/datasets#datasets\"\u003eDatasets\u003c/a\u003e •\n  \u003ca href=\"src/networks#networks\"\u003eNetworks\u003c/a\u003e •\n  \u003ca href=\"#license\"\u003eLicense\u003c/a\u003e •\n  \u003ca href=\"#cite\"\u003eCite\u003c/a\u003e\n\u003c/p\u003e\n\u003c/div\u003e\n\n---\n\n## What is FACIL\nFACIL started as code for the paper:  \n_**Class-incremental learning: survey and performance evaluation**_  \n*Marc Masana, Xialei Liu, Bartlomiej Twardowski, Mikel Menta, Andrew D. Bagdanov, Joost van de Weijer*  \n([TPAMI](https://ieeexplore.ieee.org/abstract/document/9915459)) ([arxiv](https://arxiv.org/abs/2010.15277))\n\nIt allows to reproduce the results in the paper as well as provide a (hopefully!) helpful framework to develop new\nmethods for incremental learning and analyse existing ones. Our idea is to expand the available approaches\nand tools with the help of the community. To help FACIL grow, don't forget to star this github repository and\nshare it to friends and coworkers!\n\n## Key Features\nWe provide a framework based on class-incremental learning. However, task-incremental learning is also fully\nsupported. Experiments by default provide results on both task-aware and task-agnostic evaluation. Furthermore, if an\nexperiment runs with one task on one dataset, results would be equivalent to 'common' supervised learning.\n\n| Setting | task-ID at train time | task-ID at test time | # of tasks |\n| -----   | ------------------------- | ------------------------ | ------------ |\n| [class-incremental learning](https://ieeexplore.ieee.org/abstract/document/9915459) | yes | no | ≥1 |\n| [task-incremental learning](https://ieeexplore.ieee.org/abstract/document/9349197) | yes | yes | ≥1 |\n| non-incremental supervised learning | yes | yes | 1 |\n\nCurrent available approaches include:\n\u003cdiv align=\"center\"\u003e\n\u003cp align=\"center\"\u003e\u003cb\u003e\n  Finetuning • Freezing • Joint\n\n  LwF • iCaRL • EWC • PathInt • MAS • RWalk • EEIL • LwM • DMC • BiC • LUCIR • IL2M\n\u003c/b\u003e\u003c/p\u003e\n\u003c/div\u003e\n\n## How To Use\nClone this github repository:\n```\ngit clone https://github.com/mmasana/FACIL.git\ncd FACIL\n```\n\n\u003cdetails\u003e\n  \u003csummary\u003eOptionally, create an environment to run the code (click to expand).\u003c/summary\u003e\n\n  ### Using a requirements file\n  The library requirements of the code are detailed in [requirements.txt](requirements.txt). You can install them\n  using pip with:\n  ```\n  python3 -m pip install -r requirements.txt\n  ```\n\n  ### Using a conda environment\n  Development environment based on Conda distribution. All dependencies are in `environment.yml` file.\n\n  #### Create env\n  To create a new environment check out the repository and type: \n  ```\n  conda env create --file environment.yml --name FACIL\n  ```\n  *Notice:* set the appropriate version of your CUDA driver for `cudatoolkit` in `environment.yml`.\n\n  #### Environment activation/deactivation\n  ```\n  conda activate FACIL\n  conda deactivate\n  ```\n\n\u003c/details\u003e\n\nTo run the basic code:\n```\npython3 -u src/main_incremental.py\n```\nMore options are explained in the [`src`](./src), including GridSearch usage. Also, more specific options on approaches,\nloggers, datasets and networks.\n\n### Scripts\nWe provide scripts to reproduce the specific scenarios proposed in \n_**Class-incremental learning: survey and performance evaluation**_:\n\n* CIFAR-100 (10 tasks) with ResNet-32 without exemplars\n* CIFAR-100 (10 tasks) with ResNet-32 with fixed and growing memory\n* _MORE COMING SOON..._\n\nAll scripts run 10 times to later calculate mean and standard deviation of the results.\nCheck out all available in the [scripts](scripts) folder.\n\n## License\nPlease check the MIT license that is listed in this repository.\n\n## Cite\nIf you want to cite the framework feel free to use this preprint citation while we await publication:\n```bibtex\n@article{masana2022class,\n  title={Class-Incremental Learning: Survey and Performance Evaluation on Image Classification},\n  author={Masana, Marc and Liu, Xialei and Twardowski, Bartłomiej and Menta, Mikel and Bagdanov, Andrew D. and van de Weijer, Joost},\n  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},\n  doi={10.1109/TPAMI.2022.3213473},\n  year={2023},\n  volume={45},\n  number={5},\n  pages={5513-5533}}\n}\n```\n\n---\n\nThe basis of FACIL is made possible thanks to [Marc Masana](https://github.com/mmasana),\n[Xialei Liu](https://github.com/xialeiliu), [Bartlomiej Twardowski](https://github.com/btwardow)\nand [Mikel Menta](https://github.com/mkmenta). Code structure is inspired by [HAT](https://github.com/joansj/hat.). Feel free to contribute or propose new features by opening an issue!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmasana%2Ffacil","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmmasana%2Ffacil","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmasana%2Ffacil/lists"}