{"id":24278459,"url":"https://github.com/yoshitomo-matsubara/ladon-multi-task-sc2","last_synced_at":"2026-05-03T07:39:43.894Z","repository":{"id":270783471,"uuid":"896719711","full_name":"yoshitomo-matsubara/ladon-multi-task-sc2","owner":"yoshitomo-matsubara","description":"[WACV 2025] \"A Multi-task Supervised Compression Model for Split Computing\"","archived":false,"fork":false,"pushed_at":"2025-02-24T08:13:54.000Z","size":1834,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-24T09:24:42.666Z","etag":null,"topics":["coco","image-classification","imagenet","knowledge-distillation","multi-task","multi-task-architecture","multi-task-prediction","object-detection","pytorch","semantic-segmentation","split-computing","supervised-compression"],"latest_commit_sha":null,"homepage":"","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/yoshitomo-matsubara.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":"2024-12-01T05:44:49.000Z","updated_at":"2025-02-24T08:13:58.000Z","dependencies_parsed_at":"2025-01-03T04:28:40.745Z","dependency_job_id":"71283631-adc7-4f77-b1cf-c1e2cbe3ae20","html_url":"https://github.com/yoshitomo-matsubara/ladon-multi-task-sc2","commit_stats":null,"previous_names":["yoshitomo-matsubara/ladon-multi-task-sc2"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoshitomo-matsubara%2Fladon-multi-task-sc2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoshitomo-matsubara%2Fladon-multi-task-sc2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoshitomo-matsubara%2Fladon-multi-task-sc2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoshitomo-matsubara%2Fladon-multi-task-sc2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yoshitomo-matsubara","download_url":"https://codeload.github.com/yoshitomo-matsubara/ladon-multi-task-sc2/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242023208,"owners_count":20059297,"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":["coco","image-classification","imagenet","knowledge-distillation","multi-task","multi-task-architecture","multi-task-prediction","object-detection","pytorch","semantic-segmentation","split-computing","supervised-compression"],"created_at":"2025-01-16T00:43:36.471Z","updated_at":"2026-05-03T07:39:38.874Z","avatar_url":"https://github.com/yoshitomo-matsubara.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A Multi-task Supervised Compression Model for Split Computing\n\nThis is the official repository for our WACV 2025 paper, ***\"A Multi-task Supervised Compression Model for Split Computing\"***.\n\nSplit computing (/= split learning) is a promising approach to deep learning models for resource-constrained edge \ncomputing systems, where weak sensor (mobile) devices are wirelessly connected to stronger edge servers through channels \nwith limited communication capacity. State-of-the-art work on split computing presents methods for single tasks such as \nimage classification, object detection, or semantic segmentation. The application of existing methods to multi-task \nproblems degrades model accuracy and/or significantly increase runtime latency. In this study, we propose Ladon, \nthe first multi-task-head supervised compression model for multi-task split computing. Experimental results show that \nthe multi-task supervised compression model either outperformed or rivaled strong lightweight baseline models \nin terms of predictive performance for ILSVRC 2012, COCO 2017, and PASCAL VOC 2012 datasets while learning compressed \nrepresentations at its early layers. Furthermore, our models reduced end-to-end latency (by up to 95.4%) and \nenergy consumption of mobile devices (by up to 88.2%) in multi-task split computing scenarios.\n\n## Ladon: the first multi-task supervised compression model for split computing\n![Entropic Student vs. Ladon](imgs/ladon_model-comparison.png)\n\nIn multi-task split computing scenarios, it is critical to optimize learnable parameters of task-specific modules on\na unified image processing pipeline instead of task-specific pipelines so that we can\n1. reduce encoding cost and energy consumption on a weak local device,\n2. save offloading data size by transferring only one compressed representation from the weak local device to a(n) cloud/edge server, and\n3. reduce end-to-end latency and local device energy consumption,\n\nwhile outperforming or rivaling predictive performance of lightweight models.\n\nNote that in split computing, models are trained offline (e.g., on a single machine) and the distributed inference \nlike the above figure occurs only at runtime.\n\nRefer to our previous work for [supervised compression](https://github.com/yoshitomo-matsubara/supervised-compression) \nand [SC2 benchmark (supervised compression for split computing)](https://github.com/yoshitomo-matsubara/sc2-benchmark)\n\n## Citation\n[[Paper](https://openaccess.thecvf.com/content/WACV2025/html/Matsubara_A_Multi-Task_Supervised_Compression_Model_for_Split_Computing_WACV_2025_paper.html)][[Preprint](https://arxiv.org/abs/2501.01420)]\n```bibtex\n@inproceedings{matsubara2025multi,\n  title={{A Multi-Task Supervised Compression Model for Split Computing}},\n  author={Matsubara, Yoshitomo and Mendula, Matteo and Levorato, Marco},\n  booktitle={Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision (WACV)},\n  pages={4913-4922},\n  month={February},\n  year={2025}\n}\n```\n\n## Checkpoints\nYou can download our checkpoints including trained model weights [here](https://github.com/yoshitomo-matsubara/ladon-multi-task-sc2/releases/tag/wacv2025).  \nUnzip the downloaded zip files under `./`, then there will be `./resource/ckpt/`.\n\n## Legacy code\nThis study was done prior to the release of sc2bench v0.1.0, which introduces a lot of breaking changes and updates the structure of configuration files.\nTo reuse the code and configurations at that time, check the files in [./legacy/](./legacy/).  \nIf you want to use more recent versions of the required packages, refer to [Updated code](#updated-code)).\n\n## Updated code\n\n### Requirements\n- Python \u003e= 3.9\n- sc2bench \u003e= 0.1.0\n- numpy\n\n```shell\npipenv install\n```\n\n### Datasets\n- Image classification: [ILSVRC 2012 (ImageNet)](https://www.image-net.org/challenges/LSVRC/2012/)\n- Object detection: [COCO 2017](https://cocodataset.org/#detection-2017)\n- Semantic segmentation: [PASCAL VOC 2012](http://host.robots.ox.ac.uk/pascal/VOC/voc2012/)\n\nFollow the instructions in [my sc2-benchmark repository](https://github.com/yoshitomo-matsubara/sc2-benchmark/tree/main/script#datasets)\n\n\n### Evaluation with checkpoints\n\nDownload our checkpoints including trained model weights [here](https://github.com/yoshitomo-matsubara/ladon-multi-task-sc2/releases/tag/wacv2025).  \nUnzip the downloaded zip files under `./`, then there will be `./resource/ckpt/`.\n\n#### 1. ImageNet (ILSVRC 2012): Image Classification\n\n##### Ladon (ResNet-50) \n```shell\nfor beta in 0.32 1.28 5.12 10.24 20.48; do\n  python scripts/image_classification.py -test_only -student_only \\\n    --config legacy/configs/ilsvrc2012/ladon/splittable_resnet50-fp-beta${beta}_from_resnet50.yaml \\\n    --run_log logs/ilsvrc2012/ladon/splittable_resnet50-fp-beta${beta}_from_resnet50.txt\ndone\n```\n\n##### Ladon (ResNeSt-269e) \n```shell\nfor beta in 0.32 1.28 5.12 10.24 20.48; do\n  python scripts/image_classification.py -test_only -student_only \\\n    --config configs/ilsvrc2012/ladon/splittable_resnest269e-fp-beta${beta}_from_resnest269e.yaml \\\n    --run_log logs/ilsvrc2012/ladon/splittable_resnest269e-fp-beta${beta}_from_resnest269e.txt\ndone\n```\n\n#### 2. COCO 2017: Object Detection\n##### Ladon (Faster R-CNN with ResNet-50 and FPN) \n```shell\nfor beta in 0.32 1.28 5.12 10.24 20.48; do\n  python scripts/object_detection.py -test_only \\\n    --config configs/coco2017/ladon/faster_rcnn_splittable_resnet50-fp-beta${beta}_fpn.yaml \\\n    --run_log logs/coco2017/ladon/faster_rcnn_splittable_resnet50-fp-beta${beta}_fpn.txt\ndone\n```\n\n##### Ladon (Faster R-CNN with ResNeSt-269e and FPN) \n```shell\nfor beta in 0.32 1.28 5.12 10.24 20.48; do\n  python scripts/object_detection.py -test_only \\\n    --config configs/coco2017/ladon/faster_rcnn_splittable_resnest269e-fp-beta${beta}_fpn.yaml \\\n    --run_log logs/coco2017/ladon/faster_rcnn_splittable_resnest269e-fp-beta${beta}_fpn.txt\ndone\n```\n\n#### 3. PASCAL VOC 2012: Semantic Segmentation\n##### Ladon (DeepLabv3 with ResNet-50) \n```shell\nfor beta in 0.32 1.28 5.12 10.24 20.48; do\n  python scripts/semantic_segmentation.py -test_only \\\n    --config configs/pascal_voc2012/ladon/deeplabv3_splittable_resnet50-fp-beta${beta}_two_stages.yaml \\\n    --run_log logs/pascal_voc2012/ladon/deeplabv3_splittable_resnet50-fp-beta${beta}_two_stages.txt\ndone\n```\n\n##### Ladon (DeepLabv3 with ResNeSt-269e) \n```shell\nfor beta in 0.32 1.28 5.12 10.24 20.48; do\n  python scripts/semantic_segmentation.py -test_only \\\n    --config configs/pascal_voc2012/ladon/deeplabv3_splittable_resnest269e-fp-beta${beta}_two_stages.yaml \\\n    --run_log logs/pascal_voc2012/ladon/deeplabv3_splittable_resnest269e-fp-beta${beta}_two_stages.txt\ndone\n```\n\n#### Training\n\nUse the same command as above but without `-test_only`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoshitomo-matsubara%2Fladon-multi-task-sc2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyoshitomo-matsubara%2Fladon-multi-task-sc2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoshitomo-matsubara%2Fladon-multi-task-sc2/lists"}