%global _empty_manifest_terminate_build 0 Name: python-pytorch-lightning Version: 2.0.1 Release: 1 Summary: PyTorch Lightning is the lightweight PyTorch wrapper for ML researchers. Scale your models. Write less boilerplate. License: Apache-2.0 URL: https://github.com/Lightning-AI/lightning Source0: https://mirrors.nju.edu.cn/pypi/web/packages/a4/f6/c5a1a9b7513ea20ef7b32758eeb3ae84b13e355f14e5a002bd2db5cb06ec/pytorch-lightning-2.0.1.tar.gz BuildArch: noarch Requires: python3-numpy Requires: python3-torch Requires: python3-tqdm Requires: python3-PyYAML Requires: python3-fsspec[http] Requires: python3-torchmetrics Requires: python3-packaging Requires: python3-typing-extensions Requires: python3-lightning-utilities Requires: python3-matplotlib Requires: python3-omegaconf Requires: python3-hydra-core Requires: python3-jsonargparse[signatures] Requires: python3-rich Requires: python3-tensorboardX Requires: python3-deepspeed Requires: python3-torchvision Requires: python3-gym[classic_control] Requires: python3-ipython[all] Requires: python3-torchmetrics Requires: python3-lightning-utilities Requires: python3-deepspeed Requires: python3-matplotlib Requires: python3-omegaconf Requires: python3-hydra-core Requires: python3-jsonargparse[signatures] Requires: python3-rich Requires: python3-tensorboardX Requires: python3-deepspeed Requires: python3-torchvision Requires: python3-gym[classic_control] Requires: python3-ipython[all] Requires: python3-torchmetrics Requires: python3-lightning-utilities Requires: python3-coverage Requires: python3-codecov Requires: python3-pytest Requires: python3-pytest-cov Requires: python3-pytest-forked Requires: python3-pytest-rerunfailures Requires: python3-cloudpickle Requires: python3-scikit-learn Requires: python3-onnx Requires: python3-onnxruntime Requires: python3-psutil Requires: python3-pandas Requires: python3-fastapi Requires: python3-uvicorn Requires: python3-tensorboard Requires: python3-protobuf Requires: python3-torchvision Requires: python3-gym[classic_control] Requires: python3-ipython[all] Requires: python3-torchmetrics Requires: python3-lightning-utilities Requires: python3-matplotlib Requires: python3-omegaconf Requires: python3-hydra-core Requires: python3-jsonargparse[signatures] Requires: python3-rich Requires: python3-tensorboardX Requires: python3-deepspeed Requires: python3-coverage Requires: python3-codecov Requires: python3-pytest Requires: python3-pytest-cov Requires: python3-pytest-forked Requires: python3-pytest-rerunfailures Requires: python3-cloudpickle Requires: python3-scikit-learn Requires: python3-onnx Requires: python3-onnxruntime Requires: python3-psutil Requires: python3-pandas Requires: python3-fastapi Requires: python3-uvicorn Requires: python3-tensorboard Requires: python3-protobuf %description
**The lightweight PyTorch wrapper for high-performance AI research. Scale your models, not the boilerplate.** ______________________________________________________________________

WebsiteKey FeaturesHow To UseDocsExamplesCommunityLightning AILicense

[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pytorch-lightning)](https://pypi.org/project/pytorch-lightning/) [![PyPI Status](https://badge.fury.io/py/pytorch-lightning.svg)](https://badge.fury.io/py/pytorch-lightning) [![PyPI Status](https://pepy.tech/badge/pytorch-lightning)](https://pepy.tech/project/pytorch-lightning) [![Conda](https://img.shields.io/conda/v/conda-forge/pytorch-lightning?label=conda&color=success)](https://anaconda.org/conda-forge/pytorch-lightning) [![DockerHub](https://img.shields.io/docker/pulls/pytorchlightning/pytorch_lightning.svg)](https://hub.docker.com/r/pytorchlightning/pytorch_lightning) [![codecov](https://codecov.io/gh/Lightning-AI/lightning/release/2.0.1/graph/badge.svg)](https://codecov.io/gh/Lightning-AI/lightning) [![ReadTheDocs](https://readthedocs.org/projects/pytorch-lightning/badge/?version=2.0.1)](https://lightning.ai/docs/pytorch/stable/)[![Discord](https://img.shields.io/discord/1077906959069626439?style=plastic)](https://discord.gg/VptPCZkGNa) [![license](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/Lightning-AI/lightning/blob/master/LICENSE)
###### \*Codecov is > 90%+ but build delays may show less ______________________________________________________________________ ## PyTorch Lightning is just organized PyTorch Lightning disentangles PyTorch code to decouple the science from the engineering. ![PT to PL](../../https://github.com/Lightning-AI/lightning/raw/2.0.1/docs/source-app/_static/images/general/pl_quick_start_full_compressed.gif) ______________________________________________________________________ ## Lightning Design Philosophy Lightning structures PyTorch code with these principles:
Lightning forces the following structure to your code which makes it reusable and shareable: - Research code (the LightningModule). - Engineering code (you delete, and is handled by the Trainer). - Non-essential research code (logging, etc... this goes in Callbacks). - Data (use PyTorch DataLoaders or organize them into a LightningDataModule). Once you do this, you can train on multiple-GPUs, TPUs, CPUs, IPUs, HPUs and even in 16-bit precision without changing your code! [Get started in just 15 minutes](https://lightning.ai/docs/pytorch/latest/starter/introduction.html) ______________________________________________________________________ ## Continuous Integration Lightning is rigorously tested across multiple CPUs, GPUs, TPUs, IPUs, and HPUs and against major Python and PyTorch versions.
Current build statuses
| System / PyTorch ver. | 1.11 | 1.12 | 1.13 | 2.0 | | :--------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | | Linux py3.9 \[GPUs\] | - | [![Build Status]()](https://dev.azure.com/Lightning-AI/lightning/_build/latest?definitionId=24&branchName=master) | [![Build Status]()](https://dev.azure.com/Lightning-AI/lightning/_build/latest?definitionId=24&branchName=master) | Soon | | Linux py3.9 \[TPUs\] | - | [![Test PyTorch - TPU](https://github.com/Lightning-AI/lightning/actions/workflows/tpu-tests.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/tpu-tests.yml) | | Soon | | Linux py3.8 \[IPUs\] | - | - | [![Build Status]()](https://dev.azure.com/Lightning-AI/lightning/_build/latest?definitionId=25&branchName=master) | Soon | | Linux py3.8 \[HPUs\] | - | - | [![Build Status]()](https://dev.azure.com/Lightning-AI/lightning/_build/latest?definitionId=26&branchName=master) | Soon | | Linux (multiple Python versions) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | Soon | | OSX (multiple Python versions) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | Soon | | Windows (multiple Python versions) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | Soon |
______________________________________________________________________ ## How To Use ### Step 0: Install Simple installation from PyPI ```bash pip install pytorch-lightning ``` ### Step 1: Add these imports ```python import os import torch from torch import nn import torch.nn.functional as F from torchvision.datasets import MNIST from torch.utils.data import DataLoader, random_split from torchvision import transforms import pytorch_lightning as pl ``` ### Step 2: Define a LightningModule (nn.Module subclass) A LightningModule defines a full *system* (ie: a GAN, autoencoder, BERT or a simple Image Classifier). ```python class LitAutoEncoder(pl.LightningModule): def __init__(self): super().__init__() self.encoder = nn.Sequential(nn.Linear(28 * 28, 128), nn.ReLU(), nn.Linear(128, 3)) self.decoder = nn.Sequential(nn.Linear(3, 128), nn.ReLU(), nn.Linear(128, 28 * 28)) def forward(self, x): # in lightning, forward defines the prediction/inference actions embedding = self.encoder(x) return embedding def training_step(self, batch, batch_idx): # training_step defines the train loop. It is independent of forward x, y = batch x = x.view(x.size(0), -1) z = self.encoder(x) x_hat = self.decoder(z) loss = F.mse_loss(x_hat, x) self.log("train_loss", loss) return loss def configure_optimizers(self): optimizer = torch.optim.Adam(self.parameters(), lr=1e-3) return optimizer ``` **Note: Training_step defines the training loop. Forward defines how the LightningModule behaves during inference/prediction.** ### Step 3: Train! ```python dataset = MNIST(os.getcwd(), download=True, transform=transforms.ToTensor()) train, val = random_split(dataset, [55000, 5000]) autoencoder = LitAutoEncoder() trainer = pl.Trainer() trainer.fit(autoencoder, DataLoader(train), DataLoader(val)) ``` ## Advanced features Lightning has over [40+ advanced features](https://lightning.ai/docs/pytorch/latest/common/trainer.html#trainer-flags) designed for professional AI research at scale. Here are some examples:
Highlighted feature code snippets ```python # 8 GPUs # no code changes needed trainer = Trainer(max_epochs=1, accelerator="gpu", devices=8) # 256 GPUs trainer = Trainer(max_epochs=1, accelerator="gpu", devices=8, num_nodes=32) ``` Train on TPUs without code changes ```python # no code changes needed trainer = Trainer(accelerator="tpu", devices=8) ``` 16-bit precision ```python # no code changes needed trainer = Trainer(precision=16) ``` Experiment managers ```python from pytorch_lightning import loggers # tensorboard trainer = Trainer(logger=TensorBoardLogger("logs/")) # weights and biases trainer = Trainer(logger=loggers.WandbLogger()) # comet trainer = Trainer(logger=loggers.CometLogger()) # mlflow trainer = Trainer(logger=loggers.MLFlowLogger()) # neptune trainer = Trainer(logger=loggers.NeptuneLogger()) # ... and dozens more ``` EarlyStopping ```python es = EarlyStopping(monitor="val_loss") trainer = Trainer(callbacks=[es]) ``` Checkpointing ```python checkpointing = ModelCheckpoint(monitor="val_loss") trainer = Trainer(callbacks=[checkpointing]) ``` Export to torchscript (JIT) (production use) ```python # torchscript autoencoder = LitAutoEncoder() torch.jit.save(autoencoder.to_torchscript(), "model.pt") ``` Export to ONNX (production use) ```python autoencoder = LitAutoEncoder() input_sample = torch.randn((1, 64)) with tempfile.NamedTemporaryFile(suffix=".onnx", delete=False) as tmpfile: autoencoder.to_onnx(tmpfile.name, input_sample, export_params=True) ```
### Pro-level control of optimization (advanced users) For complex/professional level work, you have optional full control of the optimizers. ```python class LitAutoEncoder(pl.LightningModule): def __init__(self): super().__init__() self.automatic_optimization = False def training_step(self, batch, batch_idx): # access your optimizers with use_pl_optimizer=False. Default is True opt_a, opt_b = self.optimizers(use_pl_optimizer=True) loss_a = ... self.manual_backward(loss_a, opt_a) opt_a.step() opt_a.zero_grad() loss_b = ... self.manual_backward(loss_b, opt_b, retain_graph=True) self.manual_backward(loss_b, opt_b) opt_b.step() opt_b.zero_grad() ``` ______________________________________________________________________ ## Advantages over unstructured PyTorch - Models become hardware agnostic - Code is clear to read because engineering code is abstracted away - Easier to reproduce - Make fewer mistakes because lightning handles the tricky engineering - Keeps all the flexibility (LightningModules are still PyTorch modules), but removes a ton of boilerplate - Lightning has dozens of integrations with popular machine learning tools. - [Tested rigorously with every new PR](https://github.com/Lightning-AI/lightning/tree/master/tests). We test every combination of PyTorch and Python supported versions, every OS, multi GPUs and even TPUs. - Minimal running speed overhead (about 300 ms per epoch compared with pure PyTorch). ______________________________________________________________________ ## Examples ###### Self-supervised Learning - [CPC transforms](https://lightning-bolts.readthedocs.io/en/stable/transforms/self_supervised.html#cpc-transforms) - [Moco v2 tranforms](https://lightning-bolts.readthedocs.io/en/stable/transforms/self_supervised.html#moco-v2-transforms) - [SimCLR transforms](https://lightning-bolts.readthedocs.io/en/stable/transforms/self_supervised.html#simclr-transforms) ###### Convolutional Architectures - [GPT-2](https://lightning-bolts.readthedocs.io/en/stable/models/convolutional.html#gpt-2) - [UNet](https://lightning-bolts.readthedocs.io/en/stable/models/convolutional.html#unet) ###### Reinforcement Learning - [DQN Loss](https://lightning-bolts.readthedocs.io/en/stable/losses.html#dqn-loss) - [Double DQN Loss](https://lightning-bolts.readthedocs.io/en/stable/losses.html#double-dqn-loss) - [Per DQN Loss](https://lightning-bolts.readthedocs.io/en/stable/losses.html#per-dqn-loss) ###### GANs - [Basic GAN](https://lightning-bolts.readthedocs.io/en/stable/models/gans.html#basic-gan) - [DCGAN](https://lightning-bolts.readthedocs.io/en/stable/models/gans.html#dcgan) ###### Classic ML - [Logistic Regression](https://lightning-bolts.readthedocs.io/en/stable/models/classic_ml.html#logistic-regression) - [Linear Regression](https://lightning-bolts.readthedocs.io/en/stable/models/classic_ml.html#linear-regression) ______________________________________________________________________ ## Community The PyTorch Lightning community is maintained by - [10+ core contributors](https://lightning.ai/docs/pytorch/latest/governance.html) who are all a mix of professional engineers, Research Scientists, and Ph.D. students from top AI labs. - 680+ active community contributors. Want to help us build Lightning and reduce boilerplate for thousands of researchers? [Learn how to make your first contribution here](https://devblog.pytorchlightning.ai/quick-contribution-guide-86d977171b3a) PyTorch Lightning is also part of the [PyTorch ecosystem](https://pytorch.org/ecosystem/) which requires projects to have solid testing, documentation and support. ### Asking for help If you have any questions please: 1. [Read the docs](https://lightning.ai/docs/pytorch/latest). 1. [Search through existing Discussions](https://github.com/Lightning-AI/lightning/discussions), or [add a new question](https://github.com/Lightning-AI/lightning/discussions/new) 1. [Join our Discord community](https://discord.gg/VptPCZkGNa). %package -n python3-pytorch-lightning Summary: PyTorch Lightning is the lightweight PyTorch wrapper for ML researchers. Scale your models. Write less boilerplate. Provides: python-pytorch-lightning BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-pytorch-lightning
**The lightweight PyTorch wrapper for high-performance AI research. Scale your models, not the boilerplate.** ______________________________________________________________________

WebsiteKey FeaturesHow To UseDocsExamplesCommunityLightning AILicense

[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pytorch-lightning)](https://pypi.org/project/pytorch-lightning/) [![PyPI Status](https://badge.fury.io/py/pytorch-lightning.svg)](https://badge.fury.io/py/pytorch-lightning) [![PyPI Status](https://pepy.tech/badge/pytorch-lightning)](https://pepy.tech/project/pytorch-lightning) [![Conda](https://img.shields.io/conda/v/conda-forge/pytorch-lightning?label=conda&color=success)](https://anaconda.org/conda-forge/pytorch-lightning) [![DockerHub](https://img.shields.io/docker/pulls/pytorchlightning/pytorch_lightning.svg)](https://hub.docker.com/r/pytorchlightning/pytorch_lightning) [![codecov](https://codecov.io/gh/Lightning-AI/lightning/release/2.0.1/graph/badge.svg)](https://codecov.io/gh/Lightning-AI/lightning) [![ReadTheDocs](https://readthedocs.org/projects/pytorch-lightning/badge/?version=2.0.1)](https://lightning.ai/docs/pytorch/stable/)[![Discord](https://img.shields.io/discord/1077906959069626439?style=plastic)](https://discord.gg/VptPCZkGNa) [![license](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/Lightning-AI/lightning/blob/master/LICENSE)
###### \*Codecov is > 90%+ but build delays may show less ______________________________________________________________________ ## PyTorch Lightning is just organized PyTorch Lightning disentangles PyTorch code to decouple the science from the engineering. ![PT to PL](../../https://github.com/Lightning-AI/lightning/raw/2.0.1/docs/source-app/_static/images/general/pl_quick_start_full_compressed.gif) ______________________________________________________________________ ## Lightning Design Philosophy Lightning structures PyTorch code with these principles:
Lightning forces the following structure to your code which makes it reusable and shareable: - Research code (the LightningModule). - Engineering code (you delete, and is handled by the Trainer). - Non-essential research code (logging, etc... this goes in Callbacks). - Data (use PyTorch DataLoaders or organize them into a LightningDataModule). Once you do this, you can train on multiple-GPUs, TPUs, CPUs, IPUs, HPUs and even in 16-bit precision without changing your code! [Get started in just 15 minutes](https://lightning.ai/docs/pytorch/latest/starter/introduction.html) ______________________________________________________________________ ## Continuous Integration Lightning is rigorously tested across multiple CPUs, GPUs, TPUs, IPUs, and HPUs and against major Python and PyTorch versions.
Current build statuses
| System / PyTorch ver. | 1.11 | 1.12 | 1.13 | 2.0 | | :--------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | | Linux py3.9 \[GPUs\] | - | [![Build Status]()](https://dev.azure.com/Lightning-AI/lightning/_build/latest?definitionId=24&branchName=master) | [![Build Status]()](https://dev.azure.com/Lightning-AI/lightning/_build/latest?definitionId=24&branchName=master) | Soon | | Linux py3.9 \[TPUs\] | - | [![Test PyTorch - TPU](https://github.com/Lightning-AI/lightning/actions/workflows/tpu-tests.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/tpu-tests.yml) | | Soon | | Linux py3.8 \[IPUs\] | - | - | [![Build Status]()](https://dev.azure.com/Lightning-AI/lightning/_build/latest?definitionId=25&branchName=master) | Soon | | Linux py3.8 \[HPUs\] | - | - | [![Build Status]()](https://dev.azure.com/Lightning-AI/lightning/_build/latest?definitionId=26&branchName=master) | Soon | | Linux (multiple Python versions) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | Soon | | OSX (multiple Python versions) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | Soon | | Windows (multiple Python versions) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | Soon |
______________________________________________________________________ ## How To Use ### Step 0: Install Simple installation from PyPI ```bash pip install pytorch-lightning ``` ### Step 1: Add these imports ```python import os import torch from torch import nn import torch.nn.functional as F from torchvision.datasets import MNIST from torch.utils.data import DataLoader, random_split from torchvision import transforms import pytorch_lightning as pl ``` ### Step 2: Define a LightningModule (nn.Module subclass) A LightningModule defines a full *system* (ie: a GAN, autoencoder, BERT or a simple Image Classifier). ```python class LitAutoEncoder(pl.LightningModule): def __init__(self): super().__init__() self.encoder = nn.Sequential(nn.Linear(28 * 28, 128), nn.ReLU(), nn.Linear(128, 3)) self.decoder = nn.Sequential(nn.Linear(3, 128), nn.ReLU(), nn.Linear(128, 28 * 28)) def forward(self, x): # in lightning, forward defines the prediction/inference actions embedding = self.encoder(x) return embedding def training_step(self, batch, batch_idx): # training_step defines the train loop. It is independent of forward x, y = batch x = x.view(x.size(0), -1) z = self.encoder(x) x_hat = self.decoder(z) loss = F.mse_loss(x_hat, x) self.log("train_loss", loss) return loss def configure_optimizers(self): optimizer = torch.optim.Adam(self.parameters(), lr=1e-3) return optimizer ``` **Note: Training_step defines the training loop. Forward defines how the LightningModule behaves during inference/prediction.** ### Step 3: Train! ```python dataset = MNIST(os.getcwd(), download=True, transform=transforms.ToTensor()) train, val = random_split(dataset, [55000, 5000]) autoencoder = LitAutoEncoder() trainer = pl.Trainer() trainer.fit(autoencoder, DataLoader(train), DataLoader(val)) ``` ## Advanced features Lightning has over [40+ advanced features](https://lightning.ai/docs/pytorch/latest/common/trainer.html#trainer-flags) designed for professional AI research at scale. Here are some examples:
Highlighted feature code snippets ```python # 8 GPUs # no code changes needed trainer = Trainer(max_epochs=1, accelerator="gpu", devices=8) # 256 GPUs trainer = Trainer(max_epochs=1, accelerator="gpu", devices=8, num_nodes=32) ``` Train on TPUs without code changes ```python # no code changes needed trainer = Trainer(accelerator="tpu", devices=8) ``` 16-bit precision ```python # no code changes needed trainer = Trainer(precision=16) ``` Experiment managers ```python from pytorch_lightning import loggers # tensorboard trainer = Trainer(logger=TensorBoardLogger("logs/")) # weights and biases trainer = Trainer(logger=loggers.WandbLogger()) # comet trainer = Trainer(logger=loggers.CometLogger()) # mlflow trainer = Trainer(logger=loggers.MLFlowLogger()) # neptune trainer = Trainer(logger=loggers.NeptuneLogger()) # ... and dozens more ``` EarlyStopping ```python es = EarlyStopping(monitor="val_loss") trainer = Trainer(callbacks=[es]) ``` Checkpointing ```python checkpointing = ModelCheckpoint(monitor="val_loss") trainer = Trainer(callbacks=[checkpointing]) ``` Export to torchscript (JIT) (production use) ```python # torchscript autoencoder = LitAutoEncoder() torch.jit.save(autoencoder.to_torchscript(), "model.pt") ``` Export to ONNX (production use) ```python autoencoder = LitAutoEncoder() input_sample = torch.randn((1, 64)) with tempfile.NamedTemporaryFile(suffix=".onnx", delete=False) as tmpfile: autoencoder.to_onnx(tmpfile.name, input_sample, export_params=True) ```
### Pro-level control of optimization (advanced users) For complex/professional level work, you have optional full control of the optimizers. ```python class LitAutoEncoder(pl.LightningModule): def __init__(self): super().__init__() self.automatic_optimization = False def training_step(self, batch, batch_idx): # access your optimizers with use_pl_optimizer=False. Default is True opt_a, opt_b = self.optimizers(use_pl_optimizer=True) loss_a = ... self.manual_backward(loss_a, opt_a) opt_a.step() opt_a.zero_grad() loss_b = ... self.manual_backward(loss_b, opt_b, retain_graph=True) self.manual_backward(loss_b, opt_b) opt_b.step() opt_b.zero_grad() ``` ______________________________________________________________________ ## Advantages over unstructured PyTorch - Models become hardware agnostic - Code is clear to read because engineering code is abstracted away - Easier to reproduce - Make fewer mistakes because lightning handles the tricky engineering - Keeps all the flexibility (LightningModules are still PyTorch modules), but removes a ton of boilerplate - Lightning has dozens of integrations with popular machine learning tools. - [Tested rigorously with every new PR](https://github.com/Lightning-AI/lightning/tree/master/tests). We test every combination of PyTorch and Python supported versions, every OS, multi GPUs and even TPUs. - Minimal running speed overhead (about 300 ms per epoch compared with pure PyTorch). ______________________________________________________________________ ## Examples ###### Self-supervised Learning - [CPC transforms](https://lightning-bolts.readthedocs.io/en/stable/transforms/self_supervised.html#cpc-transforms) - [Moco v2 tranforms](https://lightning-bolts.readthedocs.io/en/stable/transforms/self_supervised.html#moco-v2-transforms) - [SimCLR transforms](https://lightning-bolts.readthedocs.io/en/stable/transforms/self_supervised.html#simclr-transforms) ###### Convolutional Architectures - [GPT-2](https://lightning-bolts.readthedocs.io/en/stable/models/convolutional.html#gpt-2) - [UNet](https://lightning-bolts.readthedocs.io/en/stable/models/convolutional.html#unet) ###### Reinforcement Learning - [DQN Loss](https://lightning-bolts.readthedocs.io/en/stable/losses.html#dqn-loss) - [Double DQN Loss](https://lightning-bolts.readthedocs.io/en/stable/losses.html#double-dqn-loss) - [Per DQN Loss](https://lightning-bolts.readthedocs.io/en/stable/losses.html#per-dqn-loss) ###### GANs - [Basic GAN](https://lightning-bolts.readthedocs.io/en/stable/models/gans.html#basic-gan) - [DCGAN](https://lightning-bolts.readthedocs.io/en/stable/models/gans.html#dcgan) ###### Classic ML - [Logistic Regression](https://lightning-bolts.readthedocs.io/en/stable/models/classic_ml.html#logistic-regression) - [Linear Regression](https://lightning-bolts.readthedocs.io/en/stable/models/classic_ml.html#linear-regression) ______________________________________________________________________ ## Community The PyTorch Lightning community is maintained by - [10+ core contributors](https://lightning.ai/docs/pytorch/latest/governance.html) who are all a mix of professional engineers, Research Scientists, and Ph.D. students from top AI labs. - 680+ active community contributors. Want to help us build Lightning and reduce boilerplate for thousands of researchers? [Learn how to make your first contribution here](https://devblog.pytorchlightning.ai/quick-contribution-guide-86d977171b3a) PyTorch Lightning is also part of the [PyTorch ecosystem](https://pytorch.org/ecosystem/) which requires projects to have solid testing, documentation and support. ### Asking for help If you have any questions please: 1. [Read the docs](https://lightning.ai/docs/pytorch/latest). 1. [Search through existing Discussions](https://github.com/Lightning-AI/lightning/discussions), or [add a new question](https://github.com/Lightning-AI/lightning/discussions/new) 1. [Join our Discord community](https://discord.gg/VptPCZkGNa). %package help Summary: Development documents and examples for pytorch-lightning Provides: python3-pytorch-lightning-doc %description help
**The lightweight PyTorch wrapper for high-performance AI research. Scale your models, not the boilerplate.** ______________________________________________________________________

WebsiteKey FeaturesHow To UseDocsExamplesCommunityLightning AILicense

[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pytorch-lightning)](https://pypi.org/project/pytorch-lightning/) [![PyPI Status](https://badge.fury.io/py/pytorch-lightning.svg)](https://badge.fury.io/py/pytorch-lightning) [![PyPI Status](https://pepy.tech/badge/pytorch-lightning)](https://pepy.tech/project/pytorch-lightning) [![Conda](https://img.shields.io/conda/v/conda-forge/pytorch-lightning?label=conda&color=success)](https://anaconda.org/conda-forge/pytorch-lightning) [![DockerHub](https://img.shields.io/docker/pulls/pytorchlightning/pytorch_lightning.svg)](https://hub.docker.com/r/pytorchlightning/pytorch_lightning) [![codecov](https://codecov.io/gh/Lightning-AI/lightning/release/2.0.1/graph/badge.svg)](https://codecov.io/gh/Lightning-AI/lightning) [![ReadTheDocs](https://readthedocs.org/projects/pytorch-lightning/badge/?version=2.0.1)](https://lightning.ai/docs/pytorch/stable/)[![Discord](https://img.shields.io/discord/1077906959069626439?style=plastic)](https://discord.gg/VptPCZkGNa) [![license](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/Lightning-AI/lightning/blob/master/LICENSE)
###### \*Codecov is > 90%+ but build delays may show less ______________________________________________________________________ ## PyTorch Lightning is just organized PyTorch Lightning disentangles PyTorch code to decouple the science from the engineering. ![PT to PL](../../https://github.com/Lightning-AI/lightning/raw/2.0.1/docs/source-app/_static/images/general/pl_quick_start_full_compressed.gif) ______________________________________________________________________ ## Lightning Design Philosophy Lightning structures PyTorch code with these principles:
Lightning forces the following structure to your code which makes it reusable and shareable: - Research code (the LightningModule). - Engineering code (you delete, and is handled by the Trainer). - Non-essential research code (logging, etc... this goes in Callbacks). - Data (use PyTorch DataLoaders or organize them into a LightningDataModule). Once you do this, you can train on multiple-GPUs, TPUs, CPUs, IPUs, HPUs and even in 16-bit precision without changing your code! [Get started in just 15 minutes](https://lightning.ai/docs/pytorch/latest/starter/introduction.html) ______________________________________________________________________ ## Continuous Integration Lightning is rigorously tested across multiple CPUs, GPUs, TPUs, IPUs, and HPUs and against major Python and PyTorch versions.
Current build statuses
| System / PyTorch ver. | 1.11 | 1.12 | 1.13 | 2.0 | | :--------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | | Linux py3.9 \[GPUs\] | - | [![Build Status]()](https://dev.azure.com/Lightning-AI/lightning/_build/latest?definitionId=24&branchName=master) | [![Build Status]()](https://dev.azure.com/Lightning-AI/lightning/_build/latest?definitionId=24&branchName=master) | Soon | | Linux py3.9 \[TPUs\] | - | [![Test PyTorch - TPU](https://github.com/Lightning-AI/lightning/actions/workflows/tpu-tests.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/tpu-tests.yml) | | Soon | | Linux py3.8 \[IPUs\] | - | - | [![Build Status]()](https://dev.azure.com/Lightning-AI/lightning/_build/latest?definitionId=25&branchName=master) | Soon | | Linux py3.8 \[HPUs\] | - | - | [![Build Status]()](https://dev.azure.com/Lightning-AI/lightning/_build/latest?definitionId=26&branchName=master) | Soon | | Linux (multiple Python versions) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | Soon | | OSX (multiple Python versions) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | Soon | | Windows (multiple Python versions) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | [![Test PyTorch](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml/badge.svg)](https://github.com/Lightning-AI/lightning/actions/workflows/ci-tests-pytorch.yml) | Soon |
______________________________________________________________________ ## How To Use ### Step 0: Install Simple installation from PyPI ```bash pip install pytorch-lightning ``` ### Step 1: Add these imports ```python import os import torch from torch import nn import torch.nn.functional as F from torchvision.datasets import MNIST from torch.utils.data import DataLoader, random_split from torchvision import transforms import pytorch_lightning as pl ``` ### Step 2: Define a LightningModule (nn.Module subclass) A LightningModule defines a full *system* (ie: a GAN, autoencoder, BERT or a simple Image Classifier). ```python class LitAutoEncoder(pl.LightningModule): def __init__(self): super().__init__() self.encoder = nn.Sequential(nn.Linear(28 * 28, 128), nn.ReLU(), nn.Linear(128, 3)) self.decoder = nn.Sequential(nn.Linear(3, 128), nn.ReLU(), nn.Linear(128, 28 * 28)) def forward(self, x): # in lightning, forward defines the prediction/inference actions embedding = self.encoder(x) return embedding def training_step(self, batch, batch_idx): # training_step defines the train loop. It is independent of forward x, y = batch x = x.view(x.size(0), -1) z = self.encoder(x) x_hat = self.decoder(z) loss = F.mse_loss(x_hat, x) self.log("train_loss", loss) return loss def configure_optimizers(self): optimizer = torch.optim.Adam(self.parameters(), lr=1e-3) return optimizer ``` **Note: Training_step defines the training loop. Forward defines how the LightningModule behaves during inference/prediction.** ### Step 3: Train! ```python dataset = MNIST(os.getcwd(), download=True, transform=transforms.ToTensor()) train, val = random_split(dataset, [55000, 5000]) autoencoder = LitAutoEncoder() trainer = pl.Trainer() trainer.fit(autoencoder, DataLoader(train), DataLoader(val)) ``` ## Advanced features Lightning has over [40+ advanced features](https://lightning.ai/docs/pytorch/latest/common/trainer.html#trainer-flags) designed for professional AI research at scale. Here are some examples:
Highlighted feature code snippets ```python # 8 GPUs # no code changes needed trainer = Trainer(max_epochs=1, accelerator="gpu", devices=8) # 256 GPUs trainer = Trainer(max_epochs=1, accelerator="gpu", devices=8, num_nodes=32) ``` Train on TPUs without code changes ```python # no code changes needed trainer = Trainer(accelerator="tpu", devices=8) ``` 16-bit precision ```python # no code changes needed trainer = Trainer(precision=16) ``` Experiment managers ```python from pytorch_lightning import loggers # tensorboard trainer = Trainer(logger=TensorBoardLogger("logs/")) # weights and biases trainer = Trainer(logger=loggers.WandbLogger()) # comet trainer = Trainer(logger=loggers.CometLogger()) # mlflow trainer = Trainer(logger=loggers.MLFlowLogger()) # neptune trainer = Trainer(logger=loggers.NeptuneLogger()) # ... and dozens more ``` EarlyStopping ```python es = EarlyStopping(monitor="val_loss") trainer = Trainer(callbacks=[es]) ``` Checkpointing ```python checkpointing = ModelCheckpoint(monitor="val_loss") trainer = Trainer(callbacks=[checkpointing]) ``` Export to torchscript (JIT) (production use) ```python # torchscript autoencoder = LitAutoEncoder() torch.jit.save(autoencoder.to_torchscript(), "model.pt") ``` Export to ONNX (production use) ```python autoencoder = LitAutoEncoder() input_sample = torch.randn((1, 64)) with tempfile.NamedTemporaryFile(suffix=".onnx", delete=False) as tmpfile: autoencoder.to_onnx(tmpfile.name, input_sample, export_params=True) ```
### Pro-level control of optimization (advanced users) For complex/professional level work, you have optional full control of the optimizers. ```python class LitAutoEncoder(pl.LightningModule): def __init__(self): super().__init__() self.automatic_optimization = False def training_step(self, batch, batch_idx): # access your optimizers with use_pl_optimizer=False. Default is True opt_a, opt_b = self.optimizers(use_pl_optimizer=True) loss_a = ... self.manual_backward(loss_a, opt_a) opt_a.step() opt_a.zero_grad() loss_b = ... self.manual_backward(loss_b, opt_b, retain_graph=True) self.manual_backward(loss_b, opt_b) opt_b.step() opt_b.zero_grad() ``` ______________________________________________________________________ ## Advantages over unstructured PyTorch - Models become hardware agnostic - Code is clear to read because engineering code is abstracted away - Easier to reproduce - Make fewer mistakes because lightning handles the tricky engineering - Keeps all the flexibility (LightningModules are still PyTorch modules), but removes a ton of boilerplate - Lightning has dozens of integrations with popular machine learning tools. - [Tested rigorously with every new PR](https://github.com/Lightning-AI/lightning/tree/master/tests). We test every combination of PyTorch and Python supported versions, every OS, multi GPUs and even TPUs. - Minimal running speed overhead (about 300 ms per epoch compared with pure PyTorch). ______________________________________________________________________ ## Examples ###### Self-supervised Learning - [CPC transforms](https://lightning-bolts.readthedocs.io/en/stable/transforms/self_supervised.html#cpc-transforms) - [Moco v2 tranforms](https://lightning-bolts.readthedocs.io/en/stable/transforms/self_supervised.html#moco-v2-transforms) - [SimCLR transforms](https://lightning-bolts.readthedocs.io/en/stable/transforms/self_supervised.html#simclr-transforms) ###### Convolutional Architectures - [GPT-2](https://lightning-bolts.readthedocs.io/en/stable/models/convolutional.html#gpt-2) - [UNet](https://lightning-bolts.readthedocs.io/en/stable/models/convolutional.html#unet) ###### Reinforcement Learning - [DQN Loss](https://lightning-bolts.readthedocs.io/en/stable/losses.html#dqn-loss) - [Double DQN Loss](https://lightning-bolts.readthedocs.io/en/stable/losses.html#double-dqn-loss) - [Per DQN Loss](https://lightning-bolts.readthedocs.io/en/stable/losses.html#per-dqn-loss) ###### GANs - [Basic GAN](https://lightning-bolts.readthedocs.io/en/stable/models/gans.html#basic-gan) - [DCGAN](https://lightning-bolts.readthedocs.io/en/stable/models/gans.html#dcgan) ###### Classic ML - [Logistic Regression](https://lightning-bolts.readthedocs.io/en/stable/models/classic_ml.html#logistic-regression) - [Linear Regression](https://lightning-bolts.readthedocs.io/en/stable/models/classic_ml.html#linear-regression) ______________________________________________________________________ ## Community The PyTorch Lightning community is maintained by - [10+ core contributors](https://lightning.ai/docs/pytorch/latest/governance.html) who are all a mix of professional engineers, Research Scientists, and Ph.D. students from top AI labs. - 680+ active community contributors. Want to help us build Lightning and reduce boilerplate for thousands of researchers? [Learn how to make your first contribution here](https://devblog.pytorchlightning.ai/quick-contribution-guide-86d977171b3a) PyTorch Lightning is also part of the [PyTorch ecosystem](https://pytorch.org/ecosystem/) which requires projects to have solid testing, documentation and support. ### Asking for help If you have any questions please: 1. [Read the docs](https://lightning.ai/docs/pytorch/latest). 1. [Search through existing Discussions](https://github.com/Lightning-AI/lightning/discussions), or [add a new question](https://github.com/Lightning-AI/lightning/discussions/new) 1. [Join our Discord community](https://discord.gg/VptPCZkGNa). %prep %autosetup -n pytorch-lightning-2.0.1 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-pytorch-lightning -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Mon Apr 10 2023 Python_Bot - 2.0.1-1 - Package Spec generated