Skip to main content

Multilayer perceptron file format and evaluation.

Project description

A simple file format and associated tools to save/load multilayer perceptrons (aka fully-connected neural networks).

Features:

  • Create the files in Python from a torch.nn.Sequential.
  • Load the files in C++, or in Python via bindings.
  • Evaluate the network and/or its Jacobian on an input.
  • Perform a step of gradient descent for squared error loss.*
  • C++ interface uses Eigen types.
  • Binary file I/O (no C++ dependency on Protobuf, etc.)

API docs: https://jpreiss.github.io/mlpfile/api.html

[*] OGD update is in-place, for one datapoint only, no momentum.

Installation

To use the Python export and/or bindings, install the pip package:

pip install mlpfile

If you only need to load and evaluate networks in C++, the easiest way is to either 1) copy the files from mlpfile/cpp into your project, or 2) include this repo as a submodule.

Example code

Python:

model_torch = <train a torch.nn.Sequential somehow>
mlpfile.torch.write(model_torch, "net.mlp")

model_ours = mlpfile.Model.load("net.mlp")
x = <appropriate input>
y = model.forward(x)

C++:

mlpfile::Model model = mlpfile::Model::load("net.mlp");
Eigen::VectorXf x = <appropriate input>;
Eigen::VectorXf y = model.forward(x);

Performance

mlpfile is faster than popular alternatives for small networks on the CPU. This is a very small example, but such small networks can appear in time-sensitive realtime applications.

Test hardware is a 2021 MacBook Pro with Apple M1 Pro CPU.

mlpfile is over 3x faster than ONNX on both forward pass and Jacobian in this test. You can test on your own hardware by running benchmark.py.

$ python benchmark.py

┌─────────┐
│ Forward │
└─────────┘
torch:   12.89 usec
 onnx:    6.67 usec
 ours:    2.00 usec

┌──────────┐
│ Jacobian │
└──────────┘
torch-autodiff:  123.36 usec
  torch-manual:   43.94 usec
          onnx:   46.98 usec
          ours:   12.39 usec

┌────────────┐
│ OGD-update │
└────────────┘
torch:  117.98 usec
 ours:   10.07 usec

Motivation

The performace shown above is a major motivation, but besides that:

The typical choices for NN deployment from PyTorch to C++ (of which I am aware) are TorchScript and the ONNX format. Both are heavyweight and complicated because they are designed to handle general computation graphs like ResNets, Transformers, etc. Their Python packages are easy to use via pip, but their C++ packages aren't a part of standard package managers, and compiling from source (at least for ONNX-runtime) is very slow.

Intel and NVidia's ONNX loaders might be better, but they are not cross-platform.

ONNX-runtime also doesn't make it easy to extract the model weights from the file. This means we can't (easily) use their file format and loader but compute the neural network function ourselves for maximum speed.

Also, we want to evaluate the NN's Jacobian in our research application. To do this with ONNX, we must represent the MLP Jacobian's computational graph in the file instead of the MLP itself. It turns out that PyTorch's torch.func.jacrev generates a computational graph that can't be serialized with PyTorch's own ONNX exporter. Therefore, we must write the symbolically-derived Jacobian by hand in PyTorch. So that unwanted complexity must exist somewhere, whether it is C++ or Python.

It's possible that TorchScript is better than ONNX in some of these issues, but I was tired of searching for libraries and wanted to ensure top speed anyway.

File format

It is a binary file format. All numerical types are little-endian, but the code currently assumes it's running on a little-endian machine.

The file format is not stable!

layer types enum:
    1 - input
    2 - linear
    3 - relu

header:
    number of layers (uint32)

    for each layer:
        enum layer type (uint32)
        if input:
            input dim (uint32)
        if linear:
            output dim (uint32)
        if relu:
            nothing

data:
    for each layer:
        if linear:
            weight (float32[], row-major)
            bias (float32[])
        otherwise:
            nothing

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

mlpfile-0.2.0.tar.gz (12.3 kB view details)

Uploaded Source

Built Distributions

mlpfile-0.2.0-cp312-cp312-musllinux_1_1_x86_64.whl (692.3 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

mlpfile-0.2.0-cp312-cp312-musllinux_1_1_i686.whl (743.6 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ i686

mlpfile-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (176.8 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

mlpfile-0.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (185.2 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

mlpfile-0.2.0-cp312-cp312-macosx_10_9_x86_64.whl (151.9 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

mlpfile-0.2.0-cp312-cp312-macosx_10_9_universal2.whl (283.6 kB view details)

Uploaded CPython 3.12 macOS 10.9+ universal2 (ARM64, x86-64)

mlpfile-0.2.0-cp311-cp311-musllinux_1_1_x86_64.whl (694.8 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

mlpfile-0.2.0-cp311-cp311-musllinux_1_1_i686.whl (746.5 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

mlpfile-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (176.7 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

mlpfile-0.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (185.1 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

mlpfile-0.2.0-cp311-cp311-macosx_10_9_x86_64.whl (152.1 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

mlpfile-0.2.0-cp311-cp311-macosx_10_9_universal2.whl (285.3 kB view details)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

mlpfile-0.2.0-cp310-cp310-musllinux_1_1_x86_64.whl (694.1 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

mlpfile-0.2.0-cp310-cp310-musllinux_1_1_i686.whl (745.0 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

mlpfile-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (175.3 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

mlpfile-0.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (183.4 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

mlpfile-0.2.0-cp310-cp310-macosx_10_9_x86_64.whl (151.0 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

mlpfile-0.2.0-cp310-cp310-macosx_10_9_universal2.whl (282.8 kB view details)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

mlpfile-0.2.0-cp39-cp39-musllinux_1_1_x86_64.whl (694.3 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

mlpfile-0.2.0-cp39-cp39-musllinux_1_1_i686.whl (745.2 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

mlpfile-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (175.7 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

mlpfile-0.2.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (183.6 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

mlpfile-0.2.0-cp39-cp39-macosx_10_9_x86_64.whl (151.1 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

mlpfile-0.2.0-cp39-cp39-macosx_10_9_universal2.whl (283.1 kB view details)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

mlpfile-0.2.0-cp38-cp38-musllinux_1_1_x86_64.whl (694.0 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

mlpfile-0.2.0-cp38-cp38-musllinux_1_1_i686.whl (744.9 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

mlpfile-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (175.4 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

mlpfile-0.2.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (183.2 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

mlpfile-0.2.0-cp38-cp38-macosx_10_9_x86_64.whl (150.9 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

mlpfile-0.2.0-cp38-cp38-macosx_10_9_universal2.whl (282.5 kB view details)

Uploaded CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

mlpfile-0.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl (696.5 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

mlpfile-0.2.0-cp37-cp37m-musllinux_1_1_i686.whl (750.0 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

mlpfile-0.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (177.1 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

mlpfile-0.2.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (185.8 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

mlpfile-0.2.0-cp37-cp37m-macosx_10_9_x86_64.whl (148.5 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

Details for the file mlpfile-0.2.0.tar.gz.

File metadata

  • Download URL: mlpfile-0.2.0.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for mlpfile-0.2.0.tar.gz
Algorithm Hash digest
SHA256 711c734607901552892580c3318940f3facdc42c4dba768ea6f1e05d572be835
MD5 40574004cce8a58e453b422d7863cebf
BLAKE2b-256 85b04ad08255ae54eb1cd47c32de98dd9ae53b3f98f360e7b7b12d586e3f7711

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 d193a6b7ad4e6dd8b738473e9a042d0f4fefc332a2d72f7bf2d8777b5432ef4b
MD5 8820c5f914b62d19067c723cc452dce1
BLAKE2b-256 a97a24c888c4625981c9fc0a4618ede03846b761a6554dfec8dcb76f863cdb55

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp312-cp312-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp312-cp312-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 05413d8d48bcd00e6eea53a2c2ae4949a0295b8bb678969575a3f3fcbcee54b9
MD5 1863598e4b040b46a2002e59a399bcf0
BLAKE2b-256 e9392d51823651f3e2881d8969c7e3e2c4104705b3ae580de93876cf7a8159c7

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c217a3647f872f2aaface41bc6a6d12c7126d092dc2bb3350e3944135b902b1f
MD5 fe284e0719349e5b0880d0cba0c1912e
BLAKE2b-256 4c7132747fc12d0c2e73629da409c14e59834dedb8dfc223220635b4e886c6f9

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 5bf652dbb0cbe5dfce25000b89b95e9fab502fb9724bf255f938920f5ac597cb
MD5 846539724e689121bb731b9d12adcd79
BLAKE2b-256 e1a16709f2f609a22f7350a7d6f3914284437935d56778fa90ea511001b993aa

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 85b00620e11ce50250110d5021e6ea1a39c4d479bc2e81e19ff2d05a70261586
MD5 05f10060d059dfd29fdb4b861dffdd45
BLAKE2b-256 4f5e876ae9f652ac9a20b5c43dbdcf568ac8daa317def7b325793bb4d58c8dd6

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp312-cp312-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 1fa8fdf178fdc503029f4cca39103fd288ac50a2abbcfdef71a8cec1b1fbaf4b
MD5 7d38f8b433082b15e1b4ef5b9b00499c
BLAKE2b-256 8189159bde753a9a96d4c059934cd965c77a9496ea1d709e0b9f204c5f4a79ec

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c7688a98fb1a6086c8c91773bc67b29271267d79421ffea16621505ad58ffe80
MD5 6cd3bffbd79bd76fab5a7c30dbc60135
BLAKE2b-256 b3402088b1accdfa6549852a4179c7b288fce89bbb13d5c3434c3f963552a6d1

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp311-cp311-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 5b4097f64f0291a7dbab0af3e3662e646fef7dde78d500fa03e85e5d2ef293a9
MD5 8e7fbd411c4954001be9db138fc121d9
BLAKE2b-256 9c12b54c78dd45441b2b74f29441b12c703f6799bdd9332558dae489cde3fbe1

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 013896fac7ef9146bcb6f2fd38705d4b48a80e38c962b8ecdcc45628ef307a84
MD5 f2cd90018ecea3187e2caf43bf40ad7f
BLAKE2b-256 742f7d1deaf679807fc1bdf3b00eb9756698d9a8fccc0dd9dd5d1b53cc75a605

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9eab395646265e05a16b56a20665343ccd49c387259706d8f431d2e355fa3338
MD5 ecdca832922fb562808a11f8f962a813
BLAKE2b-256 fff6108a9353d5f9f2f8a69fddd0af381b1945e48196169b34be4c3e351c8672

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6e21ba26c79016a03988eadf9fc47f7cd0ed8fefd37010a73282a2baac7de2d0
MD5 935ed2433ab79be5c7ef0a8625bdfdc8
BLAKE2b-256 be7482d7b9029f93129bac5f64ace376ae629032f5dd625b0cf9a7ac56bd6230

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 d952d554b62b44a7c0fc1f0529e2178ae5e604ce14bee5329b6d7f203f9914b3
MD5 041500bbe71bc3324316cc4ce05313b1
BLAKE2b-256 d3621a9884a69ec44a41619a176027174f6a665ad90686165172258bad499305

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 2aaa84d329258dfe8c34fee6d1f5ecad03dfe13fd5a125af2a1c644b2009cd22
MD5 913df67e5b4ebcabd1bcb9976d02c5a3
BLAKE2b-256 df45ad9d404dace9e8584a76a46273290ea136760b166cc150edfd07f3ba2641

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp310-cp310-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 76cc6672ae669ee5de5ea7c3281f2f7ea344e59a283f4fa8fa176664a5df86fc
MD5 87c5ff885feae2688f3cb539f52b4b03
BLAKE2b-256 ec4a4500d7b7bc86dd79b06438e0ef350a7bef0e8217d1bc27248606895f4341

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 491ad6d36267da5eb568146b4db1b306ca6bb4552893c0b5c7a503fb677c8402
MD5 5eae068713a017547bd2f2e57a33b33a
BLAKE2b-256 ca987ef2af53fbb47f84e8f63baca8c964eb7e9e6cd7a44f9a11afb90affc6f5

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 32b0cb77718334d09ec0087db6d4a00ad7cf250c448041b68c14fb19974b4cce
MD5 f0728a726eca32b9e57203899f993fbc
BLAKE2b-256 ee3c6fbd821174825f63139365a268ee44b9d9a388c255c7ad6b923a03e9f481

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5423852dda6d4f0485bb07da663bf3ff98ded8504b0163559b428e22dbe0dcf6
MD5 becafb1a7b414405495b6d3b8169bb68
BLAKE2b-256 3ecad6c7082282b69be450c150ced453ca7963ce20cff264489a4062c1bf1850

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 f9e21b20a89e80025078c97fc01f3a221853389b2c79c327b95c62c62bd3c5d6
MD5 b7da9f910cf91929d0a169711de5e422
BLAKE2b-256 08c62b958ab350c2acfa6353d3b29986b23dc6277643b5631538ea7a1856c244

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 2621b64f521ca17019e560109d14edf2f4491087e4c0ceeee8fd0e1a494b2b19
MD5 7c39095bcf2a8d5acfbeca1dc7f4505e
BLAKE2b-256 8837ed7ffde0a90882d4cb045f8cf98abb6ad2a73cd63bfe8b4afdcf6d0c8ebc

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp39-cp39-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 7f7f4515df6b0624f08b2c92342383ca96f9defc265afb468c0ff4f8078d330b
MD5 efebf285223bba6fa5be8728b5f69bfc
BLAKE2b-256 9538d8216536b1dc3dce1f344475ec25bf1db2da8a830549f37811ffed5b9782

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3afc50ef09e10c2e2cd6881977e908f3d74786d7fa7b873133d2a94b74b87c06
MD5 e80cf7ed168b667c7c4bf34a93bf6123
BLAKE2b-256 9dd03b1dedc6348e33631095f1e27c4127e30c7718d160ee13d40bf3284ab7d1

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 79d409bdacabff052ee060ca345940b2dbef8c55c2f3fe8108c091c3b1243c7e
MD5 29698f3bec9fb58dfe08af8c07ed696f
BLAKE2b-256 319cfdbf25cea32e19c85f1675ff683678d84c911b3729b23ddcde88b6e1a687

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6f34e544207cb48a97d03d8fdade9fb2ef341131f2e4c61cb7031574df7df19c
MD5 47b41a387fd0959632c8c051d46c7d6e
BLAKE2b-256 64ec8c9c87886ddb177f0c1bb3880680f015ae3f2e2d304e61b6fb64709e7745

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 585d500c0b655411888286b25f569541facd93227d25639f9b6af5153c375f90
MD5 b00fa7263450e0da1758056dfe5522c6
BLAKE2b-256 41339268e8a57e65c5d2ebbfab18a0a2b38b7b7d1cc3576a0fdeade323ad4b26

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3dc07f64f167e571684952c3d2d5571e3b04b0678c15bb48e4394146c4c63afa
MD5 b81784e43647dff30c1aea1bf36b7cd9
BLAKE2b-256 b2141ece2e374ff518f01562935a0d22acb06b668c403762554ad266d633a8d2

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp38-cp38-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 3a446a8ddf00120aabc17f416e7afbc91176bf58606a5f975b42b1a3439a74d5
MD5 cbc0075763a3865e02b8463af4d6d50e
BLAKE2b-256 d2c66fd85755f8bd6cff35a067bd2c3eddb21dd859a91d2ccdb7c63fef927aa6

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 361d14e0b39de9f182b770db4b2d5820e7f0c91e038f45927020930d2d2ba0da
MD5 0e761b9ef07192037f125c753ccadd19
BLAKE2b-256 6607f740933585720437b1ac32c6a3b81218f3c53245021fc02e61429c64b499

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d31e8057ee7361b5ac209d2188f330764871ad218461c63b37563499cd3ad05b
MD5 2d2c5c1701f1e554bba8ad7d0d3057ef
BLAKE2b-256 63b1d6b866401d10dff734aa52c078edda5711346ee92ac2a687d1c01e125b63

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7e51f1ec2835d9f05c86fe8647973099d932b7972653059da54db6a55cdde82b
MD5 b53c3757b37dc3a196644e842c4c5757
BLAKE2b-256 44975bf481d0bbe2eff343d36c78f0a2869ca9bc3595cc1a85b5582e3f4acefc

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp38-cp38-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 29d2f295bac598f0252a4e9693d558d98d6081b6c96f9216cbe968d4099ba633
MD5 fdefea4d4f832abb9258f0836ed68d23
BLAKE2b-256 2de00f43592dc1eceecd1da6718b84dcfa44062416d05eb0fb9c1614b530b542

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 596dbb8cb20d07159dbb4b4cc28efa8c6dd0d6fc19ecc8d0904c815c24fdd789
MD5 7e84a172fc1ec31d4ca0c0b9122f597b
BLAKE2b-256 92d7519c9e23e12eb7bc8d0432b0acf3b6687a18dda3144135418554c0248f8a

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp37-cp37m-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 e59b47878b3345950e6288291a00a896735a98d91fbaa96ccdd1003557a67688
MD5 81696e5f87163be445df824bc30e0641
BLAKE2b-256 9738a8be582ded1d3379f531d3c11b3adc2e2d13a84f8252d77c7ff4ef255346

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 29622ccfbb586bdc70d92e764976a3119c18e0fa78a165ebc03bfd541c903e21
MD5 fba61a2d4c02d89b5e5752fe6a6e6e80
BLAKE2b-256 006029b6f3c65ccdab00c7cf1071b2f59684ba0b07a948b61fb3847972b953b1

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b170dc9569e944475723ad56e1429718084a5bd3c20d15abf83f7b2d8cb3a883
MD5 1fcad8388b7610dd917bdf1921f6a210
BLAKE2b-256 ff9d5088aae3d365047598739f2b053edb01fcc765f0a957094ccf5b35bc42c4

See more details on using hashes here.

File details

Details for the file mlpfile-0.2.0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for mlpfile-0.2.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c22dac68ceb44c779be50d7a897b64a07140c217df22ece521017fb742f8a89a
MD5 cfe2cf48733eaf0fe22f5c54f7b9128d
BLAKE2b-256 a3cf7bdeae89b5586c67c88774579c15954d76adeaad2d6ae36f38a2bd5d6422

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