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.8.tar.gz (342.9 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.8-cp314-cp314-win_amd64.whl (529.3 kB view details)

Uploaded CPython 3.14Windows x86-64

mtlearn-1.0.8-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (579.4 kB view details)

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

mtlearn-1.0.8-cp314-cp314-macosx_11_0_arm64.whl (471.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

mtlearn-1.0.8-cp313-cp313-win_amd64.whl (516.9 kB view details)

Uploaded CPython 3.13Windows x86-64

mtlearn-1.0.8-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (579.0 kB view details)

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

mtlearn-1.0.8-cp313-cp313-macosx_11_0_arm64.whl (470.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

mtlearn-1.0.8-cp312-cp312-win_amd64.whl (516.9 kB view details)

Uploaded CPython 3.12Windows x86-64

mtlearn-1.0.8-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (578.9 kB view details)

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

mtlearn-1.0.8-cp312-cp312-macosx_11_0_x86_64.whl (513.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

mtlearn-1.0.8-cp312-cp312-macosx_11_0_arm64.whl (470.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

mtlearn-1.0.8-cp311-cp311-win_amd64.whl (514.9 kB view details)

Uploaded CPython 3.11Windows x86-64

mtlearn-1.0.8-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (581.1 kB view details)

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

mtlearn-1.0.8-cp311-cp311-macosx_11_0_x86_64.whl (510.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

mtlearn-1.0.8-cp311-cp311-macosx_11_0_arm64.whl (469.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

mtlearn-1.0.8-cp310-cp310-win_amd64.whl (514.2 kB view details)

Uploaded CPython 3.10Windows x86-64

mtlearn-1.0.8-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (579.8 kB view details)

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

mtlearn-1.0.8-cp310-cp310-macosx_11_0_x86_64.whl (508.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

mtlearn-1.0.8-cp310-cp310-macosx_11_0_arm64.whl (468.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

mtlearn-1.0.8-cp39-cp39-win_amd64.whl (522.9 kB view details)

Uploaded CPython 3.9Windows x86-64

mtlearn-1.0.8-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (575.6 kB view details)

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

mtlearn-1.0.8-cp39-cp39-macosx_11_0_x86_64.whl (508.7 kB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

mtlearn-1.0.8-cp39-cp39-macosx_11_0_arm64.whl (468.4 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: mtlearn-1.0.8.tar.gz
  • Upload date:
  • Size: 342.9 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.8.tar.gz
Algorithm Hash digest
SHA256 5cdfaf008815267ae9450f1da27f467a11267917740eac8fa5a12d765ee7380e
MD5 785891aa4bb3eb219e7ca55253a5ffc5
BLAKE2b-256 6b9361bc25a6a7ee5c66fbe7f5c369f6ad9bfbdaacf12921e8a4c0155defdd5b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mtlearn-1.0.8-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 529.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.8-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 548fc727064e462d904d8bdc6b15db1167f21f411ecb1fc4697985b4c4b971f3
MD5 8a5c103e1c54c1eb59f1835db4d99813
BLAKE2b-256 1bdc965f77d22c6c10428bd9596eab54e1dc3f708969e30690ded0d82c01c13e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.8-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d1385cfd0e83d13b20e2cdf6be195a55adb9153c6749f9ab5d48fb8ab8ceeb63
MD5 2abe38b49134a88885b0010574e5df5d
BLAKE2b-256 ab2975d88e4ba31a056716d4cedb49077c105ef5a52eea5064907a0579e4c5ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.8-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b04080573f83373129675c1c41012fde9781f9c80efb0fd4f3941536a5c52b92
MD5 ff5e7cc8ac30ce2595ea5e24bfc659ae
BLAKE2b-256 5ad4800f1fe501f25bb295a50dd8212967feb1ac7deafca8a42fcf326c3306c9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mtlearn-1.0.8-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 516.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.8-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7a090281e74aa3394801a6336b3640cc31fb1bd83beae1177d29072ffdc6f045
MD5 15c9e6548bf4364f7ef2bc9c9ad96047
BLAKE2b-256 fbb774ade4fe1c89da5f5cde292c5a17c5312e780bc8209da32856964767cb28

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.8-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c17a5345745a62c2cb5112eac9b087f2b936c72b7deb5632fea5caf115acba0d
MD5 f949e154dbf0979491664fd7a635496c
BLAKE2b-256 b29ac024ed7f7f3c966b8802fe4e026682e358b6bf6eaff6aa64baf06c785d27

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.8-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6432b047f9d42187f56975d00dd9c4137f18db4eb399ad9ed0124d3cff147fef
MD5 2500a5d206e46e7ae3270d614f26fb1a
BLAKE2b-256 49ae4cf72f394bd091746ba57cb0c43c4c135a6d8252d4dfa08515cacac904f1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mtlearn-1.0.8-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 516.9 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.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0b30188621ec23e9a6f9f1414eb76c73315580ac107e9d8dd6b8edf81185ecea
MD5 abf9b1d90d54f0630fc269f88ae6fcb1
BLAKE2b-256 f2fc2f3bfd179b4ca208192ab36edb84d073c9ff85846259cd37012b5163c06f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.8-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9060ad13526540a3842a05576c970e0d6eaa4d3ff88dc36fb12a5e704d4b82f0
MD5 1acb58f652c62077894bc1ea2fd35381
BLAKE2b-256 7d55065618c9f520060071274844b7c4752ec07d2d187dbbbe83540ae90fa9d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.8-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 b42298e9c83d92d13972c1936c286690c86c9a7343c53860b4f389453f64dbe6
MD5 4a3cd8310fa8f42c8407e18b2196bc22
BLAKE2b-256 d42c868d1155a21a110974f9bbb14998e757139c452133b6d238977a727f6f50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b978a8f306d7def15c487e0b926ac6f45f7a02214a3a30980f3ab7020c683ae1
MD5 e4778734d9089c0594558ed4ef05f109
BLAKE2b-256 2fb4488288a75dfed1aaee70f9d9f57c73cb38844e127b81e2bb57c94c6c963c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mtlearn-1.0.8-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 514.9 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.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8f64ad39e5c79dbec5a5b6c56054f5e979811581216e7ff7ac5bc3f1368183a3
MD5 2bac738486560f3782d294652ced4b54
BLAKE2b-256 22dee8ed4d1d25a34ee24de07703366c893aee27162741450f2fb0f23f6da23f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.8-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 97525289ce061e885739dc965f64be70e9ea65a77d1ecc5a2894d4b908e6d87d
MD5 87ad284dcfe22d037c5086f86a8cc223
BLAKE2b-256 316bc216d80dfecef9ea56cd58c086dbd8e552c697c04a2eba12861ef6b2a0f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.8-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 3cd702ecbea33a44f2221df7fe8a530b124048b1d7620e7cac30d871630530e7
MD5 f1be8ac7cc78818f4082b762fd6a2d0e
BLAKE2b-256 b5d5670fc987dad4c562741aa624e8f0201e698d6cce139041d9c11683bb0d2c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6031371588d2d9689a03eedbb43d86dddf2bdf7e262033bfdf2cbb544e9ed5ec
MD5 c70d09dca663f42e3eb4f11391701238
BLAKE2b-256 fdcb9436ae948e02ec9a8bb09c04639202dda35f4a171b477783f0d7fcb6a6cc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mtlearn-1.0.8-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 514.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.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 fc043b00c0663624adde562a43fa4a34745e812523e9b0945c775e683721908a
MD5 f89e633fd794e41bb4ab0a2c3abe1938
BLAKE2b-256 79f3aa99dcba871562f885725adc29a5bec61730cffe9b03666008f5dab7df61

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.8-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0be3e6250b7a05ea976da26906f38a7ec55d48b402e2ff553f5705775411c2e8
MD5 25df9bc9e17031ec80d0043712bc6955
BLAKE2b-256 16c54ff84a7657053b5edf73d49c186553e7631a1be428abe430fd3b0f1c0f0e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.8-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 6cc4a1fd9afe2791fb7811d09453a0cf4345e27a3cddd90bd337e3650ffb225e
MD5 0a9b03f310ed13b11337f076e6f1b651
BLAKE2b-256 ab54086759cc0354bb7d2295b19caaf0ebbeed4aab5e69a051bb65212285a9f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.8-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 109522f044c2ae200212999849d7553138ae6cbf37ac39f0f42f7be94c1fbec1
MD5 7a3ce0a58dfac7987f1ba86f80c1adaa
BLAKE2b-256 d57c70fef89a479911b87730eba02be91480880c9bdbffb0eb1d4d7b46be8028

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mtlearn-1.0.8-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 522.9 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.8-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 7b9ff47e9908b833db02fa76d8016477f7dd0d0b449035eb501c3194cbed3637
MD5 da1a014245b956612bd407523ce4cdce
BLAKE2b-256 58fce730f35f7a4656e1fd173c95e8ffd8996d10e8249365bdea38e6382730a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.8-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ad28686761ff410729327a5804bc8e8550286001fd70814a55cbb6df871265c5
MD5 0ab701069671a14d044c55f4a8ccc482
BLAKE2b-256 d44922e932b9f84c6886a536555beb4976155e792c9835b135da5194e6f1d766

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.8-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 60674aa581ff4b49b6d62f37eb718f9ea8ec4a9ad3c7dc002574acd57c82ffe6
MD5 17cc5dd116d1d42797d85d9a374687b7
BLAKE2b-256 04a61380d567bf36a651419d87aad77b4ff0e490bab0d200d223fcdf1c724846

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mtlearn-1.0.8-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 94c4276b426eef4f1d9a38508657266f43c61d9b3bd2e14694793716cc0681e0
MD5 f929c7580ab04a48e8eb018f5bffc347
BLAKE2b-256 f4b07e9f62a72fba5ce0c4f62f39690d4cff3578f91f368256fe0a319f73dcdf

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