{"id":15643286,"url":"https://github.com/vfdev-5/uda-pytorch","last_synced_at":"2025-04-30T10:11:54.957Z","repository":{"id":149001858,"uuid":"197181645","full_name":"vfdev-5/UDA-pytorch","owner":"vfdev-5","description":"Unsupervised Data Augmentation experiments in PyTorch","archived":false,"fork":false,"pushed_at":"2019-07-22T09:43:42.000Z","size":489,"stargazers_count":59,"open_issues_count":1,"forks_count":13,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-30T10:11:49.352Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vfdev-5.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-07-16T11:32:43.000Z","updated_at":"2024-04-08T00:50:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"7c82a81f-f3c9-495b-813c-65366cc265d5","html_url":"https://github.com/vfdev-5/UDA-pytorch","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vfdev-5%2FUDA-pytorch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vfdev-5%2FUDA-pytorch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vfdev-5%2FUDA-pytorch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vfdev-5%2FUDA-pytorch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vfdev-5","download_url":"https://codeload.github.com/vfdev-5/UDA-pytorch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251683355,"owners_count":21626953,"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":[],"created_at":"2024-10-03T11:59:50.481Z","updated_at":"2025-04-30T10:11:54.933Z","avatar_url":"https://github.com/vfdev-5.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Unsupervised Data Augmentation experiments in PyTorch\n\nExperiments with \"Unsupervised Data Augmentation\" method on Cifar10 dataset.\n\nBased on [\"Unsupervised Data Augmentation\"](https://arxiv.org/pdf/1904.12848.pdf)\n\n## Unsupervised Data Augmentation in nutshell\n\n![UDA](assets/uda.png)\n\n## Requirements\n\nAll experiments are run using [`mlflow`](https://github.com/mlflow/mlflow), please install the latest version of this library\n```\npip install --upgrade mlflow\n```\n\n## Experiments\n\n### Start MLFlow UI server\n\nPlease create output folder (e.g. `$PWD/output`) and setup mlflow server:\n\n```\nexport OUTPUT_PATH=/path/to/output\n```\nand \n```\nmlflow server --backend-store-uri $OUTPUT_PATH/mlruns --default-artifact-root $OUTPUT_PATH/mlruns -p 5566 -h 0.0.0.0\n```\n\nMLflow dashboard is available in the browser at [0.0.0.0:5566](0.0.0.0:5566)\n\n### CIFAR10 dataset\n\nCreate once \"CIFAR10\" experiment\n```\nexport MLFLOW_TRACKING_URI=$OUTPUT_PATH/mlruns\nmlflow experiments create -n CIFAR10\n```\n\nImplementation details:\n- Models\n  - FastResnet inspired from [cifar10-fast repository](https://github.com/davidcpage/cifar10-fast)\n  - Wide-ResNet 28-2 from [Wide-ResNet repository](https://github.com/szagoruyko/wide-residual-networks/blob/master/pytorch/resnet.py)\n\n- Consistency loss: KL\n- Data augs: AutoAugment + Cutout\n- Cosine LR decay\n- Training Signal Annealing\n\n- Updated UDA version: see [main_uda2.py](code/main_uda2.py)\n  - training 4k batchs are also passed into unsupervised learning part\n\n#### Fast ResNet\nStart a single run\n\n```\nexport MLFLOW_TRACKING_URI=$OUTPUT_PATH/mlruns\n\nmlflow run experiments/ --experiment-name=CIFAR10 -P dataset=CIFAR10 -P network=fastresnet -P params=\"data_path=../input/cifar10;num_epochs=100;learning_rate=0.08;batch_size=512;TSA_proba_min=0.5;unlabelled_batch_size=1024\"\n```\n\n#### Wide ResNet\nStart a single run\n\n```\nexport MLFLOW_TRACKING_URI=$OUTPUT_PATH/mlruns\n\nmlflow run experiments/ --experiment-name=CIFAR10 -P dataset=CIFAR10 -P network=wideresnet -P params=\"data_path=../input/cifar10;num_epochs=100;learning_rate=0.1;batch_size=512;TSA_proba_min=0.1;unlabelled_batch_size=1024\"\n```\n\n##### Paper's configuration\n\n```\nexport MLFLOW_TRACKING_URI=$OUTPUT_PATH/mlruns\n\nmlflow run experiments/ --experiment-name=CIFAR10 -P dataset=CIFAR10 -P network=wideresnet -P params=\"data_path=../input/cifar10;num_epochs=6250;learning_rate=0.03;batch_size=64;TSA_proba_min=0.1;unlabelled_batch_size=320;num_warmup_steps=20000\"\n```\n\nUnfortunately, I can not reproduce paper's result with 5.3 test error.\n\n#### Updated version of UDA\n\n```\nexport MLFLOW_TRACKING_URI=$OUTPUT_PATH/mlruns\n\nmlflow run experiments/ -e main_uda2 --experiment-name=CIFAR10 -P dataset=CIFAR10 -P network=fastresnet -P params=\"data_path=../input/cifar10;num_epochs=100;learning_rate=0.08;batch_size=512;unlabelled_batch_size=512\"\n```\n\n#### Some results\n\n![fastresnet_uda_vs_uda2](assets/fastresnet_uda_vs_uda2.png)\n\n\n### Tensorboard \n\nAll experiments are also logged to the Tensorboard. To visualize the experiments, please install `tensorboard` and run :\n```\n# tensorboard --logdir=$OUTPUT_PATH/mlruns/\u003cexperiment_id\u003e\ntensorboard --logdir=$OUTPUT_PATH/mlruns/1\n```\n\n## Acknowledgements\n\nIn this repository we are using the code from \n- [DeepVoltaire/AutoAugment](https://github.com/DeepVoltaire/AutoAugment) \n- [cifar10-fast repository](https://github.com/davidcpage/cifar10-fast)\n- [Wide-ResNet repository](https://github.com/szagoruyko/wide-residual-networks/blob/master/pytorch/resnet.py)\n\nThanks to the authors for sharing their code!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvfdev-5%2Fuda-pytorch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvfdev-5%2Fuda-pytorch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvfdev-5%2Fuda-pytorch/lists"}