Skip to main content

A Pytorch lightning framework for streaming CNN's

Project description

Lightstream

Lightstream is a Pytorch library to train CNN's with large input images. Parsing large inputs is achieved through a combination of gradient checkpointing and tiling the input image. For a full overview of the streaming algorithm, please read the article:

[1] H. Pinckaers, B. van Ginneken and G. Litjens, "Streaming convolutional neural networks for end-to-end learning with multi-megapixel images," in IEEE Transactions on Pattern Analysis and Machine Intelligence, doi: 10.1109/TPAMI.2020.3019563

Installation

The lightstream repository can be installed using pip, or you can alternatively clone the git repository and build the wheel.

pip install lightstream

We also recommend to install the albumentationsxl package, which is an albumentations fork with a pyvips backend to preprocess large images

pip install albumentationsxl

Requirements

The lightstream package requires PyTorch version 2.0 or greater to be installed, along with Pytorch lightning version 2.0.0 or greater.

  • PyTorch 2.0.0 or greater
  • Pytorch Lightning 2.0.0 or greater
  • Albumentationsxl (recommended) Furthermore, we recommend a GPU with at least 10 GB of VRAM, and a system with at least 32 GB of RAM.

Using lightstream with pre-trained networks

lightstream offers several out-of-the-box streaming equivalents of ImageNet classifiers. Currently ResNet and ConvNext architectures are supported

import torch.nn
from lightstream.models.resnet.resnet import StreamingResNet

model = StreamingResNet(model_name="resnet18", tile_size=2880, loss_fn=torch.nn.CrossEntropyLoss(), train_streaming_layers=True)

Documentation

The documentation can be found at https://diagnijmegen.github.io/lightstream/

Alternatively the documentation can be generated locally using

make docs

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

lightstream-0.0.1.tar.gz (2.0 MB view details)

Uploaded Source

Built Distribution

lightstream-0.0.1-py3-none-any.whl (29.6 kB view details)

Uploaded Python 3

File details

Details for the file lightstream-0.0.1.tar.gz.

File metadata

  • Download URL: lightstream-0.0.1.tar.gz
  • Upload date:
  • Size: 2.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.3

File hashes

Hashes for lightstream-0.0.1.tar.gz
Algorithm Hash digest
SHA256 905452792b1644ef02e9d370d7f2bd16af5e0daf6ad2e75aae75784a670e74ba
MD5 d0fcbd3c82577a2b20d537dead85d65a
BLAKE2b-256 5e2398637c9d0a8db0ede7d61827f8ad93e48e49a22d1600fb1963449c486b53

See more details on using hashes here.

File details

Details for the file lightstream-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: lightstream-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 29.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.3

File hashes

Hashes for lightstream-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7e3e9f6dcf6b2484e68c880bf50ce01964289ffcb86984ecd0016829c08ec573
MD5 da3dc1ad3b83e652d904b65b0f76b59c
BLAKE2b-256 24d0372612ad00685e9e8e319546dd962000a73ea0d84f45ca459cdf9e79307a

See more details on using hashes here.

Supported by

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