{"id":18254288,"url":"https://github.com/meijieru/atomnas","last_synced_at":"2025-10-20T11:54:05.722Z","repository":{"id":82119919,"uuid":"211988439","full_name":"meijieru/AtomNAS","owner":"meijieru","description":"[ICLR 2020]: 'AtomNAS: Fine-Grained End-to-End Neural Architecture Search'","archived":false,"fork":false,"pushed_at":"2020-06-08T03:12:08.000Z","size":124,"stargazers_count":222,"open_issues_count":3,"forks_count":21,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-08-27T06:46:48.466Z","etag":null,"topics":["distributed","imagenet","network-pruning","neural-architecture-search"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/meijieru.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":"2019-10-01T01:11:15.000Z","updated_at":"2024-12-20T09:18:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"431f35fd-f85e-44f8-9fc6-d9566ba1b624","html_url":"https://github.com/meijieru/AtomNAS","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/meijieru/AtomNAS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meijieru%2FAtomNAS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meijieru%2FAtomNAS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meijieru%2FAtomNAS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meijieru%2FAtomNAS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/meijieru","download_url":"https://codeload.github.com/meijieru/AtomNAS/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meijieru%2FAtomNAS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280087871,"owners_count":26269718,"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-10-20T02:00:06.978Z","response_time":62,"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":["distributed","imagenet","network-pruning","neural-architecture-search"],"created_at":"2024-11-05T10:11:27.596Z","updated_at":"2025-10-20T11:54:05.673Z","avatar_url":"https://github.com/meijieru.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AtomNAS: Fine-Grained End-to-End Neural Architecture Search [[PDF](https://arxiv.org/pdf/1912.09640.pdf)]\n\nUpdates\n\n- [Mar 2020] A clean mobilenet-series [implementation](https://github.com/meijieru/yet_another_mobilenet_series) is provided.\n- [Feb 2020] Simplify validation process, released the pretrained models. Conflict with [previous version](https://github.com/meijieru/AtomNAS/tree/anonymous).\n\n## Overview\n\nThis is the codebase (including search) for ICLR 2020 paper [AtomNAS: Fine-Grained End-to-End Neural Architecture Search](https://openreview.net/forum?id=BylQSxHFwr).\n\n\n## Setup\n\n### Distributed Training\n\nSet the following ENV variable:\n```\n$DATA_ROOT: Path to data root\n$METIS_WORKER_0_HOST: IP address of worker 0\n$METIS_WORKER_0_PORT: Port used for initializing distributed environment\n$METIS_TASK_INDEX: Index of task\n$ARNOLD_WORKER_NUM: Number of workers\n$ARNOLD_WORKER_GPU: Number of GPUs (NOTE: should exactly match local GPU numbers with `CUDA_VISIBLE_DEVICES `)\n$ARNOLD_OUTPUT: Output directory\n```\n\n### Non-Distributed Training (Not Recommend)\n\nSet the following ENV variable:\n```\n$DATA_ROOT: Path to data root\n$ARNOLD_WORKER_GPU: Number of GPUs (NOTE: should exactly match local GPU numbers with `CUDA_VISIBLE_DEVICES `)\n$ARNOLD_OUTPUT: Output directory\n```\n\n\n## Reproduce AtomNAS results\n\nFor Table 1\n\n- AtomNAS-A: `bash scripts/run.sh apps/slimming/shrink/atomnas_a.yml`\n- AtomNAS-B: `bash scripts/run.sh apps/slimming/shrink/atomnas_b.yml`\n- AtomNAS-C: `bash scripts/run.sh apps/slimming/shrink/atomnas_c.yml`\n\nIf everything is OK, you should get similar results.\n\nPretrained Models could be downloaded from [onedrive](https://1drv.ms/u/s!Alk-ml3frR0Iy0ItEpx6KluA6HOD?e=angPfD)\n\n\n## Testing\n\nFor AtomNAS:\n```bash\nFILE=$(realpath {{log_dir_path}}) checkpoint=ckpt ATOMNAS_VAL=True bash scripts/run.sh apps/eval/eval_shrink.yml\n```\n\nFor AtomNAS+:\n```bash\nTRAIN_CONFIG=$(realpath {{train_config_path}}) ATOMNAS_VAL=True bash scripts/run.sh apps/eval/eval_se.yml --pretrained {{ckpt_path}}\n```\n\n## Related Info\n\n1. Requirements\n    - See `requirements.txt`\n\n1. Environment\n    - The code is developed using python 3. NVIDIA GPUs are needed. The code is developed and tested using 4 servers with 32 NVIDIA V100 GPU cards. Other platforms or GPU cards are not fully tested.\n\n1. Dataset\n    - Prepare ImageNet data following pytorch [example](https://github.com/pytorch/examples/tree/master/imagenet).\n    - Optional: Generate lmdb dataset by `utils/lmdb_dataset.py`. If not, please overwrite `dataset:imagenet1k_lmdb` in yaml to `dataset:imagenet1k`.\n    - The directory structure of `$DATA_ROOT` should look like this:\n        ```\n        ${DATA_ROOT}\n        ├── imagenet\n        └── imagenet_lmdb\n        ```\n\n1. Miscellaneous\n    - The codebase is a general ImageNet training framework using yaml config with several extension under `apps` dir, based on PyTorch.\n        - YAML config with additional features\n            - `${ENV}` in yaml config.\n            - `_include` for hierachy config.\n            - `_default` key for overwriting.\n            - `xxx.yyy.zzz` for partial overwriting.\n        - `--{{opt}} {{new_val}}` for command line overwriting.\n\n\n## Acknowledgment\n\nThis repo is based on [slimmable_networks](https://github.com/JiahuiYu/slimmable_networks) and benefits from the following projects\n- [apex](https://github.com/NVIDIA/apex)\n- [Efficient-PyTorch](https://github.com/Lyken17/Efficient-PyTorch)\n\nThanks the contributors of these repos!\n\n\n## Citation\n\nIf you find this work or code is helpful in your research, please cite:\n```\n@inproceedings{\n    mei2020atomnas,\n    title={Atom{NAS}: Fine-Grained End-to-End Neural Architecture Search},\n    author={Jieru Mei and Yingwei Li and Xiaochen Lian and Xiaojie Jin and Linjie Yang and Alan Yuille and Jianchao Yang},\n    booktitle={International Conference on Learning Representations},\n    year={2020},\n    url={https://openreview.net/forum?id=BylQSxHFwr}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeijieru%2Fatomnas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmeijieru%2Fatomnas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeijieru%2Fatomnas/lists"}