Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/AllanYangZhou/metalearning-symmetries
Experiments for Meta-Learning Symmetries by Reparameterization
https://github.com/AllanYangZhou/metalearning-symmetries
Last synced: 3 months ago
JSON representation
Experiments for Meta-Learning Symmetries by Reparameterization
- Host: GitHub
- URL: https://github.com/AllanYangZhou/metalearning-symmetries
- Owner: AllanYangZhou
- Created: 2020-07-02T01:05:46.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-04-11T20:13:51.000Z (over 3 years ago)
- Last Synced: 2024-07-04T01:01:47.465Z (4 months ago)
- Language: Python
- Size: 12.7 KB
- Stars: 55
- Watchers: 13
- Forks: 7
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Meta-learning Symmetries by Reparameterization (MSR)
Code and weights corresponding to Meta-learning Symmetries by Reparameterization, found at this [arXiv link](https://arxiv.org/abs/2007.02933).## Installation and requirements
All experiments were run in a conda environment with python 3.7.5, using pytorch. The conda environment we used is exported in `environment.yml`, though it likely contains more packages than are strictly necessary.## Synthetic experiments
### Generate data
The file `generate_synthetic_data.py` contains the data generation code.
You must specify the name of the problem we wish to generate data for. Options are:
* `rank1`: 1-D data generated by a convolution layer
* `rank2`: 1-D data generated by a locally connected layer, with rank 2 weight factorization.
* `rank5`: 1-D data generated by a locally connected layer, with rank 5 weight factorization.
* `2d_rot8`: 2-D data that is equivariant to 45-degree rotations.
* `2d_rot8_flip`: 2-D data that is equivariant to 45-degree rotations and flips.Example:
```sh
python generate_synthetic_data.py --problem rank1
```### Train
The file `train_synthetic.py` contains training and evaluation code. Specifying the argument `model` controls whether to use MSR, plain MAML, or something else.Some examples are given below:
```sh
python train_synthetic.py --problem rank1 --model share_fc # MSR+FC on rank1 problem.
python train_synthetic.py --problem rank1 --model fc # MAML+FC on rank1 problem.
python train_synthetic.py --problem rank1 --model conv # MAML+Conv model on rank1 problem.
python train_synthetic.py --problem 2d_rot8 --model share_conv # MSR+Conv on 2d_rot8 problem.
python train_synthetic.py --problem 2d_rot8 --model conv # MAML+Conv on 2d_rot8 problem.
```## Augmented-(Omniglot/Miniimagenet)
WIP