{"id":13784447,"url":"https://github.com/ehoogeboom/emerging","last_synced_at":"2025-05-11T19:33:05.454Z","repository":{"id":215846379,"uuid":"187589406","full_name":"ehoogeboom/emerging","owner":"ehoogeboom","description":null,"archived":false,"fork":false,"pushed_at":"2019-05-31T11:35:09.000Z","size":63,"stargazers_count":40,"open_issues_count":2,"forks_count":6,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-17T20:48:33.518Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/ehoogeboom.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}},"created_at":"2019-05-20T07:26:17.000Z","updated_at":"2024-05-30T07:08:20.000Z","dependencies_parsed_at":"2024-01-17T03:17:29.232Z","dependency_job_id":"411255ce-5839-4fec-97e6-049e0a4107a1","html_url":"https://github.com/ehoogeboom/emerging","commit_stats":null,"previous_names":["ehoogeboom/emerging"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehoogeboom%2Femerging","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehoogeboom%2Femerging/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehoogeboom%2Femerging/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehoogeboom%2Femerging/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ehoogeboom","download_url":"https://codeload.github.com/ehoogeboom/emerging/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253621340,"owners_count":21937509,"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-08-03T19:00:44.176Z","updated_at":"2025-05-11T19:33:05.183Z","avatar_url":"https://github.com/ehoogeboom.png","language":"Python","funding_links":[],"categories":["Python","📝 Publications \u003csmall\u003e(60)\u003c/small\u003e"],"sub_categories":[],"readme":"# Emerging Convolutions for Generative Flows\n\nCode for invertible convolutions (or deconvolutions) in deep neural networks: [paper](https://arxiv.org/abs/1901.11137), [blog](https://ehoogeboom.github.io/post/invertible_convs/).\n\nIf you use our work, please cite us: \n```\nEmiel Hoogeboom, Rianne van den Berg, and Max Welling. Emerging Convolutions for Generative Normalizing Flows. International Conference on Machine Learning, 2019.\n```\n\nA BibTeX entry for LaTeX users is:\n```\n@inproceedings{\nhoogeboom2019emerging,\ntitle={Emerging Convolutions for Generative Normalizing Flows},\nauthor={Emiel Hoogeboom and Rianne van den Berg and Max Welling},\nbooktitle={International conference on machine learning},\nyear={2019},\nurl={https://arxiv.org/abs/1901.11137},\n}\n```\n\nThe source is adapted from [Glow: Generative Flow with Invertible 1x1 Convolutions](https://github.com/openai/glow)\n\n## Requirements\n- Horovod (tested with 0.15.2)\n- Tensorflow (tested with 1.12)\n\n## Download datasets\nCIFAR10 is automatically downloaded.\nGalaxy images need to be downloaded [here](https://github.com/SpaceML/merger_transfer_learning).\n\nImageNet 32x32 and 64x64 was downloaded from the link on the Glow github: `https://storage.googleapis.com/glow-demo/data/{dataset_name}-tfr.tar`\nwith `imagenet-oord` as dataset_name. \n\n\n##### Galaxy images results\n\nPeriodic:\n```\nmpiexec -n 4 python train.py --problem space --image_size 32 --n_level 2 --depth 8 --flow_permutation 5 --flow_coupling 1 --seed 2 --lr 0.001 --n_bits_x 8 --epochs 6001\n```\n\nEmerging:\n```\nmpiexec -n 4 python train.py --problem space --image_size 32 --n_level 2 --depth 8 --flow_permutation 3 --flow_coupling 1 --seed 2 --lr 0.001 --n_bits_x 8 --epochs 6001\n```\n\nBaseline (Glow):\n```\nmpiexec -n 4 python train.py --problem space --image_size 32 --n_level 2 --depth 8 --flow_permutation 2 --flow_coupling 1 --seed 2 --lr 0.001 --n_bits_x 8 --epochs 6001\n```\n\n##### CIFAR-10 results\n\nEmerging:\n```\nmpiexec -n 4 python train.py --problem cifar10 --image_size 32 --n_level 3 --depth 32 --flow_permutation 3 --flow_coupling 1 --seed 2 --learnprior --lr 0.001 --n_bits_x 8 --epochs 4001\n```\n\nBaseline (Glow):\n```\nmpiexec -n 4 python train.py --problem cifar10 --image_size 32 --n_level 3 --depth 32 --flow_permutation 2 --flow_coupling 1 --seed 2 --learnprior --lr 0.001 --n_bits_x 8 --epochs 4001\n```\n\n\n##### CIFAR-10 results (smaller architectures)\n\nReplace ? with either 8 or 4, depending on the experiment.\n\nEmerging:\n```\nmpiexec -n 4 python train.py --problem cifar10 --image_size 32 --n_level 3 --depth ? --flow_permutation 3 --flow_coupling 1 --seed 2 --learnprior --lr 0.001 --n_bits_x 8 --epochs 4001\n```\n\nBaseline (Glow):\n```\nmpiexec -n 4 python train.py --problem cifar10 --image_size 32 --n_level 3 --depth ? --flow_permutation 2 --flow_coupling 1 --seed 2 --learnprior --lr 0.001 --n_bits_x 8 --epochs 4001\n```\n\n##### ImageNet 32x32 results\n\nEmerging:\n```\nmpiexec -n 4 python train.py --problem imagenet-oord --image_size 32 --n_level 3 --depth 48 --flow_permutation 3 --flow_coupling 1 --seed 0 --learnprior --lr 0.001 --n_bits_x 8\n```\n\nBaseline (Glow):\n```\nmpiexec -n 4 python train.py --problem imagenet-oord --image_size 32 --n_level 3 --depth 48 --flow_permutation 2 --flow_coupling 1 --seed 0 --learnprior --lr 0.001 --n_bits_x 8\n```\n\n\n##### ImageNet 64x64 results\nEmerging:\n```\nmpiexec -n 4 python train.py --problem imagenet-oord --image_size 64 --n_level 4 --depth 48 --flow_permutation 3 --flow_coupling 1 --seed 0 --learnprior --lr 0.001 --n_bits_x 8\n```\n\nBaseline (Glow):\n```\nmpiexec -n 4 python train.py --problem imagenet-oord --image_size 64 --n_level 4 --depth 48 --flow_permutation 2 --flow_coupling 1 --seed 0 --learnprior --lr 0.001 --n_bits_x 8\n```\n\n\n##### 1x1 Convolution results\nQR 1x1:\n```\nmpiexec -n 4 python train.py --problem cifar10 --image_size 32 --n_level 3 --depth 8 --flow_permutation 2 --flow_coupling 1 --seed 2 --learnprior --lr 0.001 --n_bits_x 8 --epochs 3501 --decomposition QR\n```\n\nPLU 1x1 (Glow):\n```\nmpiexec -n 4 python train.py --problem cifar10 --image_size 32 --n_level 3 --depth 8 --flow_permutation 2 --flow_coupling 1 --seed 2 --learnprior --lr 0.001 --n_bits_x 8 --epochs 3501 --decomposition PLU\n```\n\nBaseline 1x1 (Glow):\n```\nmpiexec -n 4 python train.py --problem cifar10 --image_size 32 --n_level 3 --depth 8 --flow_permutation 2 --flow_coupling 1 --seed 2 --learnprior --lr 0.001 --n_bits_x 8 --epochs 3501\n```\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fehoogeboom%2Femerging","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fehoogeboom%2Femerging","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fehoogeboom%2Femerging/lists"}