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.10.tar.gz (356.6 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.10-cp314-cp314-win_amd64.whl (515.3 kB view details)

Uploaded CPython 3.14Windows x86-64

mtlearn-1.0.10-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (549.7 kB view details)

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

mtlearn-1.0.10-cp314-cp314-macosx_11_0_arm64.whl (432.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

mtlearn-1.0.10-cp313-cp313-win_amd64.whl (502.3 kB view details)

Uploaded CPython 3.13Windows x86-64

mtlearn-1.0.10-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (549.5 kB view details)

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

mtlearn-1.0.10-cp313-cp313-macosx_11_0_arm64.whl (431.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

mtlearn-1.0.10-cp312-cp312-win_amd64.whl (502.3 kB view details)

Uploaded CPython 3.12Windows x86-64

mtlearn-1.0.10-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (549.6 kB view details)

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

mtlearn-1.0.10-cp312-cp312-macosx_11_0_x86_64.whl (466.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

mtlearn-1.0.10-cp312-cp312-macosx_11_0_arm64.whl (431.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

mtlearn-1.0.10-cp311-cp311-win_amd64.whl (500.3 kB view details)

Uploaded CPython 3.11Windows x86-64

mtlearn-1.0.10-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (551.9 kB view details)

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

mtlearn-1.0.10-cp311-cp311-macosx_11_0_x86_64.whl (463.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

mtlearn-1.0.10-cp311-cp311-macosx_11_0_arm64.whl (430.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

mtlearn-1.0.10-cp310-cp310-win_amd64.whl (499.2 kB view details)

Uploaded CPython 3.10Windows x86-64

mtlearn-1.0.10-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (551.0 kB view details)

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

mtlearn-1.0.10-cp310-cp310-macosx_11_0_x86_64.whl (461.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

mtlearn-1.0.10-cp310-cp310-macosx_11_0_arm64.whl (429.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

mtlearn-1.0.10-cp39-cp39-win_amd64.whl (508.8 kB view details)

Uploaded CPython 3.9Windows x86-64

mtlearn-1.0.10-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (550.0 kB view details)

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

mtlearn-1.0.10-cp39-cp39-macosx_11_0_x86_64.whl (461.8 kB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

mtlearn-1.0.10-cp39-cp39-macosx_11_0_arm64.whl (429.9 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: mtlearn-1.0.10.tar.gz
  • Upload date:
  • Size: 356.6 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.10.tar.gz
Algorithm Hash digest
SHA256 8e15c960dba65974c420f3084b31cf2028f9e17225a7492a5b4aa9991811f8e9
MD5 442df5ff950e485e531781235d997a9e
BLAKE2b-256 4ea4222e54f6d7804b2c8e45561ba1d63bfdc312a3c35b62c80044db8465eb8e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mtlearn-1.0.10-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 515.3 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.10-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 c3e4660ad2a0093e0b1dd3cd035e4a11e4d28684d8e09e16afea47ebe17c4898
MD5 de776d33860f1e9222e6cc3751826631
BLAKE2b-256 6221595ec24f6e5621f75bed52addc42808e70f09e69acaf0ef043ee684334c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.10-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6f0a75508e702b6349a1d89954104c11a4fe05a5d97af862d03436473a3d71f7
MD5 0040894925a30e1e5deec364caccb896
BLAKE2b-256 a236a7f42b0a3b75d736a15c934ae94d3ed29e9178a6dce1ee0e8b6b44db5220

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.10-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fd8d9c8b149f3f6b3b7ab9f864f80f4525a1343dded813e150e4e1bfe3ea7a02
MD5 b002f2149ae5d3bdeab7463812134ffd
BLAKE2b-256 05cb67d879450c20a0765558f3214a7387d10e3b44dff888711fbd9a8dc2c42b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mtlearn-1.0.10-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 502.3 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.10-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 411917fdc8de29810fe62ba4def5de7a090977453f379c7f60e7d01bd9db7326
MD5 2b4995010f2db91f93385c13e2a77f5f
BLAKE2b-256 5be2dfcb84f4a7846ede524f082267a1fe05ab82ca3057120d84276d7827d0ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.10-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c5d2dd040b7e084c30c723f9cbf72583966b91bca829de208e7e534737005b08
MD5 0235baa67ae07904055ff06b91c00f68
BLAKE2b-256 a9bd84e63717d2ec629ee784a6a8a222483b2260e45a9b052cfc8ca3dd03e9a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.10-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4976eeb3134f4090973cf17f109a7e8d3dbcdf105115423c8984b6dea00d5a94
MD5 93f16a12519afe646b45958c44053e9b
BLAKE2b-256 06670c0c6c5f44ae045ce67e4a73120afd9e59b3d1bbfbc812c20ba74c097d91

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mtlearn-1.0.10-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 502.3 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.10-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e5cfd3e52bacf2f1bc0d4eb1e7ccd303d5a1b2ac6f03142629894879b89c09eb
MD5 1472cc88f2873f216939caf56a05d50c
BLAKE2b-256 d04edfa86fd7699acb6f9746ba1267b9278961ca89e90e430992ab420299629e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.10-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7d5df9f5a04e6515e2be761840dc826a4775f69f79ded3f3de8f25172fe64d99
MD5 00a459d72ac06f024c41bcddcee908a5
BLAKE2b-256 15514b75e078819bc85005bba0d1e031c04935e7d8d738ecba00e8a9c03b0bfb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.10-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 f2dfde2eaf743cb44d98a720378ae7bceb3cc1bcf6bec2b26dab7b101b22030e
MD5 94daf3a00556500b561ce88c22922185
BLAKE2b-256 b9ebcf5ad3c67d53f22ea5797ff89bc8b5d280fa01a3daf713cae375d84fa276

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.10-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a1957d6da934eb262a4f1e0bab252734dc6fa311aed042416f04724e920cea13
MD5 0db0143c250a79eb6836df7a9094b32f
BLAKE2b-256 5b7d26cc7043291eec2bb0063fb49ed111a6c1c7ec9bbc7dbbde34098bfe30de

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mtlearn-1.0.10-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 500.3 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.10-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3c32de0ff0592a8d97b039ac218bc8765da9d5d546fb1ae56d63383b24ab7940
MD5 ab2e00d46ec4b842139e02bf1037216a
BLAKE2b-256 9520bf5505546f983ec7ee4f387b61ad9da34c88f3f409204402d27294ac61b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.10-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 408f6545a98110aed7205eda9511c096f0fac2f821b13c81b67666ae56bec7f8
MD5 5536bc4ae4981727b339b3ba4afe98cc
BLAKE2b-256 5addd6bc996146dd4aa8d961bca6f2704ffeac04db0f4f5fda18cfa86a665ca8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.10-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 8f694ce6d2bc17c89cce2e9f9588b682e66035026b1650662ea4bb3dd34b6d43
MD5 8b24d8a843a68bed16ca2af4e8dea647
BLAKE2b-256 591f251488fcb7c79117f16fa963f13b9c23399eccbebc4018fa34515073f337

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.10-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d0b077bb5f5bdf4314011ba1372d3e6071732b52322754beb61519b8cbd2c41d
MD5 b244b1469fe72f391de82ebb352c80e5
BLAKE2b-256 6d5f1e3f8ddaafe8bd4ca1a050938d8667b0135f901e1d77e27e446dfaefb7cf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mtlearn-1.0.10-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 499.2 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.10-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ab3fbfe2b9be81c8532773b2175be9ce4aa6ca1bef9513ad5ff0e2b0dec3d212
MD5 0abc5d09f4e3484394764a2e55c3a70c
BLAKE2b-256 165b9ee718a6038278690026101c307250a57aafc2a490627076ac69984dfe5f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.10-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9fe9d7c7e2eadb8640294277ac84a28052df96b752dd60e83712c606f02e3018
MD5 efd829c174a4a2c1080382527e6a42d8
BLAKE2b-256 6bcbd112f516542341c7aaa706f1b4171bdd236ad59f43d8725e9f71ab755ecd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.10-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 3424565c0010c3bd4f03bfbaae358037e66f81200dd2934e8be7975e63d57ac3
MD5 d18d76b364fefdb7fc694c84fb8d229e
BLAKE2b-256 1caa547944974001a2fa91e9f1591110ff1581c58919589e981b7c652467e356

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.10-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8e81cbe6bb89c16d13490db366995a156ab5876f4e16024ed8142053a39cbb58
MD5 3177586a1a4527469a05afb9753429ce
BLAKE2b-256 c3ff2f1225674acc0667ba22baa23636ee2c48d003379b7d5ae794e736971c28

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mtlearn-1.0.10-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 508.8 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.10-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 92eb78b06c38e5fafce160e25e780eaf6b9fc13f2fe72284676f45492638fdb3
MD5 347b91607e4292f4a846d44b01410017
BLAKE2b-256 40762167ce4c89b42d9e3b1e77b527b07e3ebb8da0352d25d12f34e5288abe68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.10-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2a6eda30b19c1f1573959614921c9891f59e45e25e2f86cc3970dc34d87a8ef3
MD5 aeb8dd658b2f5994b582dd3bc4ea2ddc
BLAKE2b-256 0a7dcdf70c006b89c87f44f6232aac27149efb4be80b0921d21672556c975906

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.10-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 97fcf1b8b5450890b98c42c564c67de594a275846e3dbd5e4b913b7c21607362
MD5 4fb16c3c2b74f057f82adbca49812c2c
BLAKE2b-256 7f8e130125ecbc0dae7ead55db5fcc3ffa32523a3741632fb94985c741994927

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.10-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 79799dd475431218608c489a3df7133d22feaef2a7379129a0f1f444ccfb5819
MD5 65b1be4909fdf518da1bd57bc3527a3a
BLAKE2b-256 0b60e37e63a1780b46abac653e5ffcf528e5db21c323941278f2f41bcdc24df4

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