Skip to main content

Image Classifier optimised for ecology use-cases

Project description

Lit Ecology Classifier

Documentation: https://lit-ecology-classifier.readthedocs.io/en/latest/ Lit Ecology Classifier is a machine learning project designed for image classification tasks. It leverages PyTorch Lightning for streamlined training and evaluation processes.

Features

  • Easy configuration and setup
  • Utilizes PyTorch Lightning for robust training and evaluation
  • Supports training on multiple GPUs
  • Test Time Augmentation (TTA) for enhanced evaluation
  • Integration with Weights and Biases for experiment tracking

Installation

To install Lit Ecology Classifier, use pip:

pip install lit-ecology-classifier

Usage

Training

To train the model, use the following command:

python -m lit_ecology_classifier.main --max_epochs 20 --dataset phyto --priority config/priority.json

Inference

To run inference on unlabelled data, use the following command:

python -m lit_ecology_classifier.predict --datapath /path/to/data.tar --model_path /path/to/model.ckpt --outpath ./predictions/

Configuration

The project uses an argument parser for configuration. Here are some of the key arguments:

Training Arguments

  • --datapath: Path to the tar file containing the training data.
  • --train_outpath: Output path for training artifacts.
  • --main_param_path: Main directory where the training parameters are saved.
  • --dataset: Name of the dataset.
  • --use_wandb: Use Weights and Biases for logging.
  • --priority_classes: Path to the JSON file with priority classes.
  • --balance_classes: Balance the classes for training.
  • --batch_size: Batch size for training.
  • --max_epochs: Number of epochs to train.
  • --lr: Learning rate for training.
  • --lr_factor: Learning rate factor for training of full body.
  • --no_gpu: Use no GPU for training.

Inference Arguments

  • --outpath: Directory where predictions are saved.
  • --model_path: Path to the model file.
  • --datapath: Path to the tar file containing the data to classify.
  • --no_gpu: Use no GPU for inference.
  • --no_TTA: Disable test-time augmentation.

Documentation

Detailed documentation for this project is available at Read the Docs.

Example SLURM Job Submission Script

Here is an example SLURM job submission script for training on multiple GPUs:

#!/bin/bash
#SBATCH --account="em09"
#SBATCH --constraint='gpu'
#SBATCH --nodes=2
#SBATCH --ntasks-per-core=1
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=12
#SBATCH --partition=normal
#SBATCH --constraint=gpu
#SBATCH --hint=nomultithread
#SBATCH --output=slurm/slurm_%j.out
#SBATCH --error=slurm/slurm_%j.err
export OMP_NUM_THREADS=12 #$SLURM_CPUS_PER_TASK
cd ${SCRATCH}/lit_ecology_classifier
module purge
module load daint-gpu cray-python
source lit_ecology/bin/activate
python -m lit_ecology_classifier.main --max_epochs 2 --dataset phyto --priority config/priority.json

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

lit_ecology_classifier-0.2.2.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

lit_ecology_classifier-0.2.2-py3-none-any.whl (20.3 kB view details)

Uploaded Python 3

File details

Details for the file lit_ecology_classifier-0.2.2.tar.gz.

File metadata

File hashes

Hashes for lit_ecology_classifier-0.2.2.tar.gz
Algorithm Hash digest
SHA256 73376d3e531ed15cbcbbf754dc8168ddbfa4899f97c0ba29b55554bffbe50203
MD5 2bd6bfb2cd2fcd80f3edb515d4651c98
BLAKE2b-256 f97d2c2b48094df89cd11c46cc0fcf41f9a5d27bc2340a30f6784baed0e9af45

See more details on using hashes here.

File details

Details for the file lit_ecology_classifier-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for lit_ecology_classifier-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 282f655f864fa6646b976bb8bbd7a976c6f4148096b3f7de5dda49fddfd22133
MD5 d072a7d60218ca9cd3cbb459922490de
BLAKE2b-256 5ff48919a4f37a349f232d3c380b39f989d113807b6eeab287cfb2469158c50f

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