Skip to main content

ml2rt - Utilities for taking ML to different runtimes

Machine learning utilities for model conversion, serialization, loading etc

  • Free software: Apache Software License 2.0

Installation

pip install ml2rt

Documentation

ml2rt provides some convenient functions to convert, save & load machine learning models. It currently supports Tensorflow, PyTorch, Sklearn, Spark and ONNX but frameworks like xgboost, coreml are on the way.

Saving Tensorflow model

import tensorflow as tf
from ml2rt import save_tensorflow
# train your model here
sess = tf.Session()
save_tensorflow(sess, path, output=['output'])

Saving PyTorch model

# it has to be a torchscript graph made by tracing / scripting
from ml2rt import save_torch
save_torch(torch_script_graph, path)

Saving ONNX model

from ml2rt import save_onnx
save_onnx(onnx_model, path)

Saving sklearn model

from ml2rt import save_sklearn
prototype = np.array(some_shape, dtype=some_dtype)  # Equivalent to the input of the model
save_sklearn(sklearn_model, path, prototype=prototype)

# or

# some_shape has to be a tuple and some_dtype has to be a np.dtype, np.dtype.type or str object
save_sklearn(sklearn_model, path, shape=some_shape, dtype=some_dtype)

# or

# some_shape has to be a tuple and some_dtype has to be a np.dtype, np.dtype.type or str object
inital_types = utils.guess_onnx_tensortype(shape=shape, dtype=dtype)
save_sklearn(sklearn_model, path, initial_types=initial_types)

Saving sparkml model

from ml2rt import save_sparkml
prototype = np.array(some_shape, dtype=some_dtype)  # Equivalent to the input of the model
save_sparkml(spark_model, path, prototype=prototype)

# or

# some_shape has to be a tuple and some_dtype has to be a np.dtype, np.dtype.type or str object
save_sparkml(spark_model, path, shape=some_shape, dtype=some_dtype)

# or

# some_shape has to be a tuple and some_dtype has to be a np.dtype, np.dtype.type or str object
inital_types = utils.guess_onnx_tensortype(shape=shape, dtype=dtype)
save_sparkml(spark_model, path, initial_types=initial_types)

Sklearn and sparkml models will be converted to ONNX first and then save to the disk. These models can be executed using ONNXRuntime, RedisAI etc. ONNX conversion needs to know the type of the input nodes and hence we have to pass shape & dtype or a prototype from where the utility can infer the shape & dtype or an initial_type object which is understood by the conversion utility. Frameworks like sparkml allows users to have heterogeneous inputs with more than one type. In such cases, use guess_onnx_tensortypes and create more than one initial_types which can be passed to save function as a list

Loading model & script

Loading function can load both single file models like freezed tensorflow model or torchscript model or onnx model as well as SavedModel from tensorflow

model = ml2rt.load_model(path)

script = ml2rt.load_script(script)

Metadata

Release files for ml2rt 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ml2rt 0.2.0
File Size Uploaded
ml2rt-0.2.0.tar.gz 11.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ml2rt 0.2.0
File Interpreter ABI Platform
ml2rt-0.2.0-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 18.8 kB

Release files / ml2rt-0.2.0.tar.gz

Download URL ml2rt-0.2.0.tar.gz
Size 11.0 kB
Tags Source
SHA-256 checksum
How to use checksums
42ba3cb342582fcc568cb7006b2a9dc3a8c53ec33652b205b6fd583167978fb8
BLAKE2b-256 checksum
How to use checksums
8afd9398149da6382459596497b6e0627fff15a456161c3604ebe4b02d2b5037
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.1.post20200323 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

Release files / ml2rt-0.2.0-py2.py3-none-any.whl

Download URL ml2rt-0.2.0-py2.py3-none-any.whl
Size 7.8 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
6e8f154d46d518df8ca3c030bf89e6270138c6a7bf962a60e795f2e51e6021da
BLAKE2b-256 checksum
How to use checksums
49ecc186d1ad290ed73258c6c3196bf4b05db447c3cd8cb8669bcef6bee2322a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.1.post20200323 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.2

2 release files

0.1.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page