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.

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.7.tar.gz (329.8 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.7-cp314-cp314-win_amd64.whl (505.7 kB view details)

Uploaded CPython 3.14Windows x86-64

mtlearn-1.0.7-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (544.4 kB view details)

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

mtlearn-1.0.7-cp314-cp314-macosx_11_0_arm64.whl (428.0 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

mtlearn-1.0.7-cp313-cp313-win_amd64.whl (493.9 kB view details)

Uploaded CPython 3.13Windows x86-64

mtlearn-1.0.7-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (544.3 kB view details)

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

mtlearn-1.0.7-cp313-cp313-macosx_11_0_arm64.whl (427.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

mtlearn-1.0.7-cp312-cp312-win_amd64.whl (493.9 kB view details)

Uploaded CPython 3.12Windows x86-64

mtlearn-1.0.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (544.3 kB view details)

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

mtlearn-1.0.7-cp312-cp312-macosx_11_0_x86_64.whl (460.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

mtlearn-1.0.7-cp312-cp312-macosx_11_0_arm64.whl (427.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

mtlearn-1.0.7-cp311-cp311-win_amd64.whl (492.1 kB view details)

Uploaded CPython 3.11Windows x86-64

mtlearn-1.0.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (545.1 kB view details)

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

mtlearn-1.0.7-cp311-cp311-macosx_11_0_x86_64.whl (456.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

mtlearn-1.0.7-cp311-cp311-macosx_11_0_arm64.whl (426.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

mtlearn-1.0.7-cp310-cp310-win_amd64.whl (491.1 kB view details)

Uploaded CPython 3.10Windows x86-64

mtlearn-1.0.7-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (544.2 kB view details)

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

mtlearn-1.0.7-cp310-cp310-macosx_11_0_x86_64.whl (455.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

mtlearn-1.0.7-cp310-cp310-macosx_11_0_arm64.whl (425.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

mtlearn-1.0.7-cp39-cp39-win_amd64.whl (500.3 kB view details)

Uploaded CPython 3.9Windows x86-64

mtlearn-1.0.7-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (543.3 kB view details)

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

mtlearn-1.0.7-cp39-cp39-macosx_11_0_x86_64.whl (455.2 kB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

mtlearn-1.0.7-cp39-cp39-macosx_11_0_arm64.whl (426.0 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for mtlearn-1.0.7.tar.gz
Algorithm Hash digest
SHA256 0a12c4a89dfd630760b045ac9a370349da2de7cc81865afa2efadcca24d744a8
MD5 2688a8c31cf33d2cf78f80c6ea7b959a
BLAKE2b-256 f6e19c969afefc5815311100a12997c9fb1196a9b0c803b8680bf2e118031623

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mtlearn-1.0.7-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 c236f7360fa2904bf25692b9ef2af7874150558e408bad6136397aaaf5e71961
MD5 0c4ff1cba10b89a78d557176bcd41510
BLAKE2b-256 fda09b432a199facd71c109a917c47e872b3c11ec197ca607e5c8851beb691d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.7-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ae85d015cc74dab1bfb38b248259ef622bb0c3ec94d9b56df93bf5061054d2c7
MD5 4ebd7e82565950540d5b634d942c95a2
BLAKE2b-256 cfa9b0ac0fb4f57056937c8764d84099ce74530d0db50f8b4b3d2748614e1242

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.7-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 df2dcca0df41bb44e4c7734a03c236f25d6b8f3f33d20ae30430e1324c52dd23
MD5 be805351778d69e590d326cda5c4815e
BLAKE2b-256 7d889299280a15492d8ef0834ede77f76ad56139be8ce065694f53b45eb9e5c2

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mtlearn-1.0.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9516b2218db484654158b8c2b5c97faae5a1f32706d78ae764f3f20be23f0dff
MD5 df047b638d26f0cb6f47d0e487900850
BLAKE2b-256 9cbc8c6e82a0cb6bf09017615dde57027bb169ba88d752f5fab26d60d6019b26

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.7-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 65a2c5fcd7466a14825ad775a75158ad76ae7f64e7f8711cc8a8f106342bc712
MD5 97bb90353ca196f380de28cf0ac2e2f4
BLAKE2b-256 c47668fb413e65982b22d354c530dbd3752519163c01d97cdab85fb3ba1c9c02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.7-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3b8e4f1363d0d3c2fe1ae96f4aff8b72648b7301c1457730c10a01476ac0b3fd
MD5 1dfffe75a0d6078c15b08439ba277ed8
BLAKE2b-256 b305e821f997c9856e49af1fc277ffdcfcb956bbbb0a812a0ef5fbf9d5ec5139

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mtlearn-1.0.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 21b5140cb224fc81fb1d77a443f00a3bbec613ae578738cc8026098c19a5d1b7
MD5 d2c26fe26e97cf03fc1f0aaf5fb31b7a
BLAKE2b-256 7000250d1de22cfc176581ed18837c7a877c33bd3f8516ce7a6fa5155c68ccc2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5ddd04e1c6465631f16dac80ed68c2aff2e594ba59e2c4248393b97a0594b432
MD5 83f14f79ef1fa2bfd895d1ddd5f0ffaa
BLAKE2b-256 e72874922743fb6d919ad0d3535c8d405cc782c14142769db15e9f597cf668e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.7-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 23135af7447193e1261c346289badb04c76675acc8305812ef1234faf0322622
MD5 32e235e58e3e258235376d579a666475
BLAKE2b-256 ab7135301f7595b33dfabc592014393cf86d5eb3f18b0caefc82dbd3ce7e859e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 246558ff0bf499e61f8147376ad703102ca63a1953519a0c038617e57a719d7d
MD5 897cb424ada9ea9212fc6898a09b4014
BLAKE2b-256 a0d31bd5efa21cff154b5f7236c164e194067c73021d17d30987c9c556e107b7

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mtlearn-1.0.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f7b4ecde2bbb05637becddf19912b7211da9e3931007544caa6f2f16cde58480
MD5 027663a7e8f63cac8676acd6850d2b23
BLAKE2b-256 ac609524bed520546c82fc4a2a8ff6c0ea270a45a395e60fceba7883d293bee5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 436f529c36cc8aa3715ef662e4225792dce6c4ef827e7302629ca21343681b95
MD5 c246ae31e46ad3442ff99aac2a847da8
BLAKE2b-256 32a7cae9ff56565c23a272ddcd6ced8cf509e10a4348cc03fd912a57660aaa61

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.7-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 b4fb500b107b3dd9bc7a33302015dda9adae0067adb62e2884f330bc3b4a6559
MD5 f95ebd13a5c99cecad4b272ab3e3fdb7
BLAKE2b-256 7346e771002287add8a85ba3951ed4a3c1e2b9c5d36fd4c586546acc78c3339d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5bb7175c6cfc2bcf168f31ab6cc1610518a2dce7bf739d0d23e4e98d7ef22ccc
MD5 29e3096b781f59bc3f5ca5fd8c49812e
BLAKE2b-256 4092031339f2c1fe715fa01ba1e4e82cf3874e31dfb4fe3a3b6d63c3f729436e

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mtlearn-1.0.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c907d27cf71568938fee4b329c6a3b4bab7bcc480ffe81596bd0027061c75721
MD5 e857173bbd7c620edec1db01581326b2
BLAKE2b-256 52eebc07081c1909bf148b9cf2e5ca65f2a58a43392bcb30ea9e4aa633a75338

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.7-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f640b2d31da4038a3f9fa9888e54dac40ff4dd395e31418d9c8b008d6a2cbb0c
MD5 d7869e3a0ae9600ec155c5d3efb39929
BLAKE2b-256 3640723fc238d6caa8b8eabf6d87fb325553fb48047ad4223194ca3b9c299f5e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.7-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 c4e4e53e9836cb76c74bab495ba8904bd3afae97d32f480c7bc8a02e2a106334
MD5 c57cae2319f8281e1984b25f2f96e112
BLAKE2b-256 31ae91719fcf18d7966dbac9dba6dac3e234eb2f026d5d7403714de0b60893c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.7-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3afb4da9a9a7fc73e9d21a76b412f316c59c087e967ff6bf0afea8c998e6e873
MD5 b6c9bc8aed963f5d83b2d0abb74ce283
BLAKE2b-256 8c8fbccb96f1408c5af6ccc568b85118ebd052402b0cc3a5de6747fb7eb3c792

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mtlearn-1.0.7-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 62bd20b8fc543299aa7b23fb7b816c9284ae624fd772315848986dac31710810
MD5 dac3934cd9af02cd387588ee64835bd5
BLAKE2b-256 06ecc53a12be4253356b336d684109d2c9340ffa8f0f28475396dd2300762a7e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.7-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2667398aaa9b5e59d2c0c9edf2bc4347f66964c679d5262183acfb0fdcf6bef7
MD5 2d018ec6ceeae4040507f73e00ee0dbb
BLAKE2b-256 700132a24d682128ccfcdf45ea0d13063bc9551a99a0499cc8e3196258242ec2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.7-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 4475eb562731579703f0ee7b7374eac7a8825b5702322f3398dd82ab66f607f1
MD5 83913a8b7a9b356d4b9e814909f94422
BLAKE2b-256 725504d6034edfef76d7f9ad83fa83485ff44df364203cf3a02793ca45449b16

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.7-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8a40142e4973a0bc21fce4ce8af6103bd82738673a662e7e5d3a99901bc16258
MD5 41b9dc012d35cae145436ffa827836d6
BLAKE2b-256 e95c9e054d9ed61b17d0ced270b9acd8ab3a02a078f05dc05e64f6edb6a56d95

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