|
1. Understand the file structure: |
|
1. architectures in `discriminator.py` `generator.py` `classifier.py` |
|
2. data loading in `data.py` |
|
3. data transformation `transforms.py` |
|
4. optimizers in `optim.py` |
|
5. utilities in `utils.py` |
|
6. training procedure in `trainer.py` |
|
2. Write **tests** in `tests/` |
|
1. your file should match `test_*.py` |
|
2. update existing tests when adding functionalities |
|
3. run tests regularly to check you haven't broken anything `python tests/run.py` |
|
3. Add **WIP** in your PR's title when not ready to merge |
|
5. Open an Issue if something's odd, or to assign yourself a todo |
|
6. **Format your code** with [black](https://github.com/psf/black) |
|
7. Only update `trainer/defaults.yaml` with values that should be shared across runs and users |
|
1. use `config/trainer/local_tests.yaml` or any other to setup your particular config overriding `trainer/defaults.yaml` |
|
|
|
## Running tests |
|
|
|
As per `7.` you should set your particular config in `config/local_tests.yaml`. Mine looks like: |
|
|
|
```yaml |
|
output_path: /Users/victor/Documents/ccai/github/climategan/example_data |
|
# ------------------- |
|
# ----- Tasks ----- |
|
# ------------------- |
|
#tasks: [a, d, h, s, t, w] |
|
tasks: [a, d, s, t] # for now no h or w |
|
# ---------------- |
|
# ----- Data ----- |
|
# ---------------- |
|
data: |
|
files: # if one is not none it will override the dirs location |
|
base: /Users/victor/Documents/ccai/github/climategan/example_data |
|
transforms: |
|
- name: hflip |
|
ignore: false |
|
p: 0.5 |
|
- name: resize |
|
ignore: false |
|
new_size: 256 |
|
- name: crop |
|
ignore: false |
|
height: 64 |
|
width: 64 |
|
gen: |
|
encoder: |
|
n_res: 1 |
|
default: |
|
n_res: 1 |
|
|
|
train: |
|
log_level: 1 |
|
``` |
|
|
|
Setting `n_res` to 1 is important to run tests faster and with less memory |
|
|