Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Ray | 27,954 | 80 | 298 | 21 hours ago | 87 | July 24, 2023 | 3,448 | apache-2.0 | Python | |
Ray is a unified framework for scaling AI and Python applications. Ray consists of a core distributed runtime and a set of AI Libraries for accelerating ML workloads. | ||||||||||
Nebuly | 8,287 | 2 months ago | 99 | apache-2.0 | Python | |||||
The next-generation platform to monitor and optimize your AI costs in one place 🚀 | ||||||||||
Awesome Quantum Machine Learning | 2,206 | 7 months ago | 8 | cc0-1.0 | HTML | |||||
Here you can get all the Quantum Machine learning Basics, Algorithms ,Study Materials ,Projects and the descriptions of the projects around the web | ||||||||||
Pennylane | 1,909 | 10 | 48 | 3 days ago | 44 | August 28, 2023 | 303 | apache-2.0 | Python | |
PennyLane is a cross-platform Python library for differentiable programming of quantum computers. Train a quantum computer the same way as a neural network. | ||||||||||
Talos | 1,548 | a year ago | 8 | mit | Python | |||||
Hyperparameter Optimization for TensorFlow, Keras and PyTorch | ||||||||||
Cvxpylayers | 1,511 | 5 | 5 months ago | 6 | June 03, 2020 | 45 | apache-2.0 | Python | ||
Differentiable convex optimization layers | ||||||||||
Model Optimization | 1,432 | 3 | 27 | 18 days ago | 30 | May 26, 2023 | 204 | apache-2.0 | Python | |
A toolkit to optimize ML models for deployment for Keras and TensorFlow, including quantization and pruning. | ||||||||||
Wheels | 885 | 4 years ago | 20 | |||||||
Performance-optimized wheels for TensorFlow (SSE, AVX, FMA, XLA, MPI) | ||||||||||
Nnfusion | 833 | 2 months ago | 110 | mit | C++ | |||||
A flexible and efficient deep neural network (DNN) compiler that generates high-performance executable from a DNN model description. | ||||||||||
Awesome Robotics | 767 | 3 days ago | 3 | |||||||
A curated list of awesome links and software libraries that are useful for robots. |
Documentation (develop) | Documentation (release) | Tutorials | API reference |
Trieste (pronounced tree-est) is a Bayesian optimization toolbox built on TensorFlow. Trieste is named after the bathyscaphe Trieste, the first vehicle to take a crew to Challenger Deep in the Mariana Trench, the lowest point on the Earths surface: the literal global minimum.
Why Trieste?
Here's a quick overview of the main components of a Bayesian optimization loop. For more details, see our Documentation where we have multiple Tutorials covering both the basic functionalities of the toolbox, as well as more advanced usage.
Let's set up a synthetic black-box objective function we wish to minimize, for example, a popular Branin optimization function, and generate some initial data
from trieste.objectives import Branin, mk_observer
observer = mk_observer(Branin.objective)
initial_query_points = Branin.search_space.sample(5)
initial_data = observer(initial_query_points)
First step is to create a probabilistic model of the objective function, for example a Gaussian Process model
from trieste.models.gpflow import build_gpr, GaussianProcessRegression
gpflow_model = build_gpr(initial_data, Branin.search_space)
model = GaussianProcessRegression(gpflow_model)
Next ingredient is to choose an acquisition rule and acquisition function
from trieste.acquisition import EfficientGlobalOptimization, ExpectedImprovement
acquisition_rule = EfficientGlobalOptimization(ExpectedImprovement())
Finally, we optimize the acquisition function using our model for a number of steps and we check the obtained minimum
from trieste.bayesian_optimizer import BayesianOptimizer
bo = BayesianOptimizer(observer, Branin.search_space)
num_steps = 15
result = bo.optimize(num_steps, initial_data, model)
query_point, observation, arg_min_idx = result.try_get_optimal_point()
Trieste supports Python 3.7+ and TensorFlow 2.5+, and uses semantic versioning.
To install the latest (stable) release of the toolbox from PyPI, use pip
:
$ pip install trieste
or to install from sources, run
$ pip install .
in the repository root.
To install this project in editable mode, run the commands below from the root directory of the trieste
repository.
git clone https://github.com/secondmind-labs/trieste.git
cd trieste
pip install -e .
For installation to be able to run quality checks, as well as other details, see the guidelines for contributors.
Trieste has a documentation site with tutorials on how to use the library, and an API reference. You can also run the tutorials interactively. They can be found in the notebooks directory, and are written as Python scripts for running with Jupytext. To run them, first install trieste from sources as above, then install additional dependencies with
$ pip install -r notebooks/requirements.txt
Finally, run the notebooks with
$ jupyter-notebook notebooks
Alternatively, you can copy and paste the tutorials into fresh notebooks and avoid installing the library from source. To ensure you have the required plotting dependencies, simply run:
$ pip install trieste[plotting]
Bugs, feature requests, pain points, annoying design quirks, etc: Please use GitHub issues to flag up bugs/issues/pain points, suggest new features, and discuss anything else related to the use of Trieste that in some sense involves changing the Trieste code itself. We positively welcome comments or concerns about usability, and suggestions for changes at any level of design. We aim to respond to issues promptly, but if you believe we may have forgotten about an issue, please feel free to add another comment to remind us.
We have a public Secondmind Labs slack workspace. Please use this invite link and join the #trieste channel, whether you'd just like to ask short informal questions or want to be involved in the discussion and future development of Trieste.
All constructive input is very much welcome. For detailed information, see the guidelines for contributors.
To cite Trieste, please reference our arXiv paper where we review the framework and describe the design. Sample Bibtex is given below:
@misc{trieste2023,
author = {Picheny, Victor and Berkeley, Joel and Moss, Henry B. and Stojic, Hrvoje and Granta, Uri and Ober, Sebastian W. and Artemev, Artem and Ghani, Khurram and Goodall, Alexander and Paleyes, Andrei and Vakili, Sattar and Pascual-Diaz, Sergio and Markou, Stratis and Qing, Jixiang and Loka, Nasrulloh R. B. S and Couckuyt, Ivo},
title = {Trieste: Efficiently Exploring The Depths of Black-box Functions with TensorFlow},
publisher = {arXiv},
year = {2023},
doi = {10.48550/ARXIV.2302.08436},
url = {https://arxiv.org/abs/2302.08436}
}