Skip to content
/ mot Public

Model implementation for "Adaptive computation as a new mechanism of human attention"

Notifications You must be signed in to change notification settings

CNCLgithub/mot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mot

Implementation of adaptive computation and a case study on multiple object tracking (Pylyshyn & Storm 1988).

Setup and running

  1. Clone repository git clone https://github.com/CNCLgithub/mot and cd mot
  2. Run ./env.d/setup.sh cont_pull python julia to build the container and setup python and Julia.
  3. Enter ./env.d/run.sh julia to get into Julia REPL
  4. 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

Replication details

The project is organized into core routines (under src) and user scripts (under scripts). In order to run the adaptive computation model from scratch:

  1. Run the relevant scripts under scripts/experiments (batch scripts are provided for SLURM)
  2. Aggregrate model traces using scripts/analysis/aggregate_chains.jl
  3. Export the produces "csv" files to the analysis repo

More details can be found in the README for each section.

Mac and Window users

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

Contributing

Contributing Rules

  1. Place all re-used code in packages (src or functional_scenes)
  2. Place all interactive code in scripts
  3. Do not use "hard" paths. Instead refer to the paths in SPATHS.
  4. Add contributions to branches derived from master or dev
  5. Avoid git add *
  6. Do not commit large files (checkpoints, datasets, etc). Update setup.sh accordingly.

Project layout

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)

Changing the enviroment

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

for more info checkout poetry and Pkg

About

Model implementation for "Adaptive computation as a new mechanism of human attention"

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published