Skip to main content

Methods for pytorch deep learning applications

Project description

pytorch-caney

Python package for lots of Pytorch tools.

DOI CI Workflow CI to DockerHub Code style: PEP8 Code style: black Coverage Status

Documentation

Objectives

  • Library to process remote sensing imagery using GPU and CPU parallelization.
  • Machine Learning and Deep Learning image classification and regression.
  • Agnostic array and vector-like data structures.
  • User interface environments via Notebooks for easy to use AI/ML projects.
  • Example notebooks for quick AI/ML start with your own data.

Installation

The following library is intended to be used to accelerate the development of data science products for remote sensing satellite imagery, or any other applications. pytorch-caney can be installed by itself, but instructions for installing the full environments are listed under the requirements directory so projects, examples, and notebooks can be run.

Note: PIP installations do not include CUDA libraries for GPU support. Make sure NVIDIA libraries are installed locally in the system if not using conda/mamba.

module load singularity # if a module needs to be loaded
singularity build --sandbox pytorch-caney-container docker://nasanccs/pytorch-caney:latest

Why Caney?

"Caney" means longhouse in Taíno.

Contributors

Contributing

Please see our guide for contributing to pytorch-caney.

SatVision

name pretrain resolution #params
SatVision-B MODIS-1.9-M 192x192 84.5M

SatVision Datasets

name bands resolution #chips
MODIS-Small 7 128x128 1,994,131

Pre-training with Masked Image Modeling

To pre-train the swinv2 base model with masked image modeling pre-training, run:

torchrun --nproc_per_node <NGPUS> pytorch-caney/pytorch_caney/pipelines/pretraining/mim.py --cfg <config-file> --dataset <dataset-name> --data-paths <path-to-data-subfolder-1> --batch-size <batch-size> --output <output-dir> --enable-amp

For example to run on a compute node with 4 GPUs and a batch size of 128 on the MODIS SatVision pre-training dataset with a base swinv2 model, run:

singularity shell --nv -B <mounts> /path/to/container/pytorch-caney-container
Singularity> export PYTHONPATH=$PWD:$PWD/pytorch-caney
Singularity> torchrun --nproc_per_node 4 pytorch-caney/pytorch_caney/pipelines/pretraining/mim.py --cfg pytorch-caney/examples/satvision/mim_pretrain_swinv2_satvision_base_192_window12_800ep.yaml --dataset MODIS --data-paths /explore/nobackup/projects/ilab/data/satvision/pretraining/training_* --batch-size 128 --output . --enable-amp

This example script runs the exact configuration used to make the SatVision-base model pre-training with MiM and the MODIS pre-training dataset.

singularity shell --nv -B <mounts> /path/to/container/pytorch-caney-container
Singularity> cd pytorch-caney/examples/satvision
Singularity> ./run_satvision_pretrain.sh

Fine-tuning Satvision-base

To fine-tune the satvision-base pre-trained model, run:

torchrun --nproc_per_node <NGPUS> pytorch-caney/pytorch_caney/pipelines/finetuning/finetune.py --cfg <config-file> --pretrained <path-to-pretrained> --dataset <dataset-name> --data-paths <path-to-data-subfolder-1> --batch-size <batch-size> --output <output-dir> --enable-amp

See example config files pytorch-caney/examples/satvision/finetune_satvision_base_*.yaml to see how to structure your config file for fine-tuning.

Testing

For unittests, run this bash command to run linting and unit test runs. This will execute unit tests and linting in a temporary venv environment only used for testing.

git clone git@github.com:nasa-nccs-hpda/pytorch-caney.git
cd pytorch-caney; bash test.sh

or run unit tests directly with container or anaconda env

git clone git@github.com:nasa-nccs-hpda/pytorch-caney.git
singularity build --sandbox pytorch-caney-container docker://nasanccs/pytorch-caney:latest
singularity shell --nv -B <mounts> /path/to/container/pytorch-caney-container
cd pytorch-caney; python -m unittest discover pytorch_caney/tests
git clone git@github.com:nasa-nccs-hpda/pytorch-caney.git
cd pytorch-caney; conda env create -f requirements/environment_gpu.yml;
conda activate pytorch-caney
python -m unittest discover pytorch_caney/tests

References

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

pytorch-caney-0.1.0.tar.gz (33.5 kB view details)

Uploaded Source

Built Distribution

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

pytorch_caney-0.1.0-py3-none-any.whl (37.8 kB view details)

Uploaded Python 3

File details

Details for the file pytorch-caney-0.1.0.tar.gz.

File metadata

  • Download URL: pytorch-caney-0.1.0.tar.gz
  • Upload date:
  • Size: 33.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for pytorch-caney-0.1.0.tar.gz
Algorithm Hash digest
SHA256 99e00d8b96e513d24744160553cd7e70e351ff5d6131a60e09d82713c5cbd7a7
MD5 5b40f6986b64e2dd920d2ec616f15726
BLAKE2b-256 9bcb7558ac22c1aca9eda92a74fcb8fc762630758b24ed9d28e852b0ecbcd594

See more details on using hashes here.

File details

Details for the file pytorch_caney-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pytorch_caney-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 37.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for pytorch_caney-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4d8f96165595a557f0f477d85ae70bf95420b28b7e574ac9bc6e514df96a3abc
MD5 6114e363563baccbabb322ed50b67ac6
BLAKE2b-256 a4b9a6122a4d9a594dde3afb3895df23719528b6231cd0c86724387e56625fd8

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