Implementation of adaptive computation and a case study on multiple object tracking (Pylyshyn & Storm 1988).
- Clone repository
git clone https://github.com/CNCLgithub/mot
andcd mot
- Run
./env.d/setup.sh cont_pull python julia
to build the container and setup python and Julia. - Enter
./env.d/run.sh julia
to get into Julia REPL - Run
./env.d/setup.sh datasets
to download the datasets used for the experiments.
This project has automatic configuration!! This configuration is defined in default.conf
.
You should always prepend ./run.sh
before any command (including running programs like julia
) to ensure consistency.
If you wish to have different values than default.conf
, simply:
cp default.conf user.conf
vi user.conf # edit to your liking without adding new elements
The project is organized into core routines (under src
) and user scripts (under scripts
).
In order to run the adaptive computation model from scratch:
- Run the relevant scripts under
scripts/experiments
(batch scripts are provided for SLURM) - Aggregrate model traces using
scripts/analysis/aggregate_chains.jl
- Export the produces "csv" files to the analysis repo
More details can be found in the README for each section.
In order to use singularity you must have a virtual machine running. Assuming you have vagrant (and something like virtualbox) setup on your host, you can follow these steps
- Place all re-used code in packages (
src
orfunctional_scenes
) - Place all interactive code in
scripts
- Do not use "hard" paths. Instead refer to the paths in
SPATHS
. - Add contributions to branches derived from
master
ordev
- Avoid
git add *
- Do not commit large files (checkpoints, datasets, etc). Update
setup.sh
accordingly.
The python package environment is managed by as defined in setup.sh
(specifically SENV[pyenv]
)
Likewise, the Julia package is described under src
and test
All scripts are located under scripts
and data/output is under env.d/spaths
as specific in the project config (default.conf
or user.conf
)
To add new python or julia packages use the provided package managers (poetry add
or Pkg.add
for python and julia respectively.)
For julia you can also use ] add
in the REPL