https://github.com/google-deepmind/neural_testbed

https://github.com/google-deepmind/neural_testbed

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.9%) to scientific vocabulary

Keywords from Contributors

research jax deep-neural-networks distributed neuralgcm reinforcement-learning climate weather deep-reinforcement-learning transformer
Last synced: 6 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: google-deepmind
  • License: apache-2.0
  • Language: Jupyter Notebook
  • Default Branch: master
  • Size: 2.97 MB
Statistics
  • Stars: 192
  • Watchers: 11
  • Forks: 18
  • Open Issues: 2
  • Releases: 0
Created over 4 years ago · Last pushed about 1 year ago
Metadata Files
Readme Contributing License

README.md

The Neural Testbed

Neural Testbed Logo

Introduction

Posterior predictive distributions quantify uncertainties ignored by point estimates. The neural_testbed provides tools for the systematic evaluation of agents that generate such predictions. Crucially, these tools assess not only the quality of marginal predictions per input, but also joint predictions given many inputs. Joint distributions are often critical for useful uncertainty quantification, but they have been largely overlooked by the Bayesian deep learning community.

This library automates the evaluation and analysis of learning agents:

  • Synthetic neural-network-based generative model.
  • Evaluate predictions beyond marginal distributions.
  • Reference implementations of benchmark agents (with tuning).

For a more comprehensive overview, see the accompanying paper.

Technical overview

We outline the key high-level interfaces for our code in base.py:

  • EpistemicSampler: Generates a random sample from agent's predictive distribution.
  • TestbedAgent: Given data, prior_knowledge outputs an EpistemicSampler.
  • TestbedProblem: Reveals trainingdata, priorknowledge. Can evaluate the quality of an EpistemicSampler.

If you want to evaluate your algorithm on the testbed, you simply need to define your TestbedAgent and then run it on our experiment.py

python def run(agent: testbed_base.TestbedAgent, problem: testbed_base.TestbedProblem) -> testbed_base.ENNQuality: """Run an agent on a given testbed problem.""" enn_sampler = agent(problem.train_data, problem.prior_knowledge) return problem.evaluate_quality(enn_sampler)

The neural_testbed takes care of the evaluation/logging within the TestbedProblem. This means that the experiment will automatically output data in the correct format. This makes it easy to compare results from different codebases/frameworks, so you can focus on agent design.

How do I get started?

If you are new to neural_testbed you can get started in our colab tutorial. This Jupyter notebook is hosted with a free cloud server, so you can start coding right away without installing anything on your machine. After this, you can follow the instructions below to get neural_testbed running on your local machine:

Installation

We have tested neural_testbed on Python 3.7. To install the dependencies:

  1. Optional: We recommend using a Python virtual environment to manage your dependencies, so as not to clobber your system installation:

    bash python3 -m venv neural_testbed source neural_testbed/bin/activate pip install --upgrade pip setuptools

  2. Install neural_testbed directly from github:

    bash git clone https://github.com/deepmind/neural_testbed.git cd neural_testbed pip install .

  3. Optional: run the tests by executing ./test.sh from the neural_testbed main directory.

Baseline agents

In addition to our testbed code, we release a collection of benchmark agents. These include the full sets of hyperparameter sweeps necessary to reproduce the paper's results, and can serve as a great starting point for new research. You can have a look at these implementations in the agents/factories/ folder.

We recommended you get started with our colab tutorial. After intallation you can also run an agent directly by executing the following command from the main directory of neural_testbed:

bash python -m neural_testbed.experiments.run --agent_name=mlp

By default, this will save the results for that agent to csv at /tmp/neural_testbed. You can control these options by flags in the run file. In particular, you can run the agent on the whole sweep of tasks in the Neural Testbed by specifying the flag --problem_id=SWEEP.

Citing

If you use neural_testbed in your work, please cite the accompanying paper:

bibtex @article{osband2022neural, title={The Neural Testbed: Evaluating Joint Predictions}, author={Osband, Ian and Wen, Zheng and Asghari, Seyed Mohammad and Dwaracherla, Vikranth and Hao, Botao and Ibrahimi, Morteza and Lawson, Dieterich and Lu, Xiuyuan and O'Donoghue, Brendan and Van Roy, Benjamin}, journal={arXiv preprint arXiv:2110.04629}, year={2022} }

Owner

  • Name: Google DeepMind
  • Login: google-deepmind
  • Kind: organization

GitHub Events

Total
  • Watch event: 1
  • Push event: 1
  • Fork event: 1
Last Year
  • Watch event: 1
  • Push event: 1
  • Fork event: 1

Committers

Last synced: 10 months ago

All Time
  • Total Commits: 79
  • Total Committers: 12
  • Avg Commits per committer: 6.583
  • Development Distribution Score (DDS): 0.557
Past Year
  • Commits: 1
  • Committers: 1
  • Avg Commits per committer: 1.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
DeepMind n****y@g****m 35
Mohammad Asghari s****i@g****m 18
Mehdi Jafarnia j****a@g****m 7
Jake VanderPlas v****s@g****m 6
Peter Hawkins p****s@g****m 3
Ian Osband i****d@g****m 2
Vikranth Dwaracherla v****d@g****m 2
Morteza Ibrahimi m****i@g****m 2
Roman Novak r****n@g****m 1
Rebecca Chen r****n@g****m 1
Jacob Burnim j****m@g****m 1
Lucy Lu l****u@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 4
  • Total pull requests: 2
  • Average time to close issues: 1 day
  • Average time to close pull requests: 3 months
  • Total issue authors: 3
  • Total pull request authors: 2
  • Average comments per issue: 2.75
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • SamuelGabriel (2)
  • MichelangeloConserva (1)
  • snovaisg (1)
Pull Request Authors
  • MichelangeloConserva (1)
  • SamuelGabriel (1)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.github/workflows/ci.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v1 composite
setup.py pypi
  • absl-py *
  • chex *
  • dm-haiku *
  • enn *
  • jax *
  • jaxlib *
  • ml_collections *
  • neural-tangents *
  • numpy *
  • pandas *
  • plotnine *
  • tensorflow ==2.8.0
  • tensorflow-datasets ==4.4.0
  • tensorflow_probability ==0.15.0
  • typing-extensions *