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.
  • C++ interface uses Eigen types.
  • 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. You can test on your own hardware by running benchmark.py.

$ python benchmark.py

mlpfile::Model with 6 Layers
Input: 40
Linear: 40 -> 100
ReLU
Linear: 100 -> 100
ReLU
Linear: 100 -> 10

***********
* Forward *
***********
torch:   23.79 usec
 onnx:    6.67 usec
 ours:    1.95 usec

************
* Jacobian *
************
torch-autodiff:  246.24 usec
  torch-manual:   52.66 usec
   onnx-python:   42.85 usec
          ours:   11.61 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.1.0.tar.gz (10.9 kB view details)

Uploaded Source

Built Distributions

mlpfile-0.1.0-cp312-cp312-musllinux_1_1_x86_64.whl (680.2 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

mlpfile-0.1.0-cp312-cp312-musllinux_1_1_i686.whl (735.5 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ i686

mlpfile-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (165.3 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

mlpfile-0.1.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (172.4 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

mlpfile-0.1.0-cp312-cp312-macosx_10_9_x86_64.whl (139.8 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

mlpfile-0.1.0-cp312-cp312-macosx_10_9_universal2.whl (261.8 kB view details)

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

mlpfile-0.1.0-cp311-cp311-musllinux_1_1_x86_64.whl (682.5 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

mlpfile-0.1.0-cp311-cp311-musllinux_1_1_i686.whl (738.4 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

mlpfile-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (166.4 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

mlpfile-0.1.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (172.5 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

mlpfile-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl (140.4 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

mlpfile-0.1.0-cp311-cp311-macosx_10_9_universal2.whl (263.7 kB view details)

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

mlpfile-0.1.0-cp310-cp310-musllinux_1_1_x86_64.whl (681.6 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

mlpfile-0.1.0-cp310-cp310-musllinux_1_1_i686.whl (737.1 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

mlpfile-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (164.8 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

mlpfile-0.1.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (170.9 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

mlpfile-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl (139.2 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

mlpfile-0.1.0-cp310-cp310-macosx_10_9_universal2.whl (261.3 kB view details)

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

mlpfile-0.1.0-cp39-cp39-musllinux_1_1_x86_64.whl (681.9 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

mlpfile-0.1.0-cp39-cp39-musllinux_1_1_i686.whl (737.4 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

mlpfile-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (164.8 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

mlpfile-0.1.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (171.1 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

mlpfile-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl (139.3 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

mlpfile-0.1.0-cp39-cp39-macosx_10_9_universal2.whl (261.6 kB view details)

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

mlpfile-0.1.0-cp38-cp38-musllinux_1_1_x86_64.whl (681.5 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

mlpfile-0.1.0-cp38-cp38-musllinux_1_1_i686.whl (737.0 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

mlpfile-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (164.6 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

mlpfile-0.1.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (171.2 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

mlpfile-0.1.0-cp38-cp38-macosx_10_9_x86_64.whl (139.1 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

mlpfile-0.1.0-cp38-cp38-macosx_10_9_universal2.whl (261.2 kB view details)

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

mlpfile-0.1.0-cp37-cp37m-musllinux_1_1_x86_64.whl (683.6 kB view details)

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

mlpfile-0.1.0-cp37-cp37m-musllinux_1_1_i686.whl (740.5 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

mlpfile-0.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (165.1 kB view details)

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

mlpfile-0.1.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (172.5 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

mlpfile-0.1.0-cp37-cp37m-macosx_10_9_x86_64.whl (137.0 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for mlpfile-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8524b93a651205b5e5115e493e88a1258f3b095c74a49f08f8e775eb7765f331
MD5 cdc9fba3ea4ec2f105642cebad35679b
BLAKE2b-256 d61cdc80c9ec00656356fea57abd7bb46e103f331e86d3e98be006dc063c3ede

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a56b152f851109ba050e1b8eee1e54e9f5d52b150184887ec45052ef7aab4ad4
MD5 19df2ab8d85b7c734aecc662e65128ad
BLAKE2b-256 3f29a64b5acb473ffdee18041cdd5f113665183e46be08449cf99e066e1125a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp312-cp312-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 df46676ee9aabed6eb00ec5c0655c4409cb4a1ccb70037dd148efe15c7434773
MD5 d9a7e690f9f79f23aefffcd6fcf57bad
BLAKE2b-256 7cbd3bc78d3831d8002c567426fd77b47e71670002aadca669da77511ff3edfb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 10138dc6100d183139081a4f972e0738fd43b87954ce8ba6d9869c63c760ed4a
MD5 3432d6b3a101f7235ab94575e4ce3b31
BLAKE2b-256 c9c6521cf54bf9929d9259580556649bf2419131113448a112fe4ecd2549d062

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 4a4d7463ae1b1080818a44bc1e3eba243dc282b66d67fe04c46e1b97d76440b8
MD5 888876ce5c9ad36799192ac1590dc5d8
BLAKE2b-256 8889278b86276b8ad1e81443f4df60e04f79ce8f700ad59f33d97b800298525b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ca50a23610167ee90d2e9a848faeaa478e5ffe3c5c0f10d44bec6a37d280a4f6
MD5 61887a2e936e0c96e4b453fbd7e492d3
BLAKE2b-256 aad5e220d587dcdee707a767ea5d38b7188ae9248dcfb953bc9519723183728d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 abcf7f87c17a26ecf25180b11e7a928efe3c8dfb7d5de8698e382cb945aa0765
MD5 b7f6eefedf4d34b31a985ac4e364c442
BLAKE2b-256 1572b373ef792c6382b211b022d4d295a19329845a9450d84225777b5a3ca4a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8c96723c89f78976fa38f2a850d3f462cec622461acfa35f2e297b763e0f987d
MD5 30ba1dc68698ce72aa9ac92f1918a111
BLAKE2b-256 508768e80abe21c640bd1444fc01a9c0d95ad7ab18fc2d424367c0d0174ca045

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 7dac947af6de0497202b6e869ee1cdb557357d4ed7114372edf9362fb2e85858
MD5 67a987afde669ee3d320f0a3458f8320
BLAKE2b-256 9e07e269b25722fbf3acbcef3fa187a51691860fa5caa948a051ee0bb341e5a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dea04948f97703fbf47423522982bba7a025b7b0c37204b3adcdc199113d98d5
MD5 6107e1483371333dc0f3425fe74dc49b
BLAKE2b-256 dca1543c845a273b5ea776497ad97384371e231f2e60a4e880738ea61eaf75c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 6a6adc5e57ba532333ba72da42c70978a6700943d96c8b4565f83f412f4e0e90
MD5 92da64acaa2b2a85a19b385cd05df766
BLAKE2b-256 69e8306d2b142507da303c9eaf5f11b253585a1d65639675b7620fca37db1392

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4ce63e95a71a82ccfe4f39dfbba12caa594931232cfa91f8df261cc9a9d28050
MD5 a5bdff86fb622d4019a39a501f8062d9
BLAKE2b-256 f1b9142c26eef0cc7b0b33305aaf7716c167aec52b17f9b713329a39b85cc945

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a3442b28cafc4fec73384418174c205f6137dd1be861d0a110ce69a621977d7b
MD5 c0d9bc9b771600fbe2efd0b00854bf3a
BLAKE2b-256 e29bc96648c17e5bb0ea04932baed8d49652f4a47ac00ab6b8eb6e1d88e6dcd1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 79b1892dbf8c050680f79d3ea58c98ae52ddc804985a54f34faf1a17d36ec58c
MD5 7a03e41892e4444d4511e001b206d9cf
BLAKE2b-256 bc2a7b50400d5c7bc42f3f71f2683891268b10b6542ef102facc470b06f4d910

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 13483b75f86f8de8e36d61ca3e77fcd7cbdd40e7e4725165e37ffecb6922251d
MD5 0256cc39288409b6997074179a925f69
BLAKE2b-256 e2fc661301e8f51db97c135b00d5e0c841932280d8d9a11601bea1bbbf469fb0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0b405428fd53cbf2303eb9a8beca7c3f7b19e98f1ede46f837ae5bc158ef20e2
MD5 fd47916d86614ea0f2aced22833e5562
BLAKE2b-256 f278302353066bfec9f1f581892ea33aa2c3412104054bd40d17261c6ec9fc71

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 5cb72f88d51586c79eea208ed904895badadf0600b8e61a625abf346e2d2dcfa
MD5 b4c6c715051c2ec087fd57bde322ef00
BLAKE2b-256 3960c8790f14008f66e308daaeeffca7015d806fa3d744ddc03f3b6ae56e066b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fd89714aaf68fa2b0aee9eea06bdb48966889ca3c51d4c9133076348976d5d03
MD5 8c0f0e93071fe37e9f149e56659e8b6b
BLAKE2b-256 7f3cf749e436d5c2934a9d765e9fbe2bf7f060dee6b2910b439b53c7ef8774ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 50b65c2d76b165bb4721d47cea0e939ec58c7782604d337dd896e767b78dcc24
MD5 1c5a1f0f1c50527822a770b1b62716b6
BLAKE2b-256 341d69e9d371eb76fd996d1356da62d3e9e1176450dc17972144ccea297270cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 2f2a2aad24c6c419996d235df4454e8a28a602524f30a4b94ccf140169e52760
MD5 3b191a56d4f94aeda79050b22e5b740c
BLAKE2b-256 46ecd51db80bbf46a8606e31e5a65b9e050dca69ffcda9691ce02f71386ace94

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 d9b21b46f89cfb871ec6e0aaae3f22592f86ead29b6b671e2a0b919e437e7b5c
MD5 3067904a5296bf8e4bb85152f3aadee1
BLAKE2b-256 677fa7fefdf1fc4de18a80d741e3cc5d27c28ec1c2589b8d8b5c78d67f4d6c92

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7ea495068096542873bd3c67e3042753c5c10967cf20663648404115b3d54679
MD5 fab6fbf4b4b105cea20f7128da3f6daa
BLAKE2b-256 1b6471c6362b1cb742b083ed4f99f230cc01657c588cc3dc8067d9364d7ac9e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b638e78caab5b7fe9bf89775cd637be1948bd1560dc6ee36ed0bf1ddd3f029ce
MD5 03554c2eed2d78e8cfe818a7bc7b620b
BLAKE2b-256 6471affa10153e5f87df41b220b0755811a332306c6fdd0043514baaac45cd28

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 95a3e79e63a8a602f862f68d022c2a860e7f48f6f486731788b5694fe0643705
MD5 846b1468e728ba925ff36c44d871beb9
BLAKE2b-256 14fffb59bae042ae037cd3f7130daf563b38cb2810b9aecaae19cc28acbeccaf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 92b2ab21ea13e9761286004a2795ad885e452af973770276a24f04e8ec1cd861
MD5 a8cfa925eaff080a7fc8ec880c58cad0
BLAKE2b-256 406b935ee359564cc3d6ffb98ba7240474abb26b8d9f0be4048b81ca219d1cd4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 fdf24e9f44b230d7a71707312ec9a7c35be816216ff4c6b7a90d5ac18dcbec0e
MD5 a260acb4aa50cbb3b64c8799b04c1673
BLAKE2b-256 995bb4a8bff7b8947d597ea452f86cb872d68416c51e6172f57ff7f5531bcd03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 a854fac4242943c7e2b3350409614501f09d77dbe231eb8d15ea4728b29eb5ca
MD5 9c2de2be4c1fbf5b7d6541778b180082
BLAKE2b-256 b7d70286ac44346355adf1803fee69549f317ea8047854fc9d93c153acdd2b16

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8075e213ae47203471ff8fe6bb5e363b7fd140c750365f1ae7cf3913955cb307
MD5 1cf983d12fa95f36a1226e044f1610b0
BLAKE2b-256 c9354b11f0007e63a41cec834c2b0cdf9de1511bca2c2a1ec6de06d9bc801cfb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 293f44fb3200986c5dd1ee971c576c201b68c4c66064f4ded81f4a5b26ef7f24
MD5 e1e4023dd99aa585b587e4d7af966974
BLAKE2b-256 59f2b247f988cbfc0057d273b9576cd7debdf903f0fbd7d4a5f1cad698204074

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 70e88d34fe7e6da03aa60a1bce585aef6450dc3505fa07698a26d3286f292039
MD5 1b5c76a5aa918e4878d9a6724cb4cff6
BLAKE2b-256 62c4f21d49a09474b175d88459a63b20c3aa310f17516de2e466c20d8327901b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 8ded7e029c6334a6d85fdb7b4e7198b635bebee30c6cc77464460712937f8bda
MD5 ce11069463c8f686c24681ddfa379022
BLAKE2b-256 2501d487aea4a772f3e42b152410fc92239dfa2fa090092a1514ca69f0c3a3dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 ee98f449410373be5b003e7d27548993ea98aa3771078144675108ef57fcb2a5
MD5 78544974a06fad858d0d125461618f74
BLAKE2b-256 cc94ce3b940d1f0540ded6b1f618590a0144d48ffcd65f0cd18488d207840752

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 f3e4aa5deaf41113f5f749088618d883a3975d4341f86870b54c4b9e1e74ead9
MD5 86c9a875664c3a4ca47695863113224f
BLAKE2b-256 7885a189aead8e15884b364d0503bf4cd9e997e75d59863ba0a4e5e10b930d7c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 82d528f151211b1682140fe1bcb0c549dd714e4862c223240a50da0cc9d31cd3
MD5 e00c794cf2fa40204cdf1396cfdc3a25
BLAKE2b-256 cae392bdc364bc3a0d95598a5af14c3aaf415e08c25c85aacd6a0044d611f7b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d907a47630a8a38230ac5b7d44dbc5f9ebc8df4f0acc697beebf5070473a6b90
MD5 c0cd56dc646a7e2cb69f16adf0807095
BLAKE2b-256 65af167cdf1c6f8259b803f516b8aed035267570ca00c996c1d8b82cbaacf5b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.1.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0beda8af19c3f235354b4e1548b08ee0adf5fc5bef12e7c9dae2ef8af7b40d60
MD5 fd87d192b87f15fe0dbd98f672bc6e34
BLAKE2b-256 9ca9ceda93c1bb88e5f860842de7070d2b39587e4d30d366dc36ce6c05970df5

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