🔔 No need to keep checking your training - just one import line and you'll know the second it's done.
No need to keep checking your training. Add just 1 import line and MLNotify will let you know the second it’s done.
Features:
pip install mlnotify
and import mlnotify
to get startedMade with :heart: by Aporia
pip3 install mlnotify
# STEP 1: Import package
import mlnotify
# STEP 2: Do your thing.
my_model.fit(...)
# STEP 3: Browse to mlnotify.com and get notified when training is done!
The import will automagically hook into your fit/train method.
import mlnotify
This will automagically hook into your fit/train method.
Supported ML frameworks:
import mlnotify
And in any Jupyter cell:
%%notify
...
Works with line magic, too
%notify your_code()
The library also exports a manual API to be used if you want to do it manually.
import mlnotify
mlnotify.start() # Start tracking
# ...
mlnotify.end() # End tracking
The library uses a simple plugin architecture. You can register your own plugins to extend the library’s functionality.
from mlnotify import BasePlugin, plugin_manager
# A plugin is simply a class with `before` and `after` methods
class MyPlugin(BasePlugin):
def before(self, *args, **kwargs):
# Called before the fit/train method
print("MyPlugin: training started")
def after(self, *args, **kwargs):
# Called after the fit/train method
print("MyPlugin: training finished")
plugin_manager.register_plugin(MyPlugin())
# Use mlnotify as you normally would
model.fit(...)
The library exports four items:
from mlnotify import start, end, plugins_manager, BasePlugin
start() -> None
Starts tracking.
end() -> None
Ends tracking.
plugins_manager: PluginsManager
The class handling all plugin registration and invocation.
Methods:
plugins_manager.register_plugin(plugin: BasePlugin) -> None
Registers a plugin.
plugins_manager.clear_plugins() -> None
Removes all registered plugins.
No sensitive data is sent to the MLNotify server - only training start & end time.
Contributions and self-deployments are more than welcome.
This project relies heavily on SaaS products, and must receive proper config for Netlify, Firebase and SendGrid for it to work. You can run this project locally using the Netlify CLI:
npm install -g netlify-cli
FIREBASE_SERVER_CERT
- a stringified JSON containing the firebase server config (it contains the following keys: {type, project_id, private_key_id, private_key, client_email, client_id, auth_uri, token_uri, auth_provider_x509_cert_url, client_x509_cert_url})GRIDSOME_FIREBASE_APP_CONFIG
- a stringified JSON containing the firebase client config (it contains the following keys: {apiKey, projectId, messagingSenderId, appId})SENDGRID_API_KEY
- a string containing the SendGrid API Keycd website
netlify dev
pip install ./sdk
import mlnotify