Skip to main content

Deep Multiple Instance Learning library for Pytorch

Project description

torchmil

License Contributors Release

torchmil is a PyTorch-based library for deep Multiple Instance Learning (MIL). It provides a simple, flexible, and extensible framework for working with MIL models and data.

It includes:

Installation

pip install torchmil

Quick start

You can load a MIL dataset and train a MIL model in just a few lines of code:

from torchmil.datasets import Camelyon16MIL
from torchmil.models import ABMIL
from torchmil.utils import Trainer
from torchmil.data import collate_fn
from torch.utils.data import DataLoader

# Load the Camelyon16 dataset
dataset = Camelyon16MIL(root='data', features='UNI')
dataloader = DataLoader(dataset, batch_size=4, shuffle=True, collate_fn=collate_fn)

# Instantiate the ABMIL model and optimizer
model = ABMIL(in_shape=(2048,), criterion=torch.nn.BCEWithLogitsLoss()) # each model has its own criterion
optimizer = torch.optim.Adam(model.parameters(), lr=1e-4)

# Instantiate the Trainer
trainer = Trainer(model, optimizer, device='cuda')

# Train the model
trainer.train(dataloader, epochs=10)

# Save the model
torch.save(model.state_dict(), 'model.pth')

Next steps

You can take a look at the examples to see how to use torchmil in practice. To see the full list of available models, datasets, and modules, check the API reference.

Contributing to torchmil

We welcome contributions to torchmil! There several ways you can contribute:

  • Reporting bugs or issues you encounter while using the library, asking questions, or requesting new features: use the Github issues.
  • Improving the documentation: if you find any part of the documentation unclear or incomplete, feel free to submit a pull request with improvements.
  • If you have a new model, dataset, or utility that you think would be useful for the community, please consider submitting a pull request to add it to the library.

Take a look at CONTRIBUTING.md for more details on how to contribute.

Citation

If you find this library useful, please consider citing it:

@misc{torchmil,
  author = {Castro-Mac{\'\i}as, Francisco M and S{\'a}ez-Maldonado, Francisco Javier and Morales Alvarez, Pablo and Molina, Rafael},
  title = {torchmil: A PyTorch-based library for deep Multiple Instance Learning},
  year = {2025},
  howpublished = {\url{https://franblueee.github.io/torchmil/}}
}

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

torchmil-1.0.0.tar.gz (127.9 kB view details)

Uploaded Source

Built Distribution

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

torchmil-1.0.0-py3-none-any.whl (202.7 kB view details)

Uploaded Python 3

File details

Details for the file torchmil-1.0.0.tar.gz.

File metadata

  • Download URL: torchmil-1.0.0.tar.gz
  • Upload date:
  • Size: 127.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for torchmil-1.0.0.tar.gz
Algorithm Hash digest
SHA256 c9e8de67861dde74c29ee74e8be3537b2ef793166e39cd7fad5d1cb3732e8a19
MD5 c9a2d32b4c5a090a9b3e1de9f821be35
BLAKE2b-256 1204af836a5f365e829eaf849f75131a87d6088032893bc35dc6d52de9728e6f

See more details on using hashes here.

File details

Details for the file torchmil-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: torchmil-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 202.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for torchmil-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f05c34d516a9edec78abd8fde2d0755de89b4e3d0fc8e31adaae6e24c6901ab3
MD5 6197ab52a5dd9ddc9aab4f59fab5f549
BLAKE2b-256 1defc786e4572f64a0f7d49007035f68af75620de1b9e784acf14c250e93f805

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