Skip to content

Code to re-implement MONet, presented by Burgess et al. in "MONet: Unsupervised Scene Decomposition and Representation".

Notifications You must be signed in to change notification settings

ijoffe/AbstractSceneDecomposition

Repository files navigation

Abstract Scene Decomposition

Summary

This repository contains code to re-implement MONet, presented by Burgess et al. in "MONet: Unsupervised Scene Decomposition and Representation". I completed this project with Benjamin Colussi as part of the "CS679: Neural Networks" course in Winter 2025 at UWaterloo.

Guide

  • datasets/: This folder contains the files for the two main datasets used in our project, as well as our custom ARC-AGI datasets.
  • models/: This folder contains the files for the main trained models used in our project.
  • results/: This folder contains files showing additional example outputs generated by each model.
  • arc_data.py: This file contains the source code to generate and use our custom ARC-AGI datasets.
  • demo.ipynb: This file contains a comprehensive demonstration of the successful functioning of our project, including our main reimplementation and replication of the original paper as well as our extensions.
  • monet.py and monet.ipynb: These files contain the source code for the original version of MONet (with the .ipynb version containing deeper explanation of the code).
  • monet_normask.py and monet_normask.ipynb: These files contain the source code for the NoRMask version of MONet (with the .ipynb version containing deeper explanation of the code).
  • monet_mini.py and monet_mini.ipynb: These files contain the source code for the miniature version of MONet (with the .ipynb version containing deeper explanation of the code).
  • original_paper.pdf: This file is the original paper for easy access.
  • report.pdf: This file is our project report.
  • requirements.txt: This file contains the main packages that need to be installed for all project code to run.

Note that you may encounter issues when attempting to clone/pull this repository because of the use of Git Large File Storage (LFS), which enables the inclusion of the large dataset and model files. For best results, ensure Git LFS is installed on your system prior to cloning this repository. Additionally, make sure to clone this repository using HTTPS and Git LFS (i.e., run git lfs clone https://github.com/ijoffe/AbstractSceneDecomposition.git and not the conventional git clone [email protected]:<...> command). If the large dataset files still do not download properly, try downloading them directly from Google DeepMind. To run our code most effectively, create and activate a Python virtual environment (via python -m venv env and source env/bin/activate) and install the required dependencies (via pip install -r requirements.txt). Note that special action may be necessary to run our code with a CUDA-enabled version of PyTorch. Also note that model inference (e.g., when running demo.ipynb) may be slow due to the substantial computational resources required by the model.

About

Code to re-implement MONet, presented by Burgess et al. in "MONet: Unsupervised Scene Decomposition and Representation".

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published