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

TODO: The pip package is almost ready.

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.0.1.tar.gz (11.3 kB view details)

Uploaded Source

Built Distributions

mlpfile-0.0.1-cp312-cp312-musllinux_1_1_x86_64.whl (655.8 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

mlpfile-0.0.1-cp312-cp312-musllinux_1_1_i686.whl (711.0 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ i686

mlpfile-0.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (139.2 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

mlpfile-0.0.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (145.7 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

mlpfile-0.0.1-cp312-cp312-macosx_10_9_x86_64.whl (110.1 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

mlpfile-0.0.1-cp312-cp312-macosx_10_9_universal2.whl (202.4 kB view details)

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

mlpfile-0.0.1-cp311-cp311-musllinux_1_1_x86_64.whl (656.0 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

mlpfile-0.0.1-cp311-cp311-musllinux_1_1_i686.whl (711.4 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

mlpfile-0.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (139.5 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

mlpfile-0.0.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (146.3 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

mlpfile-0.0.1-cp311-cp311-macosx_10_9_x86_64.whl (111.9 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

mlpfile-0.0.1-cp311-cp311-macosx_10_9_universal2.whl (206.5 kB view details)

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

mlpfile-0.0.1-cp310-cp310-musllinux_1_1_x86_64.whl (655.1 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

mlpfile-0.0.1-cp310-cp310-musllinux_1_1_i686.whl (710.5 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

mlpfile-0.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (138.5 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

mlpfile-0.0.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (145.0 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

mlpfile-0.0.1-cp310-cp310-macosx_10_9_x86_64.whl (110.5 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

mlpfile-0.0.1-cp310-cp310-macosx_10_9_universal2.whl (203.9 kB view details)

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

mlpfile-0.0.1-cp39-cp39-musllinux_1_1_x86_64.whl (655.3 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

mlpfile-0.0.1-cp39-cp39-musllinux_1_1_i686.whl (710.7 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

mlpfile-0.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (138.7 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

mlpfile-0.0.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (145.2 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

mlpfile-0.0.1-cp39-cp39-macosx_10_9_x86_64.whl (110.7 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

mlpfile-0.0.1-cp39-cp39-macosx_10_9_universal2.whl (204.2 kB view details)

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

mlpfile-0.0.1-cp38-cp38-musllinux_1_1_x86_64.whl (655.0 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

mlpfile-0.0.1-cp38-cp38-musllinux_1_1_i686.whl (710.3 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

mlpfile-0.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (138.3 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

mlpfile-0.0.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (144.7 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

mlpfile-0.0.1-cp38-cp38-macosx_10_9_x86_64.whl (110.4 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

mlpfile-0.0.1-cp38-cp38-macosx_10_9_universal2.whl (203.8 kB view details)

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

mlpfile-0.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl (659.4 kB view details)

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

mlpfile-0.0.1-cp37-cp37m-musllinux_1_1_i686.whl (713.6 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

mlpfile-0.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (140.9 kB view details)

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

mlpfile-0.0.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (147.9 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

mlpfile-0.0.1-cp37-cp37m-macosx_10_9_x86_64.whl (109.5 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for mlpfile-0.0.1.tar.gz
Algorithm Hash digest
SHA256 60e0f49617f64b952b8f63fa6499957df36f2a98f20f97e739ce8f8e3b2434cb
MD5 c4df21375fe9d007ddc46e8181e82a30
BLAKE2b-256 ee175565af388d3e8dac113438ad82b5fa546dd32ef30d292daba44a3c783016

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 2ce773d32de1c598253f78e200019f6619886e2b04299e505198af2afac22841
MD5 e8a5f53d1424b9e29ad0e36b277396c9
BLAKE2b-256 c3e21be62a01a10c03395c6622f214e0c782c77c5d89a858d05af992e8611461

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp312-cp312-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 c823260e3efa876003d3d744c66517d2168a7685bf3cfc6de4295d9bad01890c
MD5 077fdcb3f29ad1e641892e673ed16e2f
BLAKE2b-256 fca22f3677253798c212c83efb9a41584559d4130f397f174edd3fb9df4b1fef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 69e24b0c2b3e04b3f606c14823fdf081e978f4d0323c902ae719b8fcb05c1e85
MD5 bca34ec3c3c3287abb39171ffe7f8fad
BLAKE2b-256 655a3a7208e350c30495b169e1a675438418a002543dfe000161ee0207ed65fe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0ae9a8c9167ef3b86999af53564618b97d1ead3d06387e70761cce29667ab9c7
MD5 e3c6da435c35995c5d00eca30cd61313
BLAKE2b-256 da95945ef575d3c5227a2a70694bab391688f1e1b727f2db686128f077664dd1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2fff155f4f5155402f40eb6f94751a48150091e9f02106e9c93a04eae05355c8
MD5 e710c92f1dca7d4a2229b7d252cbcbef
BLAKE2b-256 380b72efd3772d6ddc3fb648284df70a7cd1f357a5387e6070d0656865f6d966

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 5128a68c4c120bc2820c29172a14c97a3fa769578d58a40ed9f532bd8daa5bc0
MD5 e47467d7dec94c6dbbb775eb5117779f
BLAKE2b-256 98e1247ed1e0dcdfdeb2a47f56ede0127a1b33526c95b55d690c8c0aac8f9de2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 69f8d4dbd4e143396d236090d055cf7c176b28d10cf793de8f0629a7d27163fe
MD5 56c503c9979e6522368c4ace514c65de
BLAKE2b-256 45f1694fe50ed546bc9d11664f677a636efa184cfc526ec6203ac5a782236ef2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 25493ae5e064f4c0ef1ee5a36f165ddc70e9190f885c666d4f3f5ce5688fdb96
MD5 50cf2ea4e5c289fa9b28a26839850a59
BLAKE2b-256 9690cc2d8c752776d2c434e9c4414f8571ab344500bf788d400731a0fa39c951

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9b8287447c191219fd31defe0cd478aa2cb6478ac4d2b58bf4dcbafc98c74bdf
MD5 46fb0090d7b42a460539a87fab322275
BLAKE2b-256 52cafa165712df976f54cade779640ee3fa5c20e60853f06db61c73d5bfc999b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a58a5341d8af41c49498aa8f49026fdd1322494b41fe3ad4bf29c3c6440b8335
MD5 778aa7ce09447b07ed953500b110a76b
BLAKE2b-256 a3c0d29313c87a5b3669a2a72a5f90a0669f6d3025021bb8dfc88ff7cb8cd3fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 512c5137f7c429a2709d6a8ff6c94b2cafd4bea3d528e1500c60e2b957ac8c57
MD5 1b7857cc0982470979e5f54a83b6c92c
BLAKE2b-256 aa17eb10372ab9356b6296bc5304ec8721942c2add8576d1c3418a9b335cd697

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 fb2bff87a343e7e6074dd97123a23e5a25a3d55fa06ffa898981c3c4c62c0ace
MD5 36afb0aeb5bd8abd5378a50fc3416a5a
BLAKE2b-256 07546dd24ec2b26c4c0c12701fb76c59255189f91e30b809caa3ce433692a221

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8e4b414c0cfdf8187a06eacecf01c8598baa24bce4d1a1b07bed087f66e77646
MD5 9a1a1273be560aba2b9e99cb828598ba
BLAKE2b-256 efa62fcece35e8ecf4c0510e023082d6f7d898cdaaacb27a9d6e133599f45bc9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 a71d4abac9beefbe16069d3b63ff3efdb2fc495c1e800301fb0226458ca9b8d0
MD5 996af3bc304acc23c4abdb248559b814
BLAKE2b-256 7df443a04ba11011d454e8c5ac7614aec9bb5c5b790159c546a75d384d410ecf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 104f5c11c85d84443fdc761d9aafd62f82ddd9a2a151eeeaf65880e8bc284d1c
MD5 a043c44a2a9a012c1d3828808cd6680d
BLAKE2b-256 c57e4febfab6072406afef42b9fbdc555a8f6405547214a3ab39ff159b407d46

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 28db32f8caf31a10546547babc7bd5de4509fc454f4b22354ed39e43faf4ef00
MD5 56755f2e66794e36327cb5c28a454310
BLAKE2b-256 920e8240d5e215e284f528371e35bdef273d85986be553170cdc6239e13658af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a934043954304b12cfc5fee32fba6c2db8328a8463246e615cae207ed4a87ce4
MD5 53601aff9b8ec6f2090c9457d9b40f23
BLAKE2b-256 1b81da85831406c1eeda76ba7044acbbf324a8543c4e813d41e7bcf12f0a7d7f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 c50735d6eb8f34fbe766a379ad337f627be4cd6c975bcffd0c5f96669c8ab62d
MD5 faacd0ee31be22266310fe3212864d24
BLAKE2b-256 7e4a9098ddde45a2942166e77c87059e526c6212308a04e00fb083e259fb45f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 707d969a9d3e33ec3231cf9575444a30490d4e5efc420adea05360d35380021d
MD5 368e7f927bccfd9ee49d79af459c082d
BLAKE2b-256 0467cff46e5aa29c5d3338ee3ac75afa69d2473cc63c3b111f2d8288d9c15ecf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 625d3e2ef41158af79dd4524c4aa546659fc27a9a9de531bd4d14dbe95eeda37
MD5 5b19fba1ea0af47a0cd10abfdaf32070
BLAKE2b-256 94d00aa05b5d5297523e6d8fa192612a75329f9c999397ae4b6515d7a7134002

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 506b24ca615c3fe0f378dd4b0ad44df0f6669f654b366ee79569273a5a8f1328
MD5 a95298827b395bc4a3fe98f9ffbaa610
BLAKE2b-256 28660f4d9479593cd211396151d48d1763d6f5435cad3bcae5938bf567d546fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a72266902da11c928e5579aaedecab6bdca07a7ed83b6f4ae6bbf98368b2367a
MD5 f6598cc1aabc2816d110d06fb07987ee
BLAKE2b-256 41c20ba30f363e0443802dc241e38e8e98ed496791daefeaf28366e2ade2a7a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 75ae59f7f33ea84af94ff4b5b156d01a07d25dafd2afa08b4522c234f8a4c3c0
MD5 93357b609126b08a4c8676940f5900fd
BLAKE2b-256 29391bd794302ad290cbd9fb277309fa6cfa65dddee2c07153bcf7517b4deb50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 6c0f4853ce853c5070584413ffbe6c4b0b712f0986fc1167864818b7341c28df
MD5 27b7224b0ffe27d089206199aded6d29
BLAKE2b-256 d72612271403c61c72b0815e9f5a22cd80785d735037942898eb4f624e15f6f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 99a7ed386708f905dcd6fd233c644ef4b49fac25207169ee53c714ccc579d070
MD5 6aecf7dd4c035678c2c72bfa48af7929
BLAKE2b-256 6f9e8350abc1198244a963f1f858189af50971cda92a1ddbf03b7d02b96e365a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 912234a7c4cf1942051875813ea077b7ca7846b1e3a7248115ffbf2f2eb75a6a
MD5 4d95ae1997c2f5f7ecea637d1e452027
BLAKE2b-256 f26f776b02fd725a2569c697df9fbcbc44ea58ba0484a080f97830ccd3b20e81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0d0088c4750814de655397eff3aa40c5b8214ec390ab1504ab2369bf7c7f6656
MD5 e2ab78fad1d9b9ef2b041ed3498121a8
BLAKE2b-256 8088ff33b3ad44301cbee2823d5dbb6ed7dba34e9d898cc9a7206a7153945925

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 4dc678a9031aae5bb201e730d792d75d4fe64b8ee9e8ec9e2b59ba76c0670a7c
MD5 474a51cd33d99c7af093d01d6a24cfee
BLAKE2b-256 bfdf16891faa6e5f11623b42158d5dd4ec9d67cfc4c5ca294a703b0150179089

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 203623443fe90e2c87cb858b7362d18ede765cb847cb56f51d3f41fc2588568f
MD5 b704e9c42885014d0f80f63074b8834a
BLAKE2b-256 3840f818da9e5fd739a80db0531c1a6bf9bb49dccbd4250f64a03abf39718aeb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 2032b43f8ab58e64ce505ac07d6cb4193c72d855d7cd9f4c2603e596b9385b88
MD5 5d4582c6dcc9d383fd9a49b7e29c816a
BLAKE2b-256 7960058dcf12e5aa0bce81ec9913ecae3d682daa1642a68b9c33530a361d8f7e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3b219f1c6e7311abf53d0c85adf2f72a53dc19b2874723b906c0c573be2891ce
MD5 ebe916dbb9a5104c4b556cb384cf5ddd
BLAKE2b-256 3dbc2f609b6f49aa78e18aab7a431f7f6ffe82f238229ab2e2e529be3ce3afbb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 de59aa21bdb68168b263db1785f021d27d91e37f07e6df53590ecc3f49c961e1
MD5 937c6b087350049a1d8fafa562f76fd6
BLAKE2b-256 a54a8ac6d90d3c1c4bc6e9f7c4b07a54f034dc34cbfcbc7befc4ac0b0d0dff0d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9f9baa406e3bac31ed6eb41bf80207cf3d3a798427af29a8fd0aa5c402f6d98a
MD5 9185871eabc63692c31117d4b548499f
BLAKE2b-256 b559c1d390f075927b56dd313342d4b5c636b173b816d9430fcfc5c83d2efb82

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 fd4450f96c6f458750649dd08c5a67690c6c8479b5dc5124a1bf2d8da1c3f6ac
MD5 127162fde1bbb17fc171dda1ae893443
BLAKE2b-256 dde683e3a19796f8a411205455e624631177a732389945928355a0f6ccccb91a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.0.1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d9ba127f6283fe883a2f3b20cb13c74239e536ddfe3c217585e7e74a2a6a3845
MD5 353849a09e96453fe5a5e12fd8932fd3
BLAKE2b-256 d8f037e707259b9b49b8caeee870c641f1cfd63fd8e134bf78234b1e5f19960c

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