{ "info": { "author": "V\u00e1clav \u010cadek", "author_email": "vaclavcadek@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "titanium\r\n========\r\n\r\nTitanium is light-weight evaluator for PMML models based on NumPy. With Titanium you are able to take predictive\r\nmodel stored in pmml file, load it and start using it for making new predictions. It has the same API as you may know\r\nwhen using widely known machine learning libraries like *Keras* or *scikit-learn* - e.g.:\r\n\r\n* **predict_proba(X)**\r\n* **predict_classes(X)**\r\n\r\nIt natively supports batch processing as input is expected to be 2D NumPy array. For list of supported models see bellow.\r\n\r\nThe concept behind the name is that Titanium as the element is light and extremely durable material. Moreover it's\r\nresistant to corrosion - which has a parallel as mathematics behind the neural network evaluation using matrix\r\noperations is above any particular implementations.\r\n\r\nInstallation\r\n------------\r\n\r\nTo install titanium, simply:\r\n\r\n.. code-block:: bash\r\n\r\n $ pip install titanium\r\n\r\nExample\r\n-------\r\n\r\nExample on Iris data - for more examples see the examples folder.\r\n\r\n.. code-block:: python\r\n\r\n from keras2pmml import keras2pmml\r\n from sklearn.datasets import load_iris\r\n import numpy as np\r\n import theano\r\n from sklearn.cross_validation import train_test_split\r\n from sklearn.metrics import accuracy_score\r\n from keras.utils import np_utils\r\n from keras.models import Sequential\r\n from keras.layers.core import Dense\r\n from sklearn.preprocessing import StandardScaler\r\n\r\n import titanium as ti\r\n import os\r\n\r\n iris = load_iris()\r\n X = iris.data\r\n y = iris.target\r\n\r\n theano.config.floatX = 'float32'\r\n X = X.astype(theano.config.floatX)\r\n y = y.astype(np.int32)\r\n\r\n X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.3)\r\n\r\n y_train_ohe = np_utils.to_categorical(y_train)\r\n y_test_ohe = np_utils.to_categorical(y_test)\r\n\r\n std = StandardScaler()\r\n X_train_scaled = std.fit_transform(X_train)\r\n X_test_scaled = std.transform(X_test)\r\n model = Sequential()\r\n model.add(Dense(input_dim=X_train_scaled.shape[1], output_dim=20, activation='tanh'))\r\n model.add(Dense(input_dim=20, output_dim=5, activation='tanh'))\r\n model.add(Dense(input_dim=5, output_dim=y_test_ohe.shape[1], activation='sigmoid'))\r\n model.compile(loss='categorical_crossentropy', optimizer='sgd')\r\n model.fit(X_train_scaled, y_train_ohe, nb_epoch=100, batch_size=1, verbose=3, validation_data=None)\r\n\r\n params = {\r\n 'copyright': 'V\u00e1clav \u010cadek',\r\n 'description': 'Simple Keras model for Iris dataset.',\r\n 'model_name': 'Iris Model'\r\n }\r\n\r\n keras2pmml(model, file='iris.pmml', **params)\r\n pmml = ti.read_pmml('iris.pmml')\r\n os.unlink('iris.pmml')\r\n\r\n keras_preds = model.predict_classes(X_test_scaled)\r\n titanium_preds = pmml.predict_classes(X_test_scaled)\r\n\r\n print('Accuracy (Keras): {accuracy}'.format(accuracy=accuracy_score(y_test, keras_preds)))\r\n print('Accuracy (Titanium): {accuracy}'.format(accuracy=accuracy_score(y_test, titanium_preds)))\r\n\r\n\r\n\r\nWhat is supported?\r\n------------------\r\n- Models\r\n * keras.models.Sequential\r\n- Activation functions\r\n * tanh\r\n * sigmoid/logistic\r\n\r\nLicense\r\n-------\r\n\r\nThis software is licensed under MIT licence.\r\n\r\n- https://opensource.org/licenses/MIT", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/vaclavcadek/keras2pmml", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "titanium", "package_url": "https://pypi.org/project/titanium/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/titanium/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/vaclavcadek/keras2pmml" }, "release_url": "https://pypi.org/project/titanium/0.0.1/", "requires_dist": null, "requires_python": null, "summary": "Titanium is light-weight evaluator for PMML models based on NumPy.", "version": "0.0.1" }, "last_serial": 2251132, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "c3b8a4f59a498701cfac52c0dc7bfffd", "sha256": "beea204ca4b6d0c4924c77cee258dba20d9a3b067eb5fe5a719a361dfabc6abb" }, "downloads": -1, "filename": "titanium-0.0.1.tar.gz", "has_sig": false, "md5_digest": "c3b8a4f59a498701cfac52c0dc7bfffd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3298, "upload_time": "2016-07-27T12:02:35", "url": "https://files.pythonhosted.org/packages/a7/9b/2b2c7f80b2bd7642af2d5e2d1770419fc4db7e6eccf2a874980a35cf8989/titanium-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c3b8a4f59a498701cfac52c0dc7bfffd", "sha256": "beea204ca4b6d0c4924c77cee258dba20d9a3b067eb5fe5a719a361dfabc6abb" }, "downloads": -1, "filename": "titanium-0.0.1.tar.gz", "has_sig": false, "md5_digest": "c3b8a4f59a498701cfac52c0dc7bfffd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3298, "upload_time": "2016-07-27T12:02:35", "url": "https://files.pythonhosted.org/packages/a7/9b/2b2c7f80b2bd7642af2d5e2d1770419fc4db7e6eccf2a874980a35cf8989/titanium-0.0.1.tar.gz" } ] }