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

Uploaded Source

Built Distributions

mlpfile-0.2.1-cp312-cp312-musllinux_1_1_x86_64.whl (690.9 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

mlpfile-0.2.1-cp312-cp312-musllinux_1_1_i686.whl (743.0 kB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ i686

mlpfile-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (176.0 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

mlpfile-0.2.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (183.6 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

mlpfile-0.2.1-cp312-cp312-macosx_10_9_x86_64.whl (151.7 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

mlpfile-0.2.1-cp312-cp312-macosx_10_9_universal2.whl (283.1 kB view details)

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

mlpfile-0.2.1-cp311-cp311-musllinux_1_1_x86_64.whl (693.5 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

mlpfile-0.2.1-cp311-cp311-musllinux_1_1_i686.whl (745.8 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

mlpfile-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (175.9 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

mlpfile-0.2.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (183.7 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

mlpfile-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl (151.9 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

mlpfile-0.2.1-cp311-cp311-macosx_10_9_universal2.whl (284.8 kB view details)

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

mlpfile-0.2.1-cp310-cp310-musllinux_1_1_x86_64.whl (692.8 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

mlpfile-0.2.1-cp310-cp310-musllinux_1_1_i686.whl (744.4 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

mlpfile-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (174.4 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

mlpfile-0.2.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (182.1 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

mlpfile-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl (150.7 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

mlpfile-0.2.1-cp310-cp310-macosx_10_9_universal2.whl (282.3 kB view details)

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

mlpfile-0.2.1-cp39-cp39-musllinux_1_1_x86_64.whl (693.0 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

mlpfile-0.2.1-cp39-cp39-musllinux_1_1_i686.whl (744.6 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

mlpfile-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (174.8 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

mlpfile-0.2.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (182.2 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

mlpfile-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl (150.9 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

mlpfile-0.2.1-cp39-cp39-macosx_10_9_universal2.whl (282.7 kB view details)

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

mlpfile-0.2.1-cp38-cp38-musllinux_1_1_x86_64.whl (692.5 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

mlpfile-0.2.1-cp38-cp38-musllinux_1_1_i686.whl (744.2 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

mlpfile-0.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (174.5 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

mlpfile-0.2.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (181.9 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

mlpfile-0.2.1-cp38-cp38-macosx_10_9_x86_64.whl (150.6 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

mlpfile-0.2.1-cp38-cp38-macosx_10_9_universal2.whl (282.1 kB view details)

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

mlpfile-0.2.1-cp37-cp37m-musllinux_1_1_x86_64.whl (695.3 kB view details)

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

mlpfile-0.2.1-cp37-cp37m-musllinux_1_1_i686.whl (749.4 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

mlpfile-0.2.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (176.2 kB view details)

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

mlpfile-0.2.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (184.3 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

mlpfile-0.2.1-cp37-cp37m-macosx_10_9_x86_64.whl (148.3 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: mlpfile-0.2.1.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.1.tar.gz
Algorithm Hash digest
SHA256 38af45804a666f439372158bcf125e24d1781789a9bb6ff7e5b8f0f6c617678b
MD5 3666dd0da71715106de021b88f665762
BLAKE2b-256 b8091fdf02355564579151f048e0a00875c4721ce58e96cb49921e3726d4cf2d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 79c0ee8fa097899ba97c5efbdce9102a448b9c982a7cef315fb4860426a0d1eb
MD5 54a692b9928a212a296e0df3babaff3c
BLAKE2b-256 5c9d2d9162ec2c46b9410bb3b96bc78c1570cd8df2b945c1b5ae9d16c601231a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp312-cp312-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 f4e55226768690662d9147db879badc6c277c93c188a84bd5adfc232a7865000
MD5 06bcaba34a574809d5490124c9b8949c
BLAKE2b-256 8312081245bada64fb320f4c39e991b2a81f185450943f2d70b50da4ac841598

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 378b4d4b2a594d960306a6a99df5a4d772e3b41ed09fb5fc09cf4a648190aba9
MD5 988b4ef380a24d1e87f99d3bb0057c42
BLAKE2b-256 5159bf7ac07dad79b970aebfe0afa010e299142ace34215863976921cb36e6ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8a11ddc371d2b5c0220abb8399581154ad12ea0b7df762a47039867c82c90809
MD5 f1738257b0f53526e84253a790bc2ec0
BLAKE2b-256 d6b2f950bb6e26af39336c394f54ee6313a200b9dc3615790aee6b713e659b60

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2476fe2d953045ba9a37ce4b460fbccb07c9ab529c9daf7aa60531203e8b73e3
MD5 5140ac5f5b538253d18c86e9dbc57992
BLAKE2b-256 8a0dfde1b4caaf2f3d0869199461ce0d1524169d6260c96459a01df2cb86bcd1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 18904dee7dbef7d2dd6f5a5defc53c6381820edb4ef71fd3b0bbec4fce08a73c
MD5 7c45517ad309ab09322f5d407c2698ba
BLAKE2b-256 0290dcef2725a147a79ab0cacbc2436774d44b1bb2cfa1f295744cba8079600f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 0dcb95eb576049089765cba892ed812ac5139b1f35cb0292c0d78878be87a9b5
MD5 697d2ba65a7fc590575d19d9e03ff17c
BLAKE2b-256 deed5e200a586bfa202f9b179a516bcc06d214918c08d37f830453e084ba6847

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 c2e8e2b9c5bc4633156819bc50c1760424897710c46c3b399013eb3cf07e525a
MD5 6cdb2315de7b8f3d005c969299c6d226
BLAKE2b-256 8ebbe255f44846d954b99538d5db7677fa3b62771a44290b542867392416a3d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e0362513c62ad08f5dbc5dde3a0f14ce939d18852bfd9290c62685c80d1a2acb
MD5 2c761a6282c4cd5c1ac9eea3273dc557
BLAKE2b-256 6bc1e112a3f814cf6e8c87d0df79ac5a03bff000908616132b03db65f2773f6c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f4c154b3f5dfb63cb7a439c8a4651da08ec86b80df1fd863e9655a91d9b30fe0
MD5 94075fed43fad31bf230dcabd475e8bc
BLAKE2b-256 702d6f1bebbb1c99ab683ecbe18e47a205e1c81d9bdc024adc74184d9b1d4b34

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 847d3f7eef20e0ca556e189183732ea8bae03b72b853d66710c5bf093946e3ae
MD5 2fdd434631aa452036423184e11702d7
BLAKE2b-256 596260f8f72fde666a96b8d634133d5f16196e79e2c3248a98ee9d5a6a4f00bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 b99447fa1dbe12b061dd277abd51d10cdc70c2ab61802aa6c2c4964cd5f505b5
MD5 c02e7c295aa31fe6f7397bc46595082a
BLAKE2b-256 d90dab6e38b68f3d63fad409c124dad15222ad28c7dc500a81e9a44e8dd9975a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4fec84ea61b1a1c7a5dd12db89b6239323b9a2f28ef1f45ccc519cf7b11734df
MD5 45ed7f52cf5d19e30cd5ee722c97086a
BLAKE2b-256 d55f31b585a2d5d309f39faae4342fff7a0fc0d5b6bd99e545d8d5ee1e14e5cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 2c777265d7a542825d7ec05994fe84c26d2ac8d7b613f06e00c3d411a60d0e0e
MD5 526d314888ec389134aa995c82635589
BLAKE2b-256 1219350044107dc136383bedd87ca6111c95cbf4a6bb374bfccece29dfccf36e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2350c8119963d0a2a30e96c65c69d3b7a3447947b77092688a03d5ed6ca4649c
MD5 be8d027769c94d1ddd24f900f22f2447
BLAKE2b-256 b5bdf9ae82554ce56e4d802d67ce8e5b3f1f103242a098fcd668a6f2823b230c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 05d86abbd1547c0691efc85447ad8f46a7e8c6403616fd8d94a23511bab040d6
MD5 a4d888d504fbb7d3b67cbf881b177b53
BLAKE2b-256 84b3dd406ac956f9e70f1ee5cc3e41ae1fb929d9c6765892a8a8e1d0e401fe5c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2f3b435202b366e527e7ba91d57fe66cf74d31befa9ac64261b73d968d58df0c
MD5 f92c3e7c3985f556be0dcd7ec41f91a9
BLAKE2b-256 8ca1c9c0637edd9c529afb9eee4e6dde4fe746fd16514fd02ea98c4ee3a1dd64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 7004e97bbdc658c72cbf688777d3411f3f77ef9a2d8aa363d1781e60d98f01fd
MD5 7a7eb8fa026d2479802ef99c48f87c75
BLAKE2b-256 0d142b81c8bf4efee505aff9a1e498d531d8f8a8e0a41753c705b9af9c4805e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 202e903c18bf920e6f8304e50d4f001c60125ee9eefe872a01a08c71abc93271
MD5 dbf020b6646ef27961bc78cb7bf8eaf5
BLAKE2b-256 fdad44466cb8112be20556c76dbe49c6c2da9408012d88e11e2c48ca4448baad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 70936b83f1d5a29ade1ad75b117126051c47703555e09c62d3ac6f071773f75c
MD5 08f30e074b5a7a9d60ac9ab97eae0b0b
BLAKE2b-256 93be7ad6ad3bdb85dfaec67901c14e4e11664019c1be9e22b2ba75a83ddbd3c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b9383c359057a054d0cd8d580c0b1ebf9ea71d20abc29944858673de40d81dcf
MD5 769533b95d108f60ca96e37a86e78342
BLAKE2b-256 907e958b75416e3ad4109bfa31487081a5230151bb27c175355bf545cb5ed265

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d7f28d919a8c2e5ab1c1b6618c2f97933398ac74c7abe15087a6020efa10b4ff
MD5 67cd0dce1774c6db529171fe3d1a165c
BLAKE2b-256 c3de9938e114848c171de41eca35c7804959e59058556529f61e1a427191a35a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8c5ce0c1c9d0ebe497017ffbfe8f252f0f1687cbb96cdc9327719cc0f3ba845c
MD5 f9346dd52be4f036c63bd97afb02b370
BLAKE2b-256 ede7b823e2901c26f239373863e268652e496b5f8f3c70c5c7ac7f3350f86998

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 dfb94e0f05ef83d8b9e5b0e1a759b24cc82e306f7aa59f8282a3f8f1f7ada0a6
MD5 ed57861fe56a7175df18f98621703494
BLAKE2b-256 f50034c483c14bd01ec1a936d86c89ec06e88d890dd67c7c8d484ed96ddc03fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 ba73b2d7958d2428335faa361de464575145b73f4c852d566cd6b5b5cc624dc4
MD5 78115c98991d6d793ad279dc9befa967
BLAKE2b-256 6e9c2c7074b941ff51b6c68d12191992c432978bdb2218d367e956465e424518

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 2ffd0233188efb9304a38a3f7ce21d396f0565922b7a46d32bc9e7eda0749018
MD5 bcafc303052370c43cf06d82041773d1
BLAKE2b-256 f85b8917f35aece26f319bddbbfbd9e159f20a836a757fe6f48f9efa2a32624d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c7fffc7848df311add9dd8c473596222f0a10133f4ca2777466dc1deddc61f92
MD5 0c7b021b144d14178cc5173bc43fb0d3
BLAKE2b-256 690bb876d5acbbb8eb70e0df49c2f49eb2e9176af7c19bf3e3dfea673a39e5d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 14cebe96c3e9dd7de75d9649c81263826cb73e7be98067da2eb5dda6e98efaf1
MD5 6840f327041cf84604e97bdc72177eb0
BLAKE2b-256 eb46033285475d64011679c41436d947ff0001b2dafd2f917eabaf4f9909432f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 52ebe3b860d23df27c3d63e244013773f7f21dbda7e3e4395d93e9fd63947615
MD5 d63a1c0a31c5e55be46bdd475bf4f9e8
BLAKE2b-256 fb2a62adc0c82757ebc0d826c06f4d86a1db55a705489af93defb76031a005ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 d5b2dc126c7f2dfabececa1cada748aa0dc500fdbd22ff62ad8e3ee85aa63649
MD5 fa2798bd6cd34d46ca2d4f0599686471
BLAKE2b-256 de3094ddcd2fe3790ab32dbde10d50a5315369f2c8c743b539b2942eee6fccb0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 87a2f9679748dd51e22a00698ad93c362b3527d511c0620e7ac2cb0f227bd04f
MD5 dad24f2a53d34f47ebdf01041ec0f74f
BLAKE2b-256 e344e26aa47fc5718a4db0e24e80ea55ece81232402703cce8f7ab9448aad8aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 4828c115191c9ed8de4234bcdc353c5175c4931cc0638b3893c04891570c2265
MD5 ccb1eecdb6f58510d0bc0247adbae279
BLAKE2b-256 ba13893ff4d08b350cad5ab4e2969f9b7f66bb499e2163a42b02e3db6b7b5fc7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7efe9681823f6151b4f1f0ff7c4a3df90fa96617b9a470d3f62058387c923595
MD5 b9935f7edaa5839084ba1590def57214
BLAKE2b-256 c6bedae3c6d462dc3f5edea3b0aa2e3637f6c12b1eec26b7548aae9e238c2b84

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 086e8e2e9b0c6e1e75b33d57f18156a9b76bae18e30859ee0faa3900fb078924
MD5 5a640cf8ad50b4fd7d34ff08380de0bb
BLAKE2b-256 284467b77a3ae516a2e8f54a1c567ac3fe65244a665663a20f978d6708517440

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlpfile-0.2.1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c4b7e22840d4af7fd611a560dcfea72e238b8f8feed69e2ef4a53f19ef869802
MD5 0b1ba60164ad195cfd972843c2ff7443
BLAKE2b-256 98ac7d9ca8fa2b19b75dea08baefb4f0c91487c1596e509ccf84a72208ffbd97

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