Skip to main content

titanium

Titanium is light-weight evaluator for PMML models based on NumPy. With Titanium you are able to take predictive model stored in pmml file, load it and start using it for making new predictions. It has the same API as you may know when using widely known machine learning libraries like Keras or scikit-learn - e.g.:

  • predict_proba(X)

  • predict_classes(X)

It natively supports batch processing as input is expected to be 2D NumPy array. For list of supported models see bellow.

The concept behind the name is that Titanium as the element is light and extremely durable material. Moreover it’s resistant to corrosion - which has a parallel as mathematics behind the neural network evaluation using matrix operations is above any particular implementations.

Installation

To install titanium, simply:

$ pip install titanium

Example

Example on Iris data - for more examples see the examples folder.

from keras2pmml import keras2pmml
from sklearn.datasets import load_iris
import numpy as np
import theano
from sklearn.cross_validation import train_test_split
from sklearn.metrics import accuracy_score
from keras.utils import np_utils
from keras.models import Sequential
from keras.layers.core import Dense
from sklearn.preprocessing import StandardScaler

import titanium as ti
import os

iris = load_iris()
X = iris.data
y = iris.target

theano.config.floatX = 'float32'
X = X.astype(theano.config.floatX)
y = y.astype(np.int32)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.3)

y_train_ohe = np_utils.to_categorical(y_train)
y_test_ohe = np_utils.to_categorical(y_test)

std = StandardScaler()
X_train_scaled = std.fit_transform(X_train)
X_test_scaled = std.transform(X_test)
model = Sequential()
model.add(Dense(input_dim=X_train_scaled.shape[1], output_dim=20, activation='tanh'))
model.add(Dense(input_dim=20, output_dim=5, activation='tanh'))
model.add(Dense(input_dim=5, output_dim=y_test_ohe.shape[1], activation='sigmoid'))
model.compile(loss='categorical_crossentropy', optimizer='sgd')
model.fit(X_train_scaled, y_train_ohe, nb_epoch=100, batch_size=1, verbose=3, validation_data=None)

params = {
    'copyright': 'Václav Čadek',
    'description': 'Simple Keras model for Iris dataset.',
    'model_name': 'Iris Model'
}

keras2pmml(model, file='iris.pmml', **params)
pmml = ti.read_pmml('iris.pmml')
os.unlink('iris.pmml')

keras_preds = model.predict_classes(X_test_scaled)
titanium_preds = pmml.predict_classes(X_test_scaled)

print('Accuracy (Keras): {accuracy}'.format(accuracy=accuracy_score(y_test, keras_preds)))
print('Accuracy (Titanium): {accuracy}'.format(accuracy=accuracy_score(y_test, titanium_preds)))

What is supported?

  • Models
    • keras.models.Sequential

  • Activation functions
    • tanh

    • sigmoid/logistic

License

This software is licensed under MIT licence.

Metadata

Release files for titanium 0.0.1

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

Source distribution (sdist)

Source distribution for titanium 0.0.1
File Size Uploaded
titanium-0.0.1.tar.gz 3.3 kB Details

Release files / titanium-0.0.1.tar.gz

Download URL titanium-0.0.1.tar.gz
Size 3.3 kB
Tags Source
SHA-256 checksum
How to use checksums
beea204ca4b6d0c4924c77cee258dba20d9a3b067eb5fe5a719a361dfabc6abb
BLAKE2b-256 checksum
How to use checksums
a79b2b2c7f80b2bd7642af2d5e2d1770419fc4db7e6eccf2a874980a35cf8989
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.0.1 This release

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