diff --git a/README.md b/README.md
index 487275d3b450f21ba56148da5aadfbd4e46d5a6f..91201c29d5d6b4a308b21c0d46bed98d45980c4e 100644
--- a/README.md
+++ b/README.md
@@ -1,28 +1,86 @@
 # Berzelius PyTorch Guide 
 
-[PyTorch](https://pytorch.org) is a machine learning framework based on the Torch library, used for applications such as computer vision and natural language processing, originally developed by Meta AI and now part of the Linux Foundation umbrella.
 
-On Berzelius, users can run PyTorch via the following options. 
 
-## Using Conda
+## Introduction  
 
-PLease refer to [PyTorch website](https://pytorch.org/get-started/locally/) for install instructions.
+PyTorch is an open-source machine learning library for Python that provides a flexible and efficient framework for building and training deep neural networks. PyTorch is commonly used for various machine learning tasks, including deep learning, natural language processing (NLP), computer vision, reinforcement learning, and more. 
 
-- Create and activate the Conda environment
+You can install PyTorch on Berzelius using different ways, such as Conda/Mamba and pip, following PyTorch official [installation instructions](https://pytorch.org/get-started/locally/). You can also install and utilize PyTorch through Apptainer container.
+
+## Installing PyTorch via Conda/Mamba
+
+It is a good practice to specify the version of the main package to install (PyTorch in this case).
 ```
-module load Anaconda/2021.05-nsc1
-conda create -n pytorch-2.0.0
-conda activate pytorch-2.0.0
+module load Mambaforge/23.3.1-1-hpc1-bdist
+mamba create --name pytorch_2.1.0
+mamba activate pytorch_2.1.0
+mamba install pytorch=2.1.0 torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
 ```
-- Install PyTorch
+
+To check if PyTorch detects the GPU:
 ```
-conda install pytorch==2.0.0 torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
+python -c "import torch; print('GPU available: ' + str(torch.cuda.is_available()))"
 ```
-- Check the environment information
+
+## Installing PyTorch via pip
+
 ```
-python3 -m torch.utils.collect_env
+module load Mambaforge/23.3.1-1-hpc1-bdist
+mamba create --name pytorch_2.1.0
+mamba activate pytorch_2.1.0
+pip3 install torch==2.1.0 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
+```
+
+Installation instructions for old versions of PyTorch are provided [here](https://pytorch.org/get-started/previous-versions/).
+
+## Installing PyTorch via Apptainer
+
+We can build an Apptainer image using the following definition file `pytorch_2.0.1.def`. To learn more refer to the [Apptainer User Guide](../berzelius-apptainer/).
+
+```
+Bootstrap: docker
+From: nvidia/cuda:11.7.1-cudnn8-devel-ubuntu22.04
+
+%environment
+
+export PATH=/opt/mambaforge/bin:$PATH
+export PYTHONNOUSERSITE=True
+
+%post
+
+apt-get update && apt-get install -y --no-install-recommends \
+git \
+nano \
+wget \
+curl
+
+# Install Mambaforge
+cd /tmp
+curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh"
+bash Mambaforge-$(uname)-$(uname -m).sh -fp /opt/mambaforge -b
+rm Mambaforge*sh
+
+export PATH=/opt/mambaforge/bin:$PATH
+
+mamba install python==3.10 pytorch==2.0.1 torchvision torchaudio torchdata torchtext pytorch-cuda=11.7 -c pytorch -c nvidia -y
+
+# Pin packages
+cat <<EOT > /opt/mambaforge/conda-meta/pinned
+pytorch==2.0.1
+EOT
+
+mamba install matplotlib jupyterlab -y
+```
+
+We build the image from the definition file:
+
+```
+apptainer build pytorch_2.0.1 pytorch_2.0.1.def
 ```
 
+The Apptainer image can be easily extended with more packages and software by modifying the definition file and rebuilding the image.
+
 ## Using Container Modules (Beta)
 
 [Container modules](https://github.com/NVIDIA/ngc-container-environment-modules) are lightweight wrappers that make it possible to transparently use apptainer containers as environment modules. The benefits are: