Install
python3.8
pytorch
: 1.7.0+ (GPU support preferable).
Then,
make install
W&B API Key
Copy your WandB API key to wandb_api.key
.
Will be used to login to your dashboard for visualisation.
Alternatively, you can skip W&B visualisation,
and set wandb.use=False
while running the python code or USE_WANDB=False
while running make commands.
Google Drive Links
- Project Folder
- Image Dataset: we'll be mainly using 16-bit images from
img/rgb16bit
. These are all sourced from the image compression benchmark. - Research Papers: saved as
<name of paper>[<conference> <year> <author>].pdf
. Look out for top-tier conference papers (CVPR, ECCV, ICCV, NeurIPS, ICLR) and journals (TPAMI). - Output folder: will contain logs of important experiments and their config files.
Using Colab
We can't run our codebase directly on colab, since hydra relies on config injection. Instead, we'll make use of colabcode. Just click the button below, and setup your port and password.
This should open up a familiar VSCode environment, use the terminal to run.
Steps:
-
Change to your drive home folder. File -> Open ->
/content/drive/MyDrive/
. -
Clone repository (only the first time):
git clone https://github.com/varun19299/implicit-image-compression.git
. -
Copy the
img/
folder from the shared drive here. -
Install all dependencies with:
make colab_install
Please do not use the shared folder as the location for your code, it will cause conflicts.
Recommended Workflow
- Use meaningful experiment names, via
exp_name
. Hydra allows you to use other config values in any command line variable.
Eg: python main.py exp_name='siren-width-${mlp.width}-depth-${mlp.depth}' mlp.width=256,512 mlp.depth=6,8
.
This will run 4 experiments (cartesian product of {256,512} x {6,8}), with experiment names as siren-width-256-depth-6, siren-width-256-depth-8, etc.
- Please create a new project on W&B, and change
wandb.project
accordingly.
Eg: python main.py wandb.project=siren-width-depth
.
-
Copy important output folders (see under
outputs/
) toDrive/code/outputs/
. -
W&B is pretty flexible when it comes to plotting, so you should be able to compare methods on the dashboard itself. Use their API in case you need to do some post-processing before making plots.
Rsync Outputs
python main.py --cfg job
``
We use hydra for configs. YAML files present under conf/
.
make fit
make help
, will display commented usage for each command.