Skip to main content

Morphological tree learning utilities with a stable morphology facade

Project description

MTLearn

CI Package

MTLearn (Morphological Tree Learning) is a C++/Python research library for learnable connected operators based on morphological trees. The Python package is published as mtlearn.

The library explores a simple idea: connected morphology can become a structural prior for deep neural networks. Instead of processing images only through local pixel-wise operations, connected operators reason over components, regions, shape, contrast, and hierarchy. This makes them naturally interpretable and well-suited for tasks where structure matters.

Classical connected filters are powerful, but they usually depend on hard keep/discard decisions and manually selected attribute thresholds. This limits their integration into end-to-end trainable neural architectures.

MTLearn provides a stable implementation platform for this research direction. It currently includes Connected Filter Preprocessing (CFP), and is intended to grow toward trainable connected-operator layers, differentiable or learnable attribute criteria, self-dual tree representations, intermediate network insertions, and scalable implementations.

Main Features

  • Connected Filter Preprocessing (CFP): the current main model, available as mtlearn.layers.ConnectedFilterPreprocessingLayer. CFP replaces hard connected-filter decisions with a differentiable sigmoid gate over normalized tree-node attributes.

  • Stable morphology interface: mtlearn.morphology builds max-trees, min-trees, and tree-of-shapes through a backend-independent API.

  • Trainable connected morphology: designed as an implementation platform for connected morphology as a learnable structural prior in deep neural networks.

  • Research-ready validation: includes C++ tests, Python tests, gradient checks, reference implementations, notebook validations, and public dataset download helpers.

Install

The Python package is available from PyPI as mtlearn:

pip install mtlearn

See docs/installation.md for installation instructions and docs/development.md for source builds, validation, and releases. For the public scalar attribute and group catalog, see docs/source/concepts/attributes.md.

Quick Start

Build a morphology tree and compute attributes:

import numpy as np
from mtlearn import morphology

image = np.array([[1, 2], [3, 4]], dtype=np.uint8)
tree = morphology.create_max_tree(image)

_, attributes = morphology.compute_attributes(
    tree,
    [morphology.AttributeType.AREA, morphology.AttributeType.COMPACTNESS],
)

print(attributes.shape)

Create a CFP layer and run a forward pass:

import torch
from mtlearn import morphology
from mtlearn.layers import ConnectedFilterPreprocessingLayer

cfp_layer = ConnectedFilterPreprocessingLayer(
    in_channels=1,
    filter_specs=[
        {
            "tree_type": morphology.TreeType.MAX_TREE,
            "attributes": (
                morphology.AttributeType.AREA,
                morphology.AttributeType.CIRCULARITY,
            ),
        }
    ],
    device="cpu",
    scale_mode="none",
)

x = torch.tensor([[[[1, 2], [3, 4]]]], dtype=torch.float32)
y = cfp_layer(x)

assert y.shape == x.shape

For self-dual preprocessing, use the tree-of-shapes backend explicitly:

cfp_tos = ConnectedFilterPreprocessingLayer(
    in_channels=1,
    filter_specs=[
        {
            "tree_type": morphology.TreeType.TREE_OF_SHAPES,
            "attributes": (morphology.AttributeGroup.SHAPE,),
            "tos_interpolation": "self-dual",
        }
    ],
)

CFP Filter Specs

ConnectedFilterPreprocessingLayer is configured with filter_specs. Each specification creates one output channel per input channel and owns the morphology tree and scoring attributes:

from mtlearn import morphology

filter_specs = [
    {
        "name": "max_area_gray",
        "tree_type": morphology.TreeType.MAX_TREE,
        "attributes": (
            morphology.AttributeType.AREA,
            morphology.AttributeType.GRAY_HEIGHT,
        ),
    },
    {
        "name": "tos_boundary",
        "tree_type": morphology.TreeType.TREE_OF_SHAPES,
        "attributes": (morphology.AttributeGroup.BOUNDARY,),
        "tos_interpolation": "self-dual",
    },
    {
        "name": "min_area",
        "tree_type": morphology.TreeType.MIN_TREE,
        "attributes": (morphology.AttributeType.AREA,),
    },
]

name is optional. When provided, it becomes the stable parameter key for that filter spec; when omitted, the layer uses spec_000, spec_001, and so on.

The sigmoid logits are unclamped by default. Pass clamp=12 to clamp beta_f * logits to [-12, 12], or pass an explicit pair such as clamp=(-8, 10).

Examples and Notebooks

Executable examples are available in notebooks/.

Install notebook dependencies with:

pip install "mtlearn[notebooks]"

The main public experiment example is:

notebooks/experiments/Example_screws_filtering.ipynb

Representative ICPR 2026 experiment notebooks are available in notebooks/ICPR2026.

Implementation Notes

ConnectedFilterPreprocessingLayer is the recommended implementation for new CFP experiments.

ConnectedFilterPreprocessingLayerLegacy remains available for loading or reproducing experiments that used the former global tree/output contract.

For PyTorch checkpoints, use the helper functions in mtlearn.layers. CFP trainable weights are regular PyTorch parameters, and the primary layer stores its serializable config and dataset normalization statistics in PyTorch extra state:

from mtlearn.layers import (
    ConnectedFilterPreprocessingLayer,
    load_checkpoint,
    save_checkpoint,
)

save_checkpoint("model.pt", model)

def build_model():
    return Model(
        ConnectedFilterPreprocessingLayer(
            in_channels=1,
            filter_specs=filter_specs,
        ),
        build_backbone(),
    )

model, checkpoint = load_checkpoint("model.pt", build_model, device=device)

The helpers discover CFP layers by module name, save their configs next to the normal model state_dict, and let the CFP extra state validate compatibility and restore dataset normalization statistics during load_state_dict. When the model constructor cannot hard-code the CFP configuration, the load factory may instead accept one cfp_configs argument and call ConnectedFilterPreprocessingLayer.from_config(...).

Checkpoints do not persist per-sample tree, attribute, or normalization caches; those are rebuilt from input data. export_params()/save_params() are manual inspection helpers for CFP weights and metadata, not the recommended full-model checkpoint API.

Tensor operations, trainable parameters, and cached attributes can live on CUDA when device="cuda". Morphology-tree construction is still performed by the C++ backend on CPU.

The main implementation uses an implicit Jacobian formulation. The dense region-pixel matrix is not materialized during normal training; tree-ordering metadata is used to perform the equivalent reconstruction and backward accumulation more compactly. This reduces memory pressure compared with explicit region-pixel Jacobian construction.

Reference implementations based on explicit Jacobians and CPU tree traversals remain available for gradient checks, comparisons, and debugging.

MTLearn uses a C++ morphology backend internally through mtlearn::morphology. User code should interact with morphology through the public Python facade mtlearn.morphology, rather than depending on backend-specific APIs.

The backend is MorphologicalAttributeFilters / mmcfilters, but the top-level Python package mmcfilters is not required as a runtime dependency of mtlearn.

Current Scope

MTLearn is a research-oriented library. CFP is the first validated member of a broader planned family of trainable connected-operator layers. The current implementation supports max-tree, min-tree, and tree-of-shapes CFP workflows, mixed tree types in the same layer, multi-attribute dataset-level attribute normalization, cached preprocessing, and PyTorch forward/backward for CFP parameters on CPU or CUDA tensors.

Citation

If you use the CFP layer in your work, please cite:

Wonder A. L. Alves, Lucas de P. O. Santos, Ronaldo F. Hashimoto, Nicolas Passat, Anderson H. R. Souza, Dennis J. Silva, Yukiko Kenmochi. A trainable connected filter preprocessing layer based on component trees. International Conference on Pattern Recognition (ICPR), 2026, Lyon, France. ⟨hal-05575141

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

mtlearn-1.0.9.tar.gz (344.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

mtlearn-1.0.9-cp314-cp314-win_amd64.whl (513.9 kB view details)

Uploaded CPython 3.14Windows x86-64

mtlearn-1.0.9-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (547.7 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mtlearn-1.0.9-cp314-cp314-macosx_11_0_arm64.whl (431.0 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

mtlearn-1.0.9-cp313-cp313-win_amd64.whl (500.9 kB view details)

Uploaded CPython 3.13Windows x86-64

mtlearn-1.0.9-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (547.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mtlearn-1.0.9-cp313-cp313-macosx_11_0_arm64.whl (430.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

mtlearn-1.0.9-cp312-cp312-win_amd64.whl (500.8 kB view details)

Uploaded CPython 3.12Windows x86-64

mtlearn-1.0.9-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (547.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mtlearn-1.0.9-cp312-cp312-macosx_11_0_x86_64.whl (465.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

mtlearn-1.0.9-cp312-cp312-macosx_11_0_arm64.whl (430.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

mtlearn-1.0.9-cp311-cp311-win_amd64.whl (498.8 kB view details)

Uploaded CPython 3.11Windows x86-64

mtlearn-1.0.9-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (549.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mtlearn-1.0.9-cp311-cp311-macosx_11_0_x86_64.whl (461.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

mtlearn-1.0.9-cp311-cp311-macosx_11_0_arm64.whl (429.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

mtlearn-1.0.9-cp310-cp310-win_amd64.whl (497.9 kB view details)

Uploaded CPython 3.10Windows x86-64

mtlearn-1.0.9-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (548.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mtlearn-1.0.9-cp310-cp310-macosx_11_0_x86_64.whl (460.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

mtlearn-1.0.9-cp310-cp310-macosx_11_0_arm64.whl (428.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

mtlearn-1.0.9-cp39-cp39-win_amd64.whl (507.1 kB view details)

Uploaded CPython 3.9Windows x86-64

mtlearn-1.0.9-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (547.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mtlearn-1.0.9-cp39-cp39-macosx_11_0_x86_64.whl (460.3 kB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

mtlearn-1.0.9-cp39-cp39-macosx_11_0_arm64.whl (428.6 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file mtlearn-1.0.9.tar.gz.

File metadata

  • Download URL: mtlearn-1.0.9.tar.gz
  • Upload date:
  • Size: 344.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for mtlearn-1.0.9.tar.gz
Algorithm Hash digest
SHA256 e8f34a16d1a5b2d6bada34b9ec2df4ae3d544f4c02698a7f8ad39df8ee7bf314
MD5 bb4c56af3795c97e829a5c2ab3e3746c
BLAKE2b-256 61895aed16c3e707864dd791cc4e70a01b33952cb27cae2cd9799a0450bb795f

See more details on using hashes here.

File details

Details for the file mtlearn-1.0.9-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: mtlearn-1.0.9-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 513.9 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for mtlearn-1.0.9-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 7c4af0b33d9f587dc41029e9d68c8b4dd15296c7b15b5a643f4b2b4a1fa7fde9
MD5 819a21208d4458e63d11ce973e1f3bc2
BLAKE2b-256 6dd4def142c450a7982ed1144371c702afa95b3e0a1c1e38677acb55c71d1785

See more details on using hashes here.

File details

Details for the file mtlearn-1.0.9-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mtlearn-1.0.9-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f627b1b3423cb86c139d65d76b4d65c73527a1ea62d5990612d5969b7d105ee7
MD5 54e64556d9477ef3152f18043216332f
BLAKE2b-256 202b2b9c161ede8825338000da17029a0d02598d52d00c5a0c9b068830286ea3

See more details on using hashes here.

File details

Details for the file mtlearn-1.0.9-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mtlearn-1.0.9-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 592b2693420e8f328c9753633f5805a928f91ee37f3ee80666163f458fe150c4
MD5 b5a2f14556b12b530fd540b4e6fb2d8b
BLAKE2b-256 ee5e5ed0144865831f4c87195fafd9c6cef09ec5974c065bd32ba95cf8a588b3

See more details on using hashes here.

File details

Details for the file mtlearn-1.0.9-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: mtlearn-1.0.9-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 500.9 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for mtlearn-1.0.9-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 72c4492a92a31ec5ef3867fe1e7520f843b49647700b7683df497e1253224853
MD5 10515dd179889817d1af0e57e049081a
BLAKE2b-256 86bbf1931dc114138d3cb3790b58fb94526b58d23d1c4258bc205a13f39a6a0c

See more details on using hashes here.

File details

Details for the file mtlearn-1.0.9-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mtlearn-1.0.9-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 69ecca22e459e2f67349911f59df56c7fc41e6123664f7d6a7b9a00887c710b0
MD5 1a591a8fdb2c5372d7f57a890a66e794
BLAKE2b-256 d56e57d7bf1e06265a9c7b0f7b851cfb7be6efd2c5c52e881f4ac760fc63996e

See more details on using hashes here.

File details

Details for the file mtlearn-1.0.9-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mtlearn-1.0.9-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8c5376e325f8c19659d6cb99dc660ee5c687aeb1da3f882413c7cd52272a1f2c
MD5 0d9af4a8752f842a74ed1603dfa68f01
BLAKE2b-256 6dc718d6b51ec182d2b71d09b0ffb20d0576a857d23aa2e870e4e3ac81d7086e

See more details on using hashes here.

File details

Details for the file mtlearn-1.0.9-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: mtlearn-1.0.9-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 500.8 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for mtlearn-1.0.9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9d44deb3622d5c1b6897748bc68e465fc7db46a8de86aeeed25268b75e1b9855
MD5 cfde683b441625113f8153577a7fcdf8
BLAKE2b-256 3610d889d907b134a2c6084ed9a6452bc8010dbbe64ee6319152256ded0110e8

See more details on using hashes here.

File details

Details for the file mtlearn-1.0.9-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mtlearn-1.0.9-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9aeb9e90204e25a2664b190fda6fd1eb12d6c7927ffcfa97ca845899c3373f06
MD5 3ca950324d2599d2b802fc4b27186fd8
BLAKE2b-256 9552b4b76315c1f3a30437f081bad2855e1534bbb40f29efc0337c814b8ee012

See more details on using hashes here.

File details

Details for the file mtlearn-1.0.9-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for mtlearn-1.0.9-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 5b602e73f9217d9d722cc7c150b11e13ae6d5dc95c8da2bb2fb6c4b1b32a6166
MD5 8bc7dae520e93b14ae7ad400eba96cff
BLAKE2b-256 4cc37b1bd58ead6d60fbd06bfb2890968842d16234646b18943a858089918c0a

See more details on using hashes here.

File details

Details for the file mtlearn-1.0.9-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mtlearn-1.0.9-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5ffdc42b50f7ed6d91aec20d324741760ddafd0d63a859cee0d1e4f3f8963957
MD5 ec53381b285afbe6c6098b10cdf45861
BLAKE2b-256 ab47af64865e0e971bcd01cab43dae655dc4dad8d6a24bb42fb9f6a7911f9589

See more details on using hashes here.

File details

Details for the file mtlearn-1.0.9-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: mtlearn-1.0.9-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 498.8 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for mtlearn-1.0.9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ea6802c8a5ee74db1bf2d797e0375f9aa9e6e76bb76966a82602189aa4a02548
MD5 79c7c7ebfea2cf0180438a7e4f66ebad
BLAKE2b-256 d8228dbe3b7bd67a7db697fc04d8ea2e97150b347108a078442b2a7f562ce286

See more details on using hashes here.

File details

Details for the file mtlearn-1.0.9-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mtlearn-1.0.9-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ea43168d0ab881c081cd4829dfb11fd57ac73b5898f59f3a7295b60786db4957
MD5 1208434c0289c7fec0c73ca43314d3d0
BLAKE2b-256 ab1e107cb8176a32a7e6020e2490a6763b1e60fb5f1344e71a57826583fa418d

See more details on using hashes here.

File details

Details for the file mtlearn-1.0.9-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for mtlearn-1.0.9-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 2381580924eb6e87f459e0871dda751b8a20156a341504a06be0f6c8b3521a2a
MD5 aeccb5148ee28d7b1ce35695c2e3ae1e
BLAKE2b-256 3cc07fb1e0d6531135fe7bdbed2e88cee3d2827619736886e97279889af37259

See more details on using hashes here.

File details

Details for the file mtlearn-1.0.9-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mtlearn-1.0.9-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1e97bdb62e6925a7af944f8f1bb4033ad200ab236eb26c1e8338f429781bbe3b
MD5 0189d96cb1b293647273e61683f68cf8
BLAKE2b-256 b140b46a27861d5bd29fb142edbb03de199766558363872c01073dea84acbc9a

See more details on using hashes here.

File details

Details for the file mtlearn-1.0.9-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: mtlearn-1.0.9-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 497.9 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for mtlearn-1.0.9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 19f83680e83cc95b7c24a75bf3bed6cef4030893b99986d65ccd2558041e6113
MD5 f882226d86c5219871167bcb6bb3906d
BLAKE2b-256 5feee8168cab289296a78aa6d42a2163235f3c05d4b6d4ea122fbdcc8dc00903

See more details on using hashes here.

File details

Details for the file mtlearn-1.0.9-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mtlearn-1.0.9-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2dd4bce8ea7f421bdc695783f3ca479ef02dd30c02590821a6d0415864344eb7
MD5 a0b00e90350c540c25f3c18e5ef5b7de
BLAKE2b-256 d71bbd4959358e6da784a577798ad39b7e01148ae3e847bd33516a979846b48e

See more details on using hashes here.

File details

Details for the file mtlearn-1.0.9-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for mtlearn-1.0.9-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 41ed9b6e2e4c10a7493998173f08ee45d5d257a146ff7257d47c2c868be56bf5
MD5 a311ae42f54045aa6a4bfad25e63c90e
BLAKE2b-256 a97202d794cabba46a66bd7a12cc3d34082343936330f5b6fe11fee2bfabd9d7

See more details on using hashes here.

File details

Details for the file mtlearn-1.0.9-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mtlearn-1.0.9-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cf15976e213307c2f3ebcb38468018b6fc7786e115aa154156494d8ddf09a93b
MD5 4db7597ca457cc2efc25a497ddeeaf4b
BLAKE2b-256 9200a2d8857f1f8718f954e929955b5d9667e2feeee40c9230bdb01f18bafaae

See more details on using hashes here.

File details

Details for the file mtlearn-1.0.9-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: mtlearn-1.0.9-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 507.1 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for mtlearn-1.0.9-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a49ac336d7ab66e596f1c80677676f6d49948404f39d26ec14af652d4bed5029
MD5 fa7ed09f2317542f0b5ccfc5981f91b3
BLAKE2b-256 c929f5b9a59469937fc8b10cc43a2710c2bb2c9600a2eb55e39bf563ef24bca1

See more details on using hashes here.

File details

Details for the file mtlearn-1.0.9-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mtlearn-1.0.9-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ff476ebc89f3469167963878de2d918349666d9540f616ea37a981c41bdd272a
MD5 247153242f444913f8574db84957c49d
BLAKE2b-256 8bab131ae85418bc83850630f98bfb884dfbec65b991164dba3e1448d0487bad

See more details on using hashes here.

File details

Details for the file mtlearn-1.0.9-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for mtlearn-1.0.9-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 949d6f316bae8b5abe7c652d4c4184421858a57dc22eb7a2e0c7cb6ec892fbf5
MD5 eec35e72c8358b5348d350f63caf3515
BLAKE2b-256 41ff81d4d8dc871b8f604356b72b75b7fd2d2c6d1945e77d8bf4143df0caa7ab

See more details on using hashes here.

File details

Details for the file mtlearn-1.0.9-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mtlearn-1.0.9-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0a759ce346c8df9832a7192de4518bcae82b8bfa453e86d8f787b9c3a97f09ab
MD5 100b0519730fd53f15bba668afbd28ec
BLAKE2b-256 4f53a692255ce4ba7988bc17886208841f727de43ba51ed093a2b8ea8bb9c038

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page