summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-10 10:53:35 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-10 10:53:35 +0000
commitf644b3eca916bdd83c02c19e2cd84ba802d98e12 (patch)
tree2e8c2e0103cf0e9459f45db86f8ffe296c66a939
parentbab9eb580773ac7517b3d58e25940178cd948471 (diff)
automatic import of python-pytorch-lightningopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-pytorch-lightning.spec1191
-rw-r--r--sources1
3 files changed, 1193 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..44972c2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/pytorch-lightning-2.0.1.tar.gz
diff --git a/python-pytorch-lightning.spec b/python-pytorch-lightning.spec
new file mode 100644
index 0000000..df8e006
--- /dev/null
+++ b/python-pytorch-lightning.spec
@@ -0,0 +1,1191 @@
+%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
+<div align="center">
+
+<img src="https://pl-public-data.s3.amazonaws.com/assets_lightning/pytorch-lightning.png" width="400px">
+
+**The lightweight PyTorch wrapper for high-performance AI research.
+Scale your models, not the boilerplate.**
+
+______________________________________________________________________
+
+<p align="center">
+ <a href="https://www.pytorchlightning.ai/">Website</a> •
+ <a href="#key-features">Key Features</a> •
+ <a href="#how-to-use">How To Use</a> •
+ <a href="https://lightning.ai/docs/pytorch/stable/">Docs</a> •
+ <a href="#examples">Examples</a> •
+ <a href="#community">Community</a> •
+ <a href="https://lightning.ai/">Lightning AI</a> •
+ <a href="https://github.com/Lightning-AI/lightning/blob/master/LICENSE">License</a>
+</p>
+
+<!-- DO NOT ADD CONDA DOWNLOADS... README CHANGES MUST BE APPROVED BY EDEN OR WILL -->
+
+[![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)
+
+<!--
+[![CodeFactor](https://www.codefactor.io/repository/github/Lightning-AI/lightning/badge)](https://www.codefactor.io/repository/github/Lightning-AI/lightning)
+-->
+
+</div>
+
+###### \*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:
+
+<div align="center">
+ <img src="https://pl-bolts-doc-images.s3.us-east-2.amazonaws.com/philosophies.jpg" max-height="250px">
+</div>
+
+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.
+
+<details>
+ <summary>Current build statuses</summary>
+
+<center>
+
+| System / PyTorch ver. | 1.11 | 1.12 | 1.13 | 2.0 |
+| :--------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- |
+| Linux py3.9 \[GPUs\] | - | [![Build Status](<https://dev.azure.com/Lightning-AI/lightning/_apis/build/status/pytorch-lightning%20(GPUs)?branchName=refs%2Ftags%2F2.0.1>)](https://dev.azure.com/Lightning-AI/lightning/_build/latest?definitionId=24&branchName=master) | [![Build Status](<https://dev.azure.com/Lightning-AI/lightning/_apis/build/status/pytorch-lightning%20(GPUs)?branchName=refs%2Ftags%2F2.0.1>)](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/_apis/build/status/pytorch-lightning%20(IPUs)?branchName=refs%2Ftags%2F2.0.1>)](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/_apis/build/status/pytorch-lightning%20(HPUs)?branchName=refs%2Ftags%2F2.0.1>)](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 |
+
+</center>
+</details>
+
+______________________________________________________________________
+
+## 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:
+
+<div align="center">
+ <img src="https://pl-bolts-doc-images.s3.us-east-2.amazonaws.com/features_2.jpg" max-height="600px">
+</div>
+
+<details>
+ <summary>Highlighted feature code snippets</summary>
+
+```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)
+```
+
+<summary>Train on TPUs without code changes</summary>
+
+```python
+# no code changes needed
+trainer = Trainer(accelerator="tpu", devices=8)
+```
+
+<summary>16-bit precision</summary>
+
+```python
+# no code changes needed
+trainer = Trainer(precision=16)
+```
+
+<summary>Experiment managers</summary>
+
+```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
+```
+
+<summary>EarlyStopping</summary>
+
+```python
+es = EarlyStopping(monitor="val_loss")
+trainer = Trainer(callbacks=[es])
+```
+
+<summary>Checkpointing</summary>
+
+```python
+checkpointing = ModelCheckpoint(monitor="val_loss")
+trainer = Trainer(callbacks=[checkpointing])
+```
+
+<summary>Export to torchscript (JIT) (production use)</summary>
+
+```python
+# torchscript
+autoencoder = LitAutoEncoder()
+torch.jit.save(autoencoder.to_torchscript(), "model.pt")
+```
+
+<summary>Export to ONNX (production use)</summary>
+
+```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)
+```
+
+</details>
+
+### 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
+<div align="center">
+
+<img src="https://pl-public-data.s3.amazonaws.com/assets_lightning/pytorch-lightning.png" width="400px">
+
+**The lightweight PyTorch wrapper for high-performance AI research.
+Scale your models, not the boilerplate.**
+
+______________________________________________________________________
+
+<p align="center">
+ <a href="https://www.pytorchlightning.ai/">Website</a> •
+ <a href="#key-features">Key Features</a> •
+ <a href="#how-to-use">How To Use</a> •
+ <a href="https://lightning.ai/docs/pytorch/stable/">Docs</a> •
+ <a href="#examples">Examples</a> •
+ <a href="#community">Community</a> •
+ <a href="https://lightning.ai/">Lightning AI</a> •
+ <a href="https://github.com/Lightning-AI/lightning/blob/master/LICENSE">License</a>
+</p>
+
+<!-- DO NOT ADD CONDA DOWNLOADS... README CHANGES MUST BE APPROVED BY EDEN OR WILL -->
+
+[![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)
+
+<!--
+[![CodeFactor](https://www.codefactor.io/repository/github/Lightning-AI/lightning/badge)](https://www.codefactor.io/repository/github/Lightning-AI/lightning)
+-->
+
+</div>
+
+###### \*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:
+
+<div align="center">
+ <img src="https://pl-bolts-doc-images.s3.us-east-2.amazonaws.com/philosophies.jpg" max-height="250px">
+</div>
+
+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.
+
+<details>
+ <summary>Current build statuses</summary>
+
+<center>
+
+| System / PyTorch ver. | 1.11 | 1.12 | 1.13 | 2.0 |
+| :--------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- |
+| Linux py3.9 \[GPUs\] | - | [![Build Status](<https://dev.azure.com/Lightning-AI/lightning/_apis/build/status/pytorch-lightning%20(GPUs)?branchName=refs%2Ftags%2F2.0.1>)](https://dev.azure.com/Lightning-AI/lightning/_build/latest?definitionId=24&branchName=master) | [![Build Status](<https://dev.azure.com/Lightning-AI/lightning/_apis/build/status/pytorch-lightning%20(GPUs)?branchName=refs%2Ftags%2F2.0.1>)](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/_apis/build/status/pytorch-lightning%20(IPUs)?branchName=refs%2Ftags%2F2.0.1>)](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/_apis/build/status/pytorch-lightning%20(HPUs)?branchName=refs%2Ftags%2F2.0.1>)](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 |
+
+</center>
+</details>
+
+______________________________________________________________________
+
+## 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:
+
+<div align="center">
+ <img src="https://pl-bolts-doc-images.s3.us-east-2.amazonaws.com/features_2.jpg" max-height="600px">
+</div>
+
+<details>
+ <summary>Highlighted feature code snippets</summary>
+
+```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)
+```
+
+<summary>Train on TPUs without code changes</summary>
+
+```python
+# no code changes needed
+trainer = Trainer(accelerator="tpu", devices=8)
+```
+
+<summary>16-bit precision</summary>
+
+```python
+# no code changes needed
+trainer = Trainer(precision=16)
+```
+
+<summary>Experiment managers</summary>
+
+```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
+```
+
+<summary>EarlyStopping</summary>
+
+```python
+es = EarlyStopping(monitor="val_loss")
+trainer = Trainer(callbacks=[es])
+```
+
+<summary>Checkpointing</summary>
+
+```python
+checkpointing = ModelCheckpoint(monitor="val_loss")
+trainer = Trainer(callbacks=[checkpointing])
+```
+
+<summary>Export to torchscript (JIT) (production use)</summary>
+
+```python
+# torchscript
+autoencoder = LitAutoEncoder()
+torch.jit.save(autoencoder.to_torchscript(), "model.pt")
+```
+
+<summary>Export to ONNX (production use)</summary>
+
+```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)
+```
+
+</details>
+
+### 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
+<div align="center">
+
+<img src="https://pl-public-data.s3.amazonaws.com/assets_lightning/pytorch-lightning.png" width="400px">
+
+**The lightweight PyTorch wrapper for high-performance AI research.
+Scale your models, not the boilerplate.**
+
+______________________________________________________________________
+
+<p align="center">
+ <a href="https://www.pytorchlightning.ai/">Website</a> •
+ <a href="#key-features">Key Features</a> •
+ <a href="#how-to-use">How To Use</a> •
+ <a href="https://lightning.ai/docs/pytorch/stable/">Docs</a> •
+ <a href="#examples">Examples</a> •
+ <a href="#community">Community</a> •
+ <a href="https://lightning.ai/">Lightning AI</a> •
+ <a href="https://github.com/Lightning-AI/lightning/blob/master/LICENSE">License</a>
+</p>
+
+<!-- DO NOT ADD CONDA DOWNLOADS... README CHANGES MUST BE APPROVED BY EDEN OR WILL -->
+
+[![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)
+
+<!--
+[![CodeFactor](https://www.codefactor.io/repository/github/Lightning-AI/lightning/badge)](https://www.codefactor.io/repository/github/Lightning-AI/lightning)
+-->
+
+</div>
+
+###### \*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:
+
+<div align="center">
+ <img src="https://pl-bolts-doc-images.s3.us-east-2.amazonaws.com/philosophies.jpg" max-height="250px">
+</div>
+
+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.
+
+<details>
+ <summary>Current build statuses</summary>
+
+<center>
+
+| System / PyTorch ver. | 1.11 | 1.12 | 1.13 | 2.0 |
+| :--------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- |
+| Linux py3.9 \[GPUs\] | - | [![Build Status](<https://dev.azure.com/Lightning-AI/lightning/_apis/build/status/pytorch-lightning%20(GPUs)?branchName=refs%2Ftags%2F2.0.1>)](https://dev.azure.com/Lightning-AI/lightning/_build/latest?definitionId=24&branchName=master) | [![Build Status](<https://dev.azure.com/Lightning-AI/lightning/_apis/build/status/pytorch-lightning%20(GPUs)?branchName=refs%2Ftags%2F2.0.1>)](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/_apis/build/status/pytorch-lightning%20(IPUs)?branchName=refs%2Ftags%2F2.0.1>)](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/_apis/build/status/pytorch-lightning%20(HPUs)?branchName=refs%2Ftags%2F2.0.1>)](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 |
+
+</center>
+</details>
+
+______________________________________________________________________
+
+## 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:
+
+<div align="center">
+ <img src="https://pl-bolts-doc-images.s3.us-east-2.amazonaws.com/features_2.jpg" max-height="600px">
+</div>
+
+<details>
+ <summary>Highlighted feature code snippets</summary>
+
+```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)
+```
+
+<summary>Train on TPUs without code changes</summary>
+
+```python
+# no code changes needed
+trainer = Trainer(accelerator="tpu", devices=8)
+```
+
+<summary>16-bit precision</summary>
+
+```python
+# no code changes needed
+trainer = Trainer(precision=16)
+```
+
+<summary>Experiment managers</summary>
+
+```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
+```
+
+<summary>EarlyStopping</summary>
+
+```python
+es = EarlyStopping(monitor="val_loss")
+trainer = Trainer(callbacks=[es])
+```
+
+<summary>Checkpointing</summary>
+
+```python
+checkpointing = ModelCheckpoint(monitor="val_loss")
+trainer = Trainer(callbacks=[checkpointing])
+```
+
+<summary>Export to torchscript (JIT) (production use)</summary>
+
+```python
+# torchscript
+autoencoder = LitAutoEncoder()
+torch.jit.save(autoencoder.to_torchscript(), "model.pt")
+```
+
+<summary>Export to ONNX (production use)</summary>
+
+```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)
+```
+
+</details>
+
+### 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 <Python_Bot@openeuler.org> - 2.0.1-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..7a99997
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+2dcb98d87eeb398914ae8b478d6054d6 pytorch-lightning-2.0.1.tar.gz