Comments (2)
A general monitoring callback is already supported by the bindings:
pyoperon/example/operon-bindings.py
Line 105 in 5ddcd9d
But calling python lambdas from C++ can be unreliable due to the GIL. We could expose this as callback=...
in the SymbolicRegressor
. More detailed callbacks would require changes to the C++ library and to implement some termination operators.
Regarding Optuna, is this similar to what you had in mind? https://gist.github.com/foolnotion/226fe764b9af79f219d63c8c10b0d497
from pyoperon.
Indeed exposing callbacks=...
is the customary API design for ML libraries. See for example:
- Keras callbacks where one can create callbacks inheriting from a
Callback
class - Lightning callbacks follow a very similar logic
- Pymoo callback likewise
other examples of ML libraries using callback
API: xgboost, lightgbm.
All of these provide the required functionality to use callbacks
with TensorBoard, a leading ML experiment tracker, and I imagine that the same could be done for MLFlow, see for example how one can use Keras callbacks.
Regarding optuna
: I was thinking about using callbacks
to extend optuna
's functionality with pyoperon
. For example, optuna
has integration callbacks to use pruners to kill unpromising trials. It's an example of application, not strictly part of the feature requested.
from pyoperon.
Related Issues (17)
- Can't build on Ubuntu HOT 2
- Calling the optimizer is unnecessarily complicated
- `double free or corruption (out)` HOT 8
- explicit clang compiler specification required under conda on Linux HOT 1
- operon-sklearn.py example not working - segfault in MinimumDescriptionLengthEvaluator HOT 9
- Segmentation fault when working with MultiEvaluator on Mac M1 HOT 3
- Updated release? HOT 8
- Feature request: Sample weights HOT 6
- Feature request: Validation data metrics for model selection HOT 1
- Problem with GLIBCXX_3.4.30 while importing package to python HOT 12
- ModuleNotFoundError: No module named 'operon.pyoperon' HOT 38
- How to get the prediction of all models in the final population? HOT 10
- ValueError: Input contains NaN. HOT 1
- TypeError: cannot pickle 'pyoperon.pyoperon.Variable' object HOT 1
- switch project to nanobind HOT 2
- Unable to install pyoperon by the README's nix develop command HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pyoperon.