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
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
Metadata Files
README.md
The Neural Testbed

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:
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 setuptoolsInstall
neural_testbeddirectly from github:bash git clone https://github.com/deepmind/neural_testbed.git cd neural_testbed pip install .Optional: run the tests by executing
./test.shfrom theneural_testbedmain 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
- Website: https://www.deepmind.com/
- Repositories: 245
- Profile: https://github.com/google-deepmind
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
Top Committers
| Name | 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
- actions/checkout v2 composite
- actions/setup-python v1 composite
- 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 *