From f092614130f134e4817f3ba3e70b4293854c5cd3 Mon Sep 17 00:00:00 2001
From: td <thomasdesgreys@gmail.com>
Date: Mon, 10 Feb 2025 17:51:53 +0100
Subject: [PATCH] partie REINFORCE algorithm

---
 .idea/misc.xml                 |   2 +-
 .idea/mso_3_4-td1.iml          |   6 +-
 README.md                      | 242 ++-------------------------------
 cartpole_loss.png              | Bin 0 -> 55569 bytes
 cartpole_score.png             | Bin 0 -> 50935 bytes
 evaluate_reinforce_cartpole.py |  59 ++++++++
 reinforce_cartpole.py          | 125 +++++++++++++++++
 reinforce_cartpole_best.pth    | Bin 0 -> 5800 bytes
 sujet.md                       | 227 +++++++++++++++++++++++++++++++
 9 files changed, 431 insertions(+), 230 deletions(-)
 create mode 100644 cartpole_loss.png
 create mode 100644 cartpole_score.png
 create mode 100644 evaluate_reinforce_cartpole.py
 create mode 100644 reinforce_cartpole.py
 create mode 100644 reinforce_cartpole_best.pth
 create mode 100644 sujet.md

diff --git a/.idea/misc.xml b/.idea/misc.xml
index e557d17..896e2f9 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -3,5 +3,5 @@
   <component name="Black">
     <option name="sdkName" value="Python 3.8" />
   </component>
-  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.8" project-jdk-type="Python SDK" />
+  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.12 (mso_3_4-td1)" project-jdk-type="Python SDK" />
 </project>
\ No newline at end of file
diff --git a/.idea/mso_3_4-td1.iml b/.idea/mso_3_4-td1.iml
index 9b31378..94860ff 100644
--- a/.idea/mso_3_4-td1.iml
+++ b/.idea/mso_3_4-td1.iml
@@ -1,8 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <module type="PYTHON_MODULE" version="4">
   <component name="NewModuleRootManager">
-    <content url="file://$MODULE_DIR$" />
-    <orderEntry type="jdk" jdkName="Python 3.8" jdkType="Python SDK" />
+    <content url="file://$MODULE_DIR$">
+      <excludeFolder url="file://$MODULE_DIR$/.venv" />
+    </content>
+    <orderEntry type="jdk" jdkName="Python 3.12 (mso_3_4-td1)" jdkType="Python SDK" />
     <orderEntry type="sourceFolder" forTests="false" />
   </component>
 </module>
\ No newline at end of file
diff --git a/README.md b/README.md
index 88a21a5..b47be3e 100644
--- a/README.md
+++ b/README.md
@@ -1,227 +1,15 @@
-# TD 1 : Hands-On Reinforcement Learning
-
-MSO 3.4 Apprentissage Automatique
-
-# 
-
-In this hands-on project, we will first implement a simple RL algorithm and apply it to solve the CartPole-v1 environment. Once we become familiar with the basic workflow, we will learn to use various tools for machine learning model training, monitoring, and sharing, by applying these tools to train a robotic arm.
-
-## To be handed in
-
-This work must be done individually. The expected output is a repository named `hands-on-rl` on https://gitlab.ec-lyon.fr. 
-
-We assume that `git` is installed, and that you are familiar with the basic `git` commands. (Optionnaly, you can use GitHub Desktop.)
-We also assume that you have access to the [ECL GitLab](https://gitlab.ec-lyon.fr/). If necessary, please consult [this tutorial](https://gitlab.ec-lyon.fr/edelland/inf_tc2/-/blob/main/Tutoriel_gitlab/tutoriel_gitlab.md).
-
-Your repository must contain a `README.md` file that explains **briefly** the successive steps of the project. It must be private, so you need to add your teacher as "developer" member.
-
-Throughout the subject, you will find a 🛠 symbol indicating that a specific production is expected.
-
-The last commit is due before 11:59 pm on March 17, 2025. Subsequent commits will not be considered.
-
-> ⚠️ **Warning**
-> Ensure that you only commit the files that are requested. For example, your directory should not contain the generated `.zip` files, nor the `runs` folder... At the end, your repository must contain one `README.md`, three python scripts, and optionally image files for the plots.
-
-## Before you start
-
-Make sure you know the basics of Reinforcement Learning. In case of need, you can refer to the [introduction of the Hugging Face RL course](https://huggingface.co/blog/deep-rl-intro).
-
-## Introduction to Gym
-
-[Gym](https://gymnasium.farama.org/) is a framework for developing and evaluating reinforcement learning environments. It offers various environments, including classic control and toy text scenarios, to test RL algorithms.
-
-### Installation
-
-We recommend to use Python virtual environnements to install the required modules : https://docs.python.org/3/library/venv.html
-
-First, install Pytorch : https://pytorch.org/get-started/locally.
-
-Then install the following modules :
-
-
-```sh
-pip install gym==0.26.2
-```
-
-Install also pyglet for the rendering.
-
-```sh
-pip install pyglet==2.0.10
-```
-
-```sh
-pip install numpy==1.26.4
-```
-
-If needed 
-
-```sh
-pip install pygame==2.5.2
-```
-
-```sh
-pip install PyQt5
-```
-
-```sh
-pip install opencv-python
-```
-
-### Usage
-
-Here is an example of how to use Gym to solve the `CartPole-v1` environment [Documentation](https://gymnasium.farama.org/environments/classic_control/cart_pole/):
-
-```python
-import gym
-
-# Create the environment
-env = gym.make("CartPole-v1", render_mode="human")
-
-# Reset the environment and get the initial observation
-observation = env.reset()
-
-for _ in range(100):
-    # Select a random action from the action space
-    action = env.action_space.sample()
-    # Apply the action to the environment
-    # Returns next observation, reward, done signal (indicating
-    # if the episode has ended), and an additional info dictionary
-    observation, reward, terminated, truncated, info = env.step(action)
-    # Render the environment to visualize the agent's behavior
-    env.render()
-    if terminated: 
-        # Terminated before max step
-        break
-
-env.close()
-```
-
-## REINFORCE
-
-The REINFORCE algorithm (also known as Vanilla Policy Gradient) is a policy gradient method that optimizes the policy directly using gradient descent. The following is the pseudocode of the REINFORCE algorithm:
-
-```txt
-Setup the CartPole environment
-Setup the agent as a simple neural network with:
-    - One fully connected layer with 128 units and ReLU activation followed by a dropout layer
-    - One fully connected layer followed by softmax activation
-Repeat 500 times:
-    Reset the environment
-    Reset the buffer
-    Repeat until the end of the episode:
-        Compute action probabilities 
-        Sample the action based on the probabilities and store its probability in the buffer 
-        Step the environment with the action
-        Compute and store in the buffer the return using gamma=0.99 
-    Normalize the return
-    Compute the policy loss as -sum(log(prob) * return)
-    Update the policy using an Adam optimizer and a learning rate of 5e-3
-Save the model weights
-```
-
-To learn more about REINFORCE, you can refer to [this unit](https://huggingface.co/learn/deep-rl-course/unit4/introduction).
-
-> 🛠 **To be handed in**
-> Use PyTorch to implement REINFORCE and solve the CartPole environement. Share the code in `reinforce_cartpole.py`, and share a plot showing the total reward accross episodes in the `README.md`. Also, share a file `reinforce_cartpole.pth` containing the learned weights. For saving and loading PyTorch models, check [this tutorial](https://pytorch.org/tutorials/beginner/saving_loading_models.html#saving-loading-model-for-inference)
-
-## Model Evaluation
-
-Now that you have trained your model, it is time to evaluate its performance. Run it with rendering for a few trials and see if the policy is capable of completing the task.
-
-> 🛠 **To be handed in**
-> Implement a script which loads your saved model and use it to solve the cartpole enviroment. Run 100 evaluations and share the final success rate across all evaluations in the `README.md`. Share the code in `evaluate_reinforce_cartpole.py`.
-
-
-## Familiarization with a complete RL pipeline: Application to training a robotic arm
-
-In this section, you will use the Stable-Baselines3 package to train a robotic arm using RL. You'll get familiar with several widely-used tools for training, monitoring and sharing machine learning models.
-
-### Get familiar with Stable-Baselines3
-
-Stable-Baselines3 (SB3) is a high-level RL library that provides various algorithms and integrated tools to easily train and test reinforcement learning models.
-
-#### Installation
-
-```sh
-pip install stable-baselines3
-pip install stable-baselines3[extra]
-pip install moviepy
-```
-
-#### Usage
-
-Use the [Stable-Baselines3 documentation](https://stable-baselines3.readthedocs.io/en/master/) to implement the code to solve the CartPole environment with the Advantage Actor-Critic (A2C) algorithm.
-
-
-> 🛠 **To be handed in**
-> Store the code in `a2c_sb3_cartpole.py`. Unless otherwise stated, you'll work upon this file for the next sections.
-
-### Get familiar with Hugging Face Hub
-
-Hugging Face Hub is a platform for easy sharing and versioning of trained machine learning models. With Hugging Face Hub, you can quickly and easily share your models with others and make them usable through the API. For example, see the trained A2C agent for CartPole: https://huggingface.co/sb3/a2c-CartPole-v1. Hugging Face Hub provides an API to download and upload SB3 models.
-
-#### Installation of `huggingface_sb3`
-
-```sh
-pip install huggingface-sb3==2.3.1
-```
-
-#### Upload the model on the Hub
-
-Follow the [Hugging Face Hub documentation](https://huggingface.co/docs/hub/stable-baselines3) to upload the previously learned model to the Hub.
-
-> 🛠 **To be handed in**
-> Link the trained model in the `README.md` file.
-
-> 📝 **Note**
->  [RL-Zoo3](https://stable-baselines3.readthedocs.io/en/master/guide/rl_zoo.html) provides more advanced features to save hyperparameters, generate renderings and metrics. Feel free to try them.
-
-### Get familiar with Weights & Biases
-
-Weights & Biases (W&B) is a tool for machine learning experiment management. With W&B, you can track and compare your experiments, visualize your model training and performance.
-
-#### Installation
-
-You'll need to install both `wand` and `tensorboar`.
-
-```shell
-pip install wandb tensorboard
-```
-
-Use the documentation of [Stable-Baselines3](https://stable-baselines3.readthedocs.io/en/master/) and [Weights & Biases](https://docs.wandb.ai/guides/integrations/stable-baselines-3) to track the CartPole training. Make the run public.
-
-🛠 Share the link of the wandb run in the `README.md` file.
-
-> ⚠️ **Warning**
-> Make sure to make the run public!
-
-### Full workflow with panda-gym
-
-[Panda-gym](https://github.com/qgallouedec/panda-gym) is a collection of environments for robotic simulation and control. It provides a range of challenges for training robotic agents in a simulated environment. In this section, you will get familiar with one of the environments provided by panda-gym, the `PandaReachJointsDense-v3`. The objective is to learn how to reach any point in 3D space by directly controlling the robot's articulations.
-
-#### Installation
-
-```shell
-pip install panda-gym==3.0.7
-```
-
-#### Train, track, and share
-
-Use the Stable-Baselines3 package to train A2C model on the `PandaReachJointsDense-v3` environment. 500k timesteps should be enough. Track the environment with Weights & Biases. Once the training is over, upload the trained model on the Hub.
-
-> 🛠 **To be handed in**
-> Share all the code in `a2c_sb3_panda_reach.py`. Share the link of the wandb run and the trained model in the `README.md` file.
-
-## Contribute
-
-This tutorial may contain errors, inaccuracies, typos or areas for improvement. Feel free to contribute to its improvement by opening an issue.
-
-## Author
-
-Quentin Gallouédec
-
-Updates by Bruno Machado, Léo Schneider, Emmanuel Dellandréa
-
-## License
-
-MIT
+# Hands-On Reinforcement Learning
+Thomas DESGREYS
+## REINFORCE algorithm
+### Training
+The model is trained and as save as "reinforce_cartpole_best.pth" and the evolutions of loss and score (aka reward)
+through the episodes are shown below.
+![cartpole loss](cartpole_loss.png)
+![cartpole score](cartpole_score.png)
+These graphics point out the instability of this training algorithm.
+Although, with a bit of luck we end up with a model that reaches the max steps permitted by this gym environment
+(500 steps)
+
+
+### Evaluation
+During evaluation, we get a 100% success rate.
\ No newline at end of file
diff --git a/cartpole_loss.png b/cartpole_loss.png
new file mode 100644
index 0000000000000000000000000000000000000000..7cad046e53e3dc437ced97578187a3be5b27a466
GIT binary patch
literal 55569
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

literal 0
HcmV?d00001

diff --git a/cartpole_score.png b/cartpole_score.png
new file mode 100644
index 0000000000000000000000000000000000000000..ee2787e952f0287524ccbb7e3ec24a1df766d3c6
GIT binary patch
literal 50935
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

literal 0
HcmV?d00001

diff --git a/evaluate_reinforce_cartpole.py b/evaluate_reinforce_cartpole.py
new file mode 100644
index 0000000..507de93
--- /dev/null
+++ b/evaluate_reinforce_cartpole.py
@@ -0,0 +1,59 @@
+import torch
+import gym
+import torch.nn as nn
+import torch.nn.functional as F
+from torch.distributions import Categorical
+
+
+# Define the CNN architecture
+class Net(nn.Module):
+    def __init__(self):
+        super(Net, self).__init__()
+        self.fc1 = nn.Linear(4, 128) # input : size 4 environment observation
+        self.fc2 = nn.Linear(128, 2)  # output : 2 possible output (left or right)
+        self.dropout = nn.Dropout(0.25)
+        self.softmax = nn.Softmax(dim=0)
+
+    def forward(self, x):
+        x = F.relu(self.fc1(x))
+        x = self.dropout(x)
+        x = self.fc2(x)
+        x = self.softmax(x)
+        return x
+
+
+def select_action(model, state):
+    # Get the new probabilities of action
+    prob = model(torch.tensor(state))
+    # Sample the action based on the probabilities and store its probability in the buffer
+    m = Categorical(prob)  # create a discreet distribution
+    action = m.sample()  # choose a random action following the probabilities
+    return action
+
+
+def evaluate(model, env, episodes=100):
+    successes = 0
+    for ep in range(episodes):
+        print(f"{ep}/{episodes}")
+        state, _ = env.reset()
+        total_reward = 0
+        done = False
+        truncated = False
+        step = 0
+        while not (done or truncated):
+            action = select_action(model, state)
+            state, reward, done, truncated, _ = env.step(action.item())
+            total_reward += reward
+            step += 1
+        if truncated:
+            successes += 1
+    return successes / episodes
+
+
+if __name__ == "__main__":
+    env = gym.make("CartPole-v1", render_mode=None)
+    model = Net()
+    model.load_state_dict(torch.load("reinforce_cartpole_best.pth"))
+    model.eval()
+    success_rate = evaluate(model, env)
+    print(f"Success Rate: {success_rate * 100:.2f}%")
\ No newline at end of file
diff --git a/reinforce_cartpole.py b/reinforce_cartpole.py
new file mode 100644
index 0000000..94b57c1
--- /dev/null
+++ b/reinforce_cartpole.py
@@ -0,0 +1,125 @@
+import matplotlib.pyplot as plt
+import torch
+import torch.nn as nn
+import torch.optim as optim
+import gym
+from torch.distributions import Categorical
+import torch.nn.functional as F
+
+
+
+
+# Initialize the tracking of the cartpole learning
+# wandb.init(project="cartpole_handmade")
+
+# Define the CNN architecture
+class Net(nn.Module):
+    def __init__(self):
+        super(Net, self).__init__()
+        self.fc1 = nn.Linear(4, 128) # input : size 4 environment observation
+        self.fc2 = nn.Linear(128, 2)  # output : 2 possible output (left or right)
+        self.dropout = nn.Dropout(0.25)
+        self.softmax = nn.Softmax(dim=0)
+
+    def forward(self, x):
+        x = F.relu(self.fc1(x))
+        x = self.dropout(x)
+        x = self.fc2(x)
+        x = self.softmax(x)
+        return x
+
+
+# Environment and model parameters
+env = gym.make("CartPole-v1", render_mode=None) # render_mode="human" to see the render
+
+model = Net()
+optimizer = optim.Adam(model.parameters(), lr=5e-3)
+gamma = 0.99
+
+max_eps_steps = env.spec.max_episode_steps
+print("Nombre max d'étapes par épisode :", max_eps_steps)
+nb_ep = 500
+print("Nombre d'épisodes :", nb_ep)
+
+# Progress lists
+losses = []
+score = [] # store the step reach at each episode
+
+for iter in range(nb_ep):
+    # Reset the environment at the beginning of a new episode
+    observation, _ = env.reset()
+    done = False
+    truncated = False
+
+    # Reset the previous results
+    buffer = torch.zeros(max_eps_steps) # store the cumulated reward at each step
+    probs = torch.zeros(max_eps_steps) # store the probability of each step
+    step = 0
+
+    while not (done or truncated):
+
+        # Get the new probabilities of action
+        prob = model(torch.tensor(observation))
+
+        # Sample the action based on the probabilities and store its probability in the buffer
+        m = Categorical(prob) # create a discreet distribution
+        action = m.sample() # choose a random action following the probabilities
+        probs[step] = prob[action] # store the probability of the next step
+
+        # Step the environment with the chosen action
+        observation, reward, done, truncated, _ = env.step(action.item())
+
+        # Update buffer with the new reward
+        for i in range(step+1):
+            buffer[i] += reward * gamma ** (step - i) # cumulated reward
+
+        step += 1
+
+
+    # Add the current step to the list of scores
+    score.append(step)
+
+    # Adjust results' size and normalize buffer
+    buffer = buffer[:step]
+    probs = probs[:step]
+    F.normalize(buffer, dim=0)
+
+    # Compute loss
+    logs = torch.log10(probs)
+    loss = - torch.sum(torch.mul(logs, buffer))
+    losses.append(loss)
+
+    # Print progress
+    if (iter + 1) % 50 == 0:
+        print("Épisode : {} / {}".format(iter + 1, nb_ep))
+        print("Score : ", step)
+        print("Loss : ", round(loss.item(), 2))
+
+    # Perform gradient descent to update neural network
+    optimizer.zero_grad()
+    loss.backward()
+    optimizer.step()
+
+    # Log the progress in Weights and Biases
+    # wandb.log({'Reward': step, 'Loss': loss.item()})
+
+# saving of the model
+torch.save(model.state_dict(), "reinforce_cartpole_best.pth")
+
+# Plot the evolution of learning : reward and loss
+# Reward
+plt.plot(score)
+plt.xlabel('Épisode')
+plt.ylabel('Step')
+plt.title("Évolution du score en fonction de l'épisode")
+plt.show()
+
+# Loss
+total_losses = [loss.item() for loss in losses]
+plt.plot(total_losses)
+plt.xlabel('Épisode')
+plt.ylabel('Loss')
+plt.title("Évolution du loss en fonction de l'épisode")
+plt.show()
+
+
diff --git a/reinforce_cartpole_best.pth b/reinforce_cartpole_best.pth
new file mode 100644
index 0000000000000000000000000000000000000000..5706316c666e436c7335a0c56c9a062e678249d4
GIT binary patch
literal 5800
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
SW(5u5F>o+&Fo4uU)B*sjHVpp&

literal 0
HcmV?d00001

diff --git a/sujet.md b/sujet.md
new file mode 100644
index 0000000..88a21a5
--- /dev/null
+++ b/sujet.md
@@ -0,0 +1,227 @@
+# TD 1 : Hands-On Reinforcement Learning
+
+MSO 3.4 Apprentissage Automatique
+
+# 
+
+In this hands-on project, we will first implement a simple RL algorithm and apply it to solve the CartPole-v1 environment. Once we become familiar with the basic workflow, we will learn to use various tools for machine learning model training, monitoring, and sharing, by applying these tools to train a robotic arm.
+
+## To be handed in
+
+This work must be done individually. The expected output is a repository named `hands-on-rl` on https://gitlab.ec-lyon.fr. 
+
+We assume that `git` is installed, and that you are familiar with the basic `git` commands. (Optionnaly, you can use GitHub Desktop.)
+We also assume that you have access to the [ECL GitLab](https://gitlab.ec-lyon.fr/). If necessary, please consult [this tutorial](https://gitlab.ec-lyon.fr/edelland/inf_tc2/-/blob/main/Tutoriel_gitlab/tutoriel_gitlab.md).
+
+Your repository must contain a `README.md` file that explains **briefly** the successive steps of the project. It must be private, so you need to add your teacher as "developer" member.
+
+Throughout the subject, you will find a 🛠 symbol indicating that a specific production is expected.
+
+The last commit is due before 11:59 pm on March 17, 2025. Subsequent commits will not be considered.
+
+> ⚠️ **Warning**
+> Ensure that you only commit the files that are requested. For example, your directory should not contain the generated `.zip` files, nor the `runs` folder... At the end, your repository must contain one `README.md`, three python scripts, and optionally image files for the plots.
+
+## Before you start
+
+Make sure you know the basics of Reinforcement Learning. In case of need, you can refer to the [introduction of the Hugging Face RL course](https://huggingface.co/blog/deep-rl-intro).
+
+## Introduction to Gym
+
+[Gym](https://gymnasium.farama.org/) is a framework for developing and evaluating reinforcement learning environments. It offers various environments, including classic control and toy text scenarios, to test RL algorithms.
+
+### Installation
+
+We recommend to use Python virtual environnements to install the required modules : https://docs.python.org/3/library/venv.html
+
+First, install Pytorch : https://pytorch.org/get-started/locally.
+
+Then install the following modules :
+
+
+```sh
+pip install gym==0.26.2
+```
+
+Install also pyglet for the rendering.
+
+```sh
+pip install pyglet==2.0.10
+```
+
+```sh
+pip install numpy==1.26.4
+```
+
+If needed 
+
+```sh
+pip install pygame==2.5.2
+```
+
+```sh
+pip install PyQt5
+```
+
+```sh
+pip install opencv-python
+```
+
+### Usage
+
+Here is an example of how to use Gym to solve the `CartPole-v1` environment [Documentation](https://gymnasium.farama.org/environments/classic_control/cart_pole/):
+
+```python
+import gym
+
+# Create the environment
+env = gym.make("CartPole-v1", render_mode="human")
+
+# Reset the environment and get the initial observation
+observation = env.reset()
+
+for _ in range(100):
+    # Select a random action from the action space
+    action = env.action_space.sample()
+    # Apply the action to the environment
+    # Returns next observation, reward, done signal (indicating
+    # if the episode has ended), and an additional info dictionary
+    observation, reward, terminated, truncated, info = env.step(action)
+    # Render the environment to visualize the agent's behavior
+    env.render()
+    if terminated: 
+        # Terminated before max step
+        break
+
+env.close()
+```
+
+## REINFORCE
+
+The REINFORCE algorithm (also known as Vanilla Policy Gradient) is a policy gradient method that optimizes the policy directly using gradient descent. The following is the pseudocode of the REINFORCE algorithm:
+
+```txt
+Setup the CartPole environment
+Setup the agent as a simple neural network with:
+    - One fully connected layer with 128 units and ReLU activation followed by a dropout layer
+    - One fully connected layer followed by softmax activation
+Repeat 500 times:
+    Reset the environment
+    Reset the buffer
+    Repeat until the end of the episode:
+        Compute action probabilities 
+        Sample the action based on the probabilities and store its probability in the buffer 
+        Step the environment with the action
+        Compute and store in the buffer the return using gamma=0.99 
+    Normalize the return
+    Compute the policy loss as -sum(log(prob) * return)
+    Update the policy using an Adam optimizer and a learning rate of 5e-3
+Save the model weights
+```
+
+To learn more about REINFORCE, you can refer to [this unit](https://huggingface.co/learn/deep-rl-course/unit4/introduction).
+
+> 🛠 **To be handed in**
+> Use PyTorch to implement REINFORCE and solve the CartPole environement. Share the code in `reinforce_cartpole.py`, and share a plot showing the total reward accross episodes in the `README.md`. Also, share a file `reinforce_cartpole.pth` containing the learned weights. For saving and loading PyTorch models, check [this tutorial](https://pytorch.org/tutorials/beginner/saving_loading_models.html#saving-loading-model-for-inference)
+
+## Model Evaluation
+
+Now that you have trained your model, it is time to evaluate its performance. Run it with rendering for a few trials and see if the policy is capable of completing the task.
+
+> 🛠 **To be handed in**
+> Implement a script which loads your saved model and use it to solve the cartpole enviroment. Run 100 evaluations and share the final success rate across all evaluations in the `README.md`. Share the code in `evaluate_reinforce_cartpole.py`.
+
+
+## Familiarization with a complete RL pipeline: Application to training a robotic arm
+
+In this section, you will use the Stable-Baselines3 package to train a robotic arm using RL. You'll get familiar with several widely-used tools for training, monitoring and sharing machine learning models.
+
+### Get familiar with Stable-Baselines3
+
+Stable-Baselines3 (SB3) is a high-level RL library that provides various algorithms and integrated tools to easily train and test reinforcement learning models.
+
+#### Installation
+
+```sh
+pip install stable-baselines3
+pip install stable-baselines3[extra]
+pip install moviepy
+```
+
+#### Usage
+
+Use the [Stable-Baselines3 documentation](https://stable-baselines3.readthedocs.io/en/master/) to implement the code to solve the CartPole environment with the Advantage Actor-Critic (A2C) algorithm.
+
+
+> 🛠 **To be handed in**
+> Store the code in `a2c_sb3_cartpole.py`. Unless otherwise stated, you'll work upon this file for the next sections.
+
+### Get familiar with Hugging Face Hub
+
+Hugging Face Hub is a platform for easy sharing and versioning of trained machine learning models. With Hugging Face Hub, you can quickly and easily share your models with others and make them usable through the API. For example, see the trained A2C agent for CartPole: https://huggingface.co/sb3/a2c-CartPole-v1. Hugging Face Hub provides an API to download and upload SB3 models.
+
+#### Installation of `huggingface_sb3`
+
+```sh
+pip install huggingface-sb3==2.3.1
+```
+
+#### Upload the model on the Hub
+
+Follow the [Hugging Face Hub documentation](https://huggingface.co/docs/hub/stable-baselines3) to upload the previously learned model to the Hub.
+
+> 🛠 **To be handed in**
+> Link the trained model in the `README.md` file.
+
+> 📝 **Note**
+>  [RL-Zoo3](https://stable-baselines3.readthedocs.io/en/master/guide/rl_zoo.html) provides more advanced features to save hyperparameters, generate renderings and metrics. Feel free to try them.
+
+### Get familiar with Weights & Biases
+
+Weights & Biases (W&B) is a tool for machine learning experiment management. With W&B, you can track and compare your experiments, visualize your model training and performance.
+
+#### Installation
+
+You'll need to install both `wand` and `tensorboar`.
+
+```shell
+pip install wandb tensorboard
+```
+
+Use the documentation of [Stable-Baselines3](https://stable-baselines3.readthedocs.io/en/master/) and [Weights & Biases](https://docs.wandb.ai/guides/integrations/stable-baselines-3) to track the CartPole training. Make the run public.
+
+🛠 Share the link of the wandb run in the `README.md` file.
+
+> ⚠️ **Warning**
+> Make sure to make the run public!
+
+### Full workflow with panda-gym
+
+[Panda-gym](https://github.com/qgallouedec/panda-gym) is a collection of environments for robotic simulation and control. It provides a range of challenges for training robotic agents in a simulated environment. In this section, you will get familiar with one of the environments provided by panda-gym, the `PandaReachJointsDense-v3`. The objective is to learn how to reach any point in 3D space by directly controlling the robot's articulations.
+
+#### Installation
+
+```shell
+pip install panda-gym==3.0.7
+```
+
+#### Train, track, and share
+
+Use the Stable-Baselines3 package to train A2C model on the `PandaReachJointsDense-v3` environment. 500k timesteps should be enough. Track the environment with Weights & Biases. Once the training is over, upload the trained model on the Hub.
+
+> 🛠 **To be handed in**
+> Share all the code in `a2c_sb3_panda_reach.py`. Share the link of the wandb run and the trained model in the `README.md` file.
+
+## Contribute
+
+This tutorial may contain errors, inaccuracies, typos or areas for improvement. Feel free to contribute to its improvement by opening an issue.
+
+## Author
+
+Quentin Gallouédec
+
+Updates by Bruno Machado, Léo Schneider, Emmanuel Dellandréa
+
+## License
+
+MIT
-- 
GitLab