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 (in place, for one datapoint, no momentum).
  • C++ interface uses Eigen types.
  • Generate fast allocation-free C or C++/Eigen code (faster) for the forward pass.
  • Binary file I/O (no C++ dependency on Protobuf, etc.)

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

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. TorchScript is surprisingly fast for the manually-computed Jacobian, but is still slow for the forward pass. You can test on your own hardware by running benchmark.py.

$ python benchmark.py

┌─────────────────┐
│ Model structure │
└─────────────────┘
mlpfile::Model with 5 Layers, 40 -> 10
Linear: 40 -> 100
ReLU
Linear: 100 -> 100
ReLU
Linear: 100 -> 10

┌─────────┐
│ Forward │
└─────────┘
        torch:   15.72 usec
  torchscript:    6.97 usec
         onnx:    5.98 usec
         ours:    1.91 usec
    codegen_c:   10.10 usec
codegen_eigen:    1.11 usec

┌──────────┐
│ Jacobian │
└──────────┘
    torch-autodiff:   88.19 usec
      torch-manual:   40.82 usec
torchscript-manual:   16.81 usec
              onnx:   42.00 usec
              ours:   11.97 usec

┌────────────┐
│ OGD-update │
└────────────┘
torch:  129.38 usec
 ours:   10.17 usec

Motivation

The performance 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. Compiling from source is very slow for ONNX-runtime; I have not tried TorchScript yet.

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. It turns out that PyTorch's torch.func.jacrev generates a computational graph that can't be serialized with TorchScript or 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.

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:
    2 - linear
    3 - relu

header:
    number of layers (uint32)
    input dimension (uint32)

    for each layer:
        enum layer type (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.3.0.tar.gz (16.0 kB view details)

Uploaded Source

Built Distributions

mlpfile-0.3.0-cp312-cp312-musllinux_1_1_x86_64.whl (705.2 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

mlpfile-0.3.0-cp312-cp312-musllinux_1_1_i686.whl (756.2 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ i686

mlpfile-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (188.2 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

mlpfile-0.3.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (198.8 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

mlpfile-0.3.0-cp312-cp312-macosx_10_9_x86_64.whl (166.3 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

mlpfile-0.3.0-cp312-cp312-macosx_10_9_universal2.whl (308.3 kB view details)

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

mlpfile-0.3.0-cp311-cp311-musllinux_1_1_x86_64.whl (707.0 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

mlpfile-0.3.0-cp311-cp311-musllinux_1_1_i686.whl (758.7 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

mlpfile-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (188.8 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

mlpfile-0.3.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (197.3 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

mlpfile-0.3.0-cp311-cp311-macosx_10_9_x86_64.whl (166.6 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

mlpfile-0.3.0-cp311-cp311-macosx_10_9_universal2.whl (310.0 kB view details)

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

mlpfile-0.3.0-cp310-cp310-musllinux_1_1_x86_64.whl (706.5 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

mlpfile-0.3.0-cp310-cp310-musllinux_1_1_i686.whl (757.4 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

mlpfile-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (187.8 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

mlpfile-0.3.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (197.0 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

mlpfile-0.3.0-cp310-cp310-macosx_10_9_x86_64.whl (165.3 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

mlpfile-0.3.0-cp310-cp310-macosx_10_9_universal2.whl (307.4 kB view details)

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

mlpfile-0.3.0-cp39-cp39-musllinux_1_1_x86_64.whl (706.8 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

mlpfile-0.3.0-cp39-cp39-musllinux_1_1_i686.whl (757.6 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

mlpfile-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (187.8 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

mlpfile-0.3.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (196.4 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

mlpfile-0.3.0-cp39-cp39-macosx_10_9_x86_64.whl (165.4 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

mlpfile-0.3.0-cp39-cp39-macosx_10_9_universal2.whl (307.7 kB view details)

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

mlpfile-0.3.0-cp38-cp38-musllinux_1_1_x86_64.whl (706.5 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

mlpfile-0.3.0-cp38-cp38-musllinux_1_1_i686.whl (757.1 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

mlpfile-0.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (187.7 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

mlpfile-0.3.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (196.0 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

mlpfile-0.3.0-cp38-cp38-macosx_10_9_x86_64.whl (165.1 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

mlpfile-0.3.0-cp38-cp38-macosx_10_9_universal2.whl (307.2 kB view details)

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

mlpfile-0.3.0-cp37-cp37m-musllinux_1_1_x86_64.whl (709.3 kB view details)

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

mlpfile-0.3.0-cp37-cp37m-musllinux_1_1_i686.whl (761.4 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

mlpfile-0.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (189.2 kB view details)

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

mlpfile-0.3.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (199.2 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

mlpfile-0.3.0-cp37-cp37m-macosx_10_9_x86_64.whl (161.7 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: mlpfile-0.3.0.tar.gz
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for mlpfile-0.3.0.tar.gz
Algorithm Hash digest
SHA256 24bd65d8212f14d9e7c1e153a637c5e866a42b896cb2981876d71b0a84e15bf6
MD5 2cc919a2898fd80b39895421c7c39a30
BLAKE2b-256 84a60145685228c3178fbcd321d9b9be136a788d81041671d9d5e2af174adbd1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 159f04ee5a96560a618994b4f92976a19cdf54c15fdd4961c295ada97870319b
MD5 f542a440dcff9cddaaf9ff6ebac41f1c
BLAKE2b-256 688b76b8af9b42d209f87cdb685464683cca742c1d1036ae8bb3efc2d52b6427

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp312-cp312-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 31d76ff31793b390569f42739b3c033a79fa78b0817032ac7cfd9b1d32d90fcd
MD5 5e1c140f17a44465b7d28570fb047726
BLAKE2b-256 5cd8bda3acc5b0c35dd9bd41cf3509a669fdd9cc7acea672823babbecce9b2b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d39e98b6ac02430feb22e956582e439eef0e69d8b37cd1136c35e3a2d0430719
MD5 4106bd6d39cfa54dea2171f561d366b8
BLAKE2b-256 c4a0572d90630743da3955e0b2fda6292784ad2d8fa844cd14c5946a8ff1ccbd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9de6766dbe1a222b51786b270e4bff3911eca41b26e72008cd1d243dbd017cb5
MD5 84fe3988331becb3852bc4e8e9549974
BLAKE2b-256 3adafdfe1e2eb4c3d90f076cacb7ef3b0ee22b9ad3efb209f6e66b4fd9ec6b98

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 424fb9f7e4073877073cdcf9097a93fdfba5b2f797bb7efb42487677faedcd77
MD5 facd1232951ea20ef8f6dd633befdcf2
BLAKE2b-256 bfd78d574d036fb27c3d8f5d6d1ee48cdbb05d5d021280d0cbeef68d5a6054a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 cf6159a48045cd62a4e3d421f7ddf05beaf83a1b63e63185bfb450419237df7e
MD5 a9d58b391c1ad7768db4877efb2d82bb
BLAKE2b-256 6ce751761885f29011e84509e10e6100c0ac1c5f73dffd53fe64d6fdccea2843

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 6ea4b7c0a43e3757ed59a4c9a94d61d99eaec5841bbc3003f1384de0a9f71e61
MD5 fc03e049c04d3a1ff4c398013d7e335f
BLAKE2b-256 76d1b78f5d83d1197e42dcfadf387224ba44804be079365046a89177f3a4b106

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 5791ebcd5ea71a54366a04aaccff7de825e31e294852653bd2d8bc414257407a
MD5 9e01a70700f72e9275bd3f28de1feee6
BLAKE2b-256 2a88b86d3ab0531d651d1d53f7b046196617482481d9c8346da525fc10482013

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9ef91df87be9df380729573827193d328751426363c9b2a201ea8c4129e2520b
MD5 02f915fac7c294765a33afeb95a61e82
BLAKE2b-256 c54d8bdba84e01f60e32a43b807547c799171ab2b79224847718a52af95429fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a0b7745d97205eb39c12abd4cfc4b3f0d36d773fd4a552470f3cbb7afa03d5ff
MD5 65a1b01fe1f490f8c209a0b8246135f5
BLAKE2b-256 defc2ea245b9b09f90d35bf5c44f1107d1a0c5911a842c5ac9c0e8f52b040fe7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3e45599f5bf5ac103f8120bf514683898d85a7c9170ccf8484ed19d710100736
MD5 412209e77eca45d656aff89118c9b7a0
BLAKE2b-256 7349dc8a6f4780084da5fb484138895912a9c40f96d751bea4aa2039289953bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 5ffaa19a37ead44da431367061fe43427daf69e993a6f1eb4447259e1e3c2a61
MD5 767abf543d11ca2c904eb506b1fcabaf
BLAKE2b-256 bd209c71f68942dd9bd99e02ae5987338660ce4e91daf8f1b13d67ec79f58865

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 521acada17107f130e2675bf180f00619d268cb7b0af7974dd787903665c53bd
MD5 2c8f93b03f575c27f48572aec4bfe414
BLAKE2b-256 61aa88ea8bf2185cf911ab2b30d2773e112d0e85c727927e1937af67d9feaac6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 0e1f0e44d16c55bf47bbb30151165881e8dfaa02020dcb5445f8761e40420099
MD5 1f2c8a2d2aa17ab9742abb8c568ef715
BLAKE2b-256 f7c1bb91799258c2e8342eaf3261d2abf183e8bf081c9233f29383f23e358178

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a4a77598ae0e31386ab634165622e54151a0028f854fbf6019dd98e3738889ea
MD5 a8d21e20ac90bceb8d98391370f1da46
BLAKE2b-256 3d48d14b831641b8f8e45c5fbcbf475bda35d26089efdcc68036b2fdb97e9504

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 34a9048468d347003972bd2b4b97a77dfea4ad14419c1d7a69c03ea670d8f1d3
MD5 690f4a4bbc22a4c70f4ea2ad34e1fbb9
BLAKE2b-256 6ff3a676d0cc0d758ff05b515643691016c2bc84f01e7619bafe53e9cc93cc10

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c7f42f28ad33f0ddc7ddea957dc9a60f078e1fe2d3fe614574a5eadde73332ae
MD5 88a194e2a595bf215caf266ce90c1e89
BLAKE2b-256 53c3bdd0f3525225e0d634e97f34a19231688c4db7d06fac0a77c4e2f195db64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 16ac9b4923b7bf6c98dce79095034813958bbeb8ee34c15d77d65d93d9371c99
MD5 d39115de40085fe82fe23d2abae93c4c
BLAKE2b-256 4875fddbbf8a2d7af00d1e4f0cc55f1dca2acc711c30361ab2d574a3dd909ab0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 e5b5c97302808cde178316f7952ce401dd0752fbe7d75ac7172e04b6c04a762a
MD5 62a34c83e1227aa2951e39964242658b
BLAKE2b-256 e1c580dfbb982adc2800de84c477e611a64b5e8544ca9cbde181ecdfbf4a3f12

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 3c3f7487ece91ad03af82714a05316bb0cda14fe4e1d84d1ab62f6532ecf20a0
MD5 5b64f8a88dee23ba1624588a6bd0e094
BLAKE2b-256 0963c9034c66964bc7634011627e6f9663529bdd340c9ad5cbce3a67edbd980c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 deb12c8d97c15573612e039078deccd365b1b66e298d5cd5037c6540b07521cd
MD5 968beede0245a9c0974d7cbba9dad9c0
BLAKE2b-256 17d3ba574ab8362b492aec8be5ee7a1d7744ebaf2f643734151369db3269f053

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9e4c055c3651d27f651b0a404bd859f8c756251284e27a6e3c6143486ef6d9d1
MD5 6602cace44fddf3020d47b2604812c2b
BLAKE2b-256 78232b1954b7ea69e3548ef80086c185fe0ca324bb815302f07f4a9a49d7d35a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1785a5cd748b1ca4416775946c7f6344dc620bdb0d2650e78e0d3fa8a03df782
MD5 ca3d6d7da400539f0615a0f1a7d6318f
BLAKE2b-256 9a9b26e043500f6708a687881d7e3f5073bb49c0103d3279ada143307ee22726

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 28a646b3becff78ee73c4980249d2e4ef78c9fc87543ec89e0d70e25354716a9
MD5 50ed420c43e40cf694eba7c61c19f07c
BLAKE2b-256 2b23deb1e08da048132d70bcf5661c27edd814555972a9afd987be883ad68d89

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 50be482c2def4831ff091a8a4cb5ae19e8ad06baf59ccdbede4df227d6d2f091
MD5 572a6a05ffc84d62f7021141e264fcec
BLAKE2b-256 c965c5c0575498663fc4435468864f71e5a25ed6132f638e0f3eeab722f48b29

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 be79940aad3b119c33c83ca2dc33043d94341030ddca2a23ff12b130212c452c
MD5 4c04a1a12134eb7281998918e7b99807
BLAKE2b-256 db4306b4b5d6698b771724cbfb302051b3fc701a6e99cf56c46ee6fe5772c2a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 585aee9f7b5e94e90130722ca2bfe19d5fc2c5bd7e6e79f6b3aa82897a4aa139
MD5 1898e9af913f84236fe1d35da5e13c21
BLAKE2b-256 29734f2a9464cecb0d6d1b939557216dc558f050c977c0f9b7e85843eb1d0f68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d62f1cab917566abdfe45f8c772db01f71511259b640b264f6ec8fef19646cab
MD5 21fa03c5456aadf27f6f4d0caa1527a3
BLAKE2b-256 591dacaabfa69c013c19f04945743353b10043b9430fb8def4cffc39f0374aae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5f48f494d102464fe05b86e81f6b2dbe4847a3f8829ae5d6fd8d66facfae269d
MD5 35aa48a536e118051419b747928e55aa
BLAKE2b-256 42fd8e4ebdce60a870951eb669632b6cac3d074d74c3dc4d9804b8b434f49222

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 299f3ccce5448529ced9f0fc248be14f96f353df7391a5d8b99d3c41fb33362a
MD5 5e951403a657ffb763d9c8f255db1c15
BLAKE2b-256 b3948b147e3745d1e935c3f0342a062071138445a2857bcfcebac46d786e11e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 1c563256d7f74d7e818ca5c82c49afc3aa2ba4476bb124d12629eee89966240f
MD5 a493b46692639425f3f0c0fdf11da5fb
BLAKE2b-256 e88157a86432c1b0d7b739892d6a7f8c1e95d2c45ee7045eba5011a23225dc40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 b73dfceb811e495ee7bbfc2b309f8ecf3f54bc6a017eeabab197b2119f029a94
MD5 587fb422e8bd5e5f9e94637fb6574093
BLAKE2b-256 fdd8c178f3a8ae4b228f4029fac318164ffdc321f1caaa32e6a11dcfe3c95080

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d17fab2afe88e0d34e13592883c025ac244d1780e2cc452ba39c815b91447f10
MD5 2c561916473b7cf890dffcce4f149b34
BLAKE2b-256 dc1f7327ed98f8d484bdc3718de847d32b3d5458b13812e5a8fec476fed8781f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 eace47af3c9ba6ec2a3d967e2d232c9dd9539b28e6bb4cadfce0da5a3a928f5c
MD5 1905bfd02fa5a3fdc267a6ab8b883b2c
BLAKE2b-256 672a9604c4a660a9d078a33eb711a7cc8ba5b8b078c49fd3ee5c6b953acfacd0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.3.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 856b445d464c119bf760bc27e2ebf95aea91e989858797aa5c3388dcc6509401
MD5 42224a1cf353f4a3748ed4b0920d69a3
BLAKE2b-256 d9e11da22f59c3ac3d9c8af67743334d9d10d533e9742b32305c4049b76cbdd7

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