.. toctree::
   :maxdepth: 1
   :hidden:

   evaluation
   ../model/build_model
   ../cli/lightning_cli
   progress_bar
   ../deploy/production
   ../advanced/training_tricks
   ../tuning/profiler
   Manage experiments <../visualize/logging_intermediate>
   Organize existing PyTorch into Lightning <../starter/converting>
   ../clouds/cluster
   Save and load model progress <checkpointing>
   Save memory with half-precision <precision>
   ../advanced/model_parallel
   Train on single or multiple GPUs <../accelerators/gpu>
   Train on single or multiple TPUs <../accelerators/tpu>
   Train on MPS <../accelerators/mps>
   Use a pretrained model <../advanced/pretrained>
   ../data/data
   ../model/own_your_loop
   ../advanced/model_init
   ../common/tbptt


#############
How-to Guides
#############

.. raw:: html

    <div class="display-card-container">
        <div class="row">

.. displayitem::
    :header: Avoid overfitting
    :description: Learn how to add validation and test loops
    :button_link: ../common/evaluation.html
    :col_css: col-md-4
    :height: 180

.. displayitem::
    :header: Build a model
    :description: Step by step guide to build your model
    :button_link: ../model/build_model.html
    :col_css: col-md-4
    :height: 180

.. displayitem::
    :header: Configure hyperparameters from the CLI
    :description: Make your experiments modular via command line interface
    :button_link: ../cli/lightning_cli.html
    :col_css: col-md-4
    :height: 180

.. displayitem::
    :header: Customize the progress bar
    :description: Change the progress bar monitoring and tracking
    :button_link: ../common/progress_bar.html
    :col_css: col-md-4
    :height: 180

.. displayitem::
    :header: Deploy models into production
    :description: Deploy models with different levels of scal
    :button_link: ../deploy/production.html
    :col_css: col-md-4
    :height: 180

.. displayitem::
    :header: Optimize training
    :description: Explore advanced training techniques
    :button_link: ../advanced/training_tricks.html
    :col_css: col-md-4
    :height: 180

.. displayitem::
    :header: Find bottlenecks in your code
    :description: Learn how to profile your experiments to find bottlenecks
    :button_link: ../tuning/profiler.html
    :col_css: col-md-4
    :height: 180

.. displayitem::
   :header: Finetune a model
   :description: Learn how to use pretrained models
   :col_css: col-md-4
   :button_link: ../advanced/transfer_learning.html
   :height: 180

.. displayitem::
    :header: Manage data
    :description: How to use basic to advanced data techniques
    :button_link: ../data/data.html
    :col_css: col-md-4
    :height: 180

.. displayitem::
    :header: Manage experiments
    :description: Learn to track and visualize with experiment managers
    :button_link: ../visualize/logging_intermediate.html
    :col_css: col-md-4
    :height: 180

.. displayitem::
    :header: Organize existing PyTorch into Lightning
    :description: Convert your vanila PyTorch to Lightning
    :button_link: ../starter/converting.html
    :col_css: col-md-4
    :height: 180

.. displayitem::
    :header: Run on a multi-node cluster
    :description: Learn to run on multi-node in the cloud or on your cluster
    :button_link: ../clouds/cluster.html
    :col_css: col-md-4
    :height: 180

.. displayitem::
    :header: Save and load model progress
    :description: Save and load progress with checkpoints
    :button_link: ../common/checkpointing.html
    :col_css: col-md-4
    :height: 180

.. displayitem::
    :header: Save memory with half-precision
    :description: Use precision techniques to train faster and save memory
    :button_link: ../common/precision.html
    :col_css: col-md-4
    :height: 180

.. displayitem::
    :header: Set up large models efficiently
    :description: Avoid memory peaks and speed up the initialization of large models
    :button_link: ../advanced/model_init.html
    :col_css: col-md-4
    :height: 180

.. displayitem::
    :header: Train models with billions of parameters
    :description: Scale GPU training for models with billions of parameters
    :button_link: ../advanced/model_parallel/index.html
    :col_css: col-md-4
    :height: 180

.. displayitem::
   :header: Train in a notebook
   :description: Train models in interactive notebooks (Jupyter, Colab, Kaggle, etc.)
   :col_css: col-md-4
   :button_link: ../common/notebooks.html
   :height: 180

.. displayitem::
    :header: Train on single or multiple GPUs
    :description: Train models faster with GPU accelerators
    :button_link: ../accelerators/gpu.html
    :col_css: col-md-4
    :height: 180

.. displayitem::
    :header: Train on single or multiple TPUs
    :description: TTrain models faster with TPU accelerators
    :button_link: ../accelerators/tpu.html
    :col_css: col-md-4
    :height: 180

.. displayitem::
    :header: Train on MPS
    :description: Train models faster with Apple Silicon GPUs
    :button_link: ../accelerators/mps.html
    :col_css: col-md-4
    :height: 180

.. displayitem::
   :header: Track and Visualize Experiments
   :description: Learn to track and visualize experiments
   :col_css: col-md-4
   :button_link: ../visualize/logging_intermediate.html
   :height: 180

.. displayitem::
    :header: Use a pretrained model
    :description: Improve results with transfer learning on pretrained models
    :button_link: ../advanced/pretrained.html
    :col_css: col-md-4
    :height: 180

.. displayitem::
    :header: Use a pure PyTorch training loop
    :description: Run your pure PyTorch loop with Lightning
    :button_link: ../model/own_your_loop.html
    :col_css: col-md-4
    :height: 180

.. displayitem::
    :header: Truncated Back-Propagation Through Time
    :description: Efficiently step through time when training recurrent models
    :button_link: ../common/tbptt.html
    :col_css: col-md-4
    :height: 180

.. raw:: html

        </div>
    </div>
