Skip to main content

Piskle allows you to selectively and efficiently serialize scikit-learn models to save on memory and load times.

Project description

Piskle

pyversions wheel license version

Piskle allows you to selectively serialize python objects to save on memory and load times.

It has special support for exporting scikit-learn's models in an optimized way, exporting exactly what's needed to make predictions.

Banner

via GIPHY

Example:

To use piskle, you first need a model to export. You can use this as an example:

from sklearn import datasets
from sklearn.neural_network import MLPClassifier

data = datasets.load_iris()

model = MLPClassifier().fit(data.data, data.target)

Exporting the model is then as easy as the following:

import piskle

piskle.dump(model, 'model.pskl')

Loading it is even easier:

model = piskle.load('model.pskl')

If you want even faster serialization, you can disable the optimize feature. Note that this feature reduces the size of the exported file even further and improves loading time.

piskle.dump(model, 'model.pskl', optimize=False)

Future Improvements

This is still an early working version of piskle, there are still a few improvements planned:

  • More thorough testing
  • Version Management: Support for more versions of scikit-learn (earlier versions)
  • Support for more Estimators (Feel free to contact us for a specific request)
  • Support for "Nested" Estimators (Pipelines, RandomForests, etc...)
  • Support for other serialization methods (such as joblib, shelve or json...)

Contribute

As this is still a work in progress, while using piskle, you might encounter some bugs. It would be a great help to us, if you could report them in the github repo.

Feel free, to share with us any potential improvements you'd like to see in piskle.

If you like the project and want to support us, you can buy us a coffee here:

Buy Me A Coffee

Currently Supported Models

Predictors ( Classifiers, Regressors, ...)

Estimator Reference
LinearSVC sklearn.svm
LinearRegression sklearn.linear_model
LogisticRegression sklearn.linear_model
Lasso sklearn.linear_model
Ridge sklearn.linear_model
Perceptron sklearn.linear_model
GaussianNB sklearn.naive_bayes
KNeighborsRegressor sklearn.neighbors
KNeighborsClassifier sklearn.neighbors
MLPClassifier sklearn.neural_network
MLPRegressor sklearn.neural_network
DecisionTreeClassifier sklearn.tree
DecisionTreeRegressor sklearn.tree
KMeans sklearn.cluster
GaussianMixture sklearn.mixture

Transformers

Estimator Reference
PCA sklearn.decomposition
FastICA sklearn.decomposition
CountVectorizer sklearn.feature_extraction.text
TfidfVectorizer sklearn.feature_extraction.text
SimpleImputer sklearn.impute
StandardScaler sklearn.preprocessing
LabelEncoder sklearn.preprocessing
OneHotEncoder sklearn.preprocessing

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

piskle-0.0.2.dev1.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

piskle-0.0.2.dev1-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file piskle-0.0.2.dev1.tar.gz.

File metadata

  • Download URL: piskle-0.0.2.dev1.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0.post20201207 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.7.9

File hashes

Hashes for piskle-0.0.2.dev1.tar.gz
Algorithm Hash digest
SHA256 8c72cfe679627697e0d5a22a422ff8c2c5c6eea5f2e7e8268638cf3c5bb80b09
MD5 0778c0c8b0a893c334a390df8233f5b2
BLAKE2b-256 4d00526ad98d1bb585ffad75af0afdbda920d1fcb82991f7fbc21f49af682d5a

See more details on using hashes here.

File details

Details for the file piskle-0.0.2.dev1-py3-none-any.whl.

File metadata

  • Download URL: piskle-0.0.2.dev1-py3-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0.post20201207 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.7.9

File hashes

Hashes for piskle-0.0.2.dev1-py3-none-any.whl
Algorithm Hash digest
SHA256 e4cef9c05f6e3df471dcea9324aa160ad3a528bfcde1232031de060c481cbb1f
MD5 ebe334ebf6d3b92c04898d4142786c47
BLAKE2b-256 12751dfc267cf095a345aec3b621f2141f8a1ca298cabfd117799b14fe1a0956

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page