Giter Site home page Giter Site logo

lijuny / mlnotify Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aporia-ai/mlnotify

0.0 1.0 0.0 13.31 MB

๐Ÿ”” No need to keep checking your training - just one import line and you'll know the second it's done.

Home Page: https://mlnotify.aporia.com

License: MIT License

Makefile 2.87% Shell 0.05% Python 24.39% JavaScript 6.39% TypeScript 23.97% Vue 41.84% SCSS 0.50%

mlnotify's Introduction

ML Notify

SDK Build SDK Build License Issues Last Commit

No need to keep checking your training. Add just 1 import line and MLNotify will let you know the second it's done.

Features:

  • Just pip install mlnotify and import mlnotify to get started
  • Out-of-the-box email & push notifications on desktop, mobile
  • Support for most major ML frameworks (as in Keras, LightGBM, SKLearn, XGBoost, Tensorflow)
  • A simple & intuitive UX
  • Fully secure - no sensitive data leaves your machine (only training start time / end time)

Made with โค๏ธ by Aporia

ML Notify

Quickstart

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.

  • Once you start training your model a tracking url & QR code will be printed to the console. Printed tracking URL & QR code
  • Enter the tracking url
  • Grab a coffee and relax, the tracking url will notify you when the training is complete via desktop, mobile, or email notifications

Usage

Simple

import mlnotify

This will automagically hook into your fit/train method.

Supported ML frameworks:

Manual

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

Advanced

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(...)

API

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 invokation. Methods:

  • plugins_manager.register_plugin(plugin: BasePlugin) -> None

    Registers a plugin.

  • plugins_manager.clear_plugins() -> None

    Removes all registered plugins.

Security

No sensitive data is sent to the MLNotify server - only training start & end time.

Contribution, self-deployment & local development

Contributions and self-deployments are more than welcome.

Website & API

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:

  • Make sure you installed the Netlify CLI globally: npm install -g netlify-cli
  • You must have the following environment variables set:
    • 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 Key
  • cd website
  • netlify dev

SDK

  • pip install ./sdk
  • Write a python file using the SDK and just import mlnotify

License

FOSSA Status

mlnotify's People

Contributors

alongubkin avatar snirshechter avatar yanivzoh avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.