AEPsych

AEPsych

  • Docs
  • Tutorials
  • API Reference
  • GitHub
Animated Project Logo

Adaptive experimentation for human perception and perceptually-informed outcomes

INTRODUCTION
Get Started
Tutorials

Key Features

Built on top of the modern ML ecosystem

PyTorch under the hood

Works where you work

Write your stimulus presentation code in whatever language you like via client-server architecture (Python, C#/Unity and MATLAB PsychToolbox supported out of the box)

Modular and extensible

Full compatibility with GPyTorch / BoTorch: make your new models or acquisition functions available to experimentalists in a few lines of code

References

Adaptive Nonparametric Psychophysics

  @misc{https://doi.org/10.48550/arxiv.2104.09549,
  doi = {10.48550/ARXIV.2104.09549},
  url = {https://arxiv.org/abs/2104.09549},
  author = {Owen, Lucy and Browder, Jonathan and Letham, Benjamin and Stocek, Gideon and Tymms, Chase and Shvartsman, Michael},
  keywords = {Methodology (stat.ME), Neurons and Cognition (q-bio.NC), FOS: Computer and information sciences, FOS: Computer and information sciences, FOS: Biological sciences, FOS: Biological sciences},
  title = {Adaptive Nonparametric Psychophysics},
  publisher = {arXiv},
  year = {2021},
  copyright = {Creative Commons Attribution Non Commercial No Derivatives 4.0 International}
  }

Check out additional papers contributing to or using AEPsych

Get Started

  1. Install AEPsych:

    AEPsych only supports python 3.8+. We recommend installing AEPsych under a virtual environment like Anaconda. Once you've created a virtual environment for AEPsych and activated it, you can install AEPsych using pip:

        pip install aepsych
    

    If you're a developer or want to use the latest features, you can install from GitHub using:

        git clone https://github.com/facebookresearch/aepsych.git
        cd aepsych
        pip install -r requirements.txt
        pip install -e .
    
  2. Usage:

    The canonical way of using AEPsych is to launch it in server mode (you can run aepsych_server --help to see additional arguments):

        aepsych_server --port 5555 --ip 0.0.0.0 database --db mydatabase.db
    

    The server accepts messages over either p unix socket or ZMQ, and all messages are formatted using JSON. All messages have the following format:

        {
         "type":<TYPE>,
         "version":<VERSION>,
         "message":<MESSAGE>,
        }
    

    Version can be omitted, in which case we default to the oldest / unversioned handler for this message type. There are five message types: setup, resume, ask, tell and exit.

  3. Setup:

    The setup message prepares the server for making suggestions and accepting data. The setup message can be formatted as either INI or a python dict (similar to JSON) format, and an example for psychometric threshold estimation is given in configs/single_lse_example.ini. It looks like this:

        {
        "type":"setup",
        "version":"0.01",
        "message":{"config_str":<PASTED CONFIG STRING>}
        }
    
    More examples
  4. AEPsych clients:

    AEPsych modeling and sample selection algorithms are accessible via a server with clients available in Python, MATLAB, and Unity.

AEPsych
Docs
IntroductionGetting StartedTutorialsAPI Reference
Legal
PrivacyTerms
Social
aepsych
Facebook Open Source
Copyright © 2023 Meta, Inc. Built with Docusaurus.

We use cookies to enhance your experience, and to analyse the use of our website. By clicking or navigating, you agree to allow our usage of cookies.