diff --git a/BHPD.Keras3/01-DNN-Regression.ipynb b/BHPD.Keras3/01-DNN-Regression.ipynb
index fdb202a5232aeb590ebf4d1dfd3b545314c59c0b..df158894ee1ac37b143a230278266c7ece2a61fb 100644
--- a/BHPD.Keras3/01-DNN-Regression.ipynb
+++ b/BHPD.Keras3/01-DNN-Regression.ipynb
@@ -124,7 +124,7 @@
     "## Step 2 - Retrieve data\n",
     "\n",
     "### 2.1 - Option 1  : From Keras\n",
-    "Boston housing is a famous historic dataset, so we can get it directly from [Keras datasets](https://www.tensorflow.org/api_docs/python/tf/keras/datasets)  "
+    "Boston housing is a famous historic dataset, so we can get it directly from [Keras datasets](https://keras.io/api/datasets)  "
    ]
   },
   {
@@ -231,10 +231,10 @@
    "source": [
     "## Step 4 - Build a model\n",
     "About informations about : \n",
-    " - [Optimizer](https://www.tensorflow.org/api_docs/python/tf/keras/optimizers)\n",
-    " - [Activation](https://www.tensorflow.org/api_docs/python/tf/keras/activations)\n",
-    " - [Loss](https://www.tensorflow.org/api_docs/python/tf/keras/losses)\n",
-    " - [Metrics](https://www.tensorflow.org/api_docs/python/tf/keras/metrics)"
+    " - [Optimizer](https://keras.io/api/optimizers)\n",
+    " - [Activation](https://keras.io/api/layers/activations)\n",
+    " - [Loss](https://keras.io/api/losses)\n",
+    " - [Metrics](https://keras.io/api/metrics)"
    ]
   },
   {
diff --git a/BHPD.Keras3/02-DNN-Regression-Premium.ipynb b/BHPD.Keras3/02-DNN-Regression-Premium.ipynb
index 65cdd8bd312dffde3374e99ee2fa463427ad70fa..626b5e80b82994d8caf9db520212a8a25516ad40 100644
--- a/BHPD.Keras3/02-DNN-Regression-Premium.ipynb
+++ b/BHPD.Keras3/02-DNN-Regression-Premium.ipynb
@@ -123,7 +123,7 @@
     "## Step 2 - Retrieve data\n",
     "\n",
     "### 2.1 - Option 1  : From Keras\n",
-    "Boston housing is a famous historic dataset, so we can get it directly from [Keras datasets](https://www.tensorflow.org/api_docs/python/tf/keras/datasets)  "
+    "Boston housing is a famous historic dataset, so we can get it directly from [Keras datasets](https://keras.io/api/datasets)  "
    ]
   },
   {
@@ -226,10 +226,10 @@
    "source": [
     "## Step 4 - Build a model\n",
     "More informations about : \n",
-    " - [Optimizer](https://www.tensorflow.org/api_docs/python/tf/keras/optimizers)\n",
-    " - [Activation](https://www.tensorflow.org/api_docs/python/tf/keras/activations)\n",
-    " - [Loss](https://www.tensorflow.org/api_docs/python/tf/keras/losses)\n",
-    " - [Metrics](https://www.tensorflow.org/api_docs/python/tf/keras/metrics)"
+    " - [Optimizer](https://keras.io/api/optimizers)\n",
+    " - [Activation](https://keras.io/api/layers/activations)\n",
+    " - [Loss](https://keras.io/api/losses)\n",
+    " - [Metrics](https://keras.io/api/metrics)"
    ]
   },
   {
diff --git a/BHPD.PyTorch/01-DNN-Regression_PyTorch.ipynb b/BHPD.PyTorch/01-DNN-Regression_PyTorch.ipynb
index e75b7ad4fe4d0415dadf440cdd7c234a88968167..b2dcb48ff709333de533f024574c65f8ebecb8e2 100644
--- a/BHPD.PyTorch/01-DNN-Regression_PyTorch.ipynb
+++ b/BHPD.PyTorch/01-DNN-Regression_PyTorch.ipynb
@@ -208,7 +208,7 @@
    "source": [
     "## Step 5 - Train the model\n",
     "\n",
-    "#### 5.1 - stochastic gradient descent strategy to fit the model"
+    "### 5.1 - Stochastic gradient descent strategy to fit the model"
    ]
   },
   {
@@ -262,7 +262,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "##### 5.2 - get the model"
+    "#### 5.2 - Get the model"
    ]
   },
   {
@@ -283,7 +283,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "##### 5.3 - train the model"
+    "#### 5.3 - Train the model"
    ]
   },
   {
diff --git a/Embedding.Keras3/01-One-hot-encoding.ipynb b/Embedding.Keras3/01-One-hot-encoding.ipynb
index 7c7451c72d7da7a9a014506a04ec7c8cfeb07fdf..a66ba609a77fbdbc5a8d576a9d961d52110703f8 100644
--- a/Embedding.Keras3/01-One-hot-encoding.ipynb
+++ b/Embedding.Keras3/01-One-hot-encoding.ipynb
@@ -16,7 +16,7 @@
     "\n",
     "Original dataset can be find **[there](http://ai.stanford.edu/~amaas/data/sentiment/)**  \n",
     "Note that [IMDb.com](https://imdb.com) offers several easy-to-use [datasets](https://www.imdb.com/interfaces/)  \n",
-    "For simplicity's sake, we'll use the dataset directly [embedded in Keras](https://www.tensorflow.org/api_docs/python/tf/keras/datasets)\n",
+    "For simplicity's sake, we'll use the dataset directly [embedded in Keras](https://keras.io/datasets)\n",
     "\n",
     "## What we're going to do :\n",
     "\n",
@@ -177,7 +177,7 @@
    "source": [
     "## Step 3 - Retrieve data\n",
     "\n",
-    "IMDb dataset can bet get directly from Keras - see [documentation](https://www.tensorflow.org/api_docs/python/tf/keras/datasets)  \n",
+    "IMDb dataset can bet get directly from Keras - see [documentation](https://keras.io/api/datasets/imdb/)  \n",
     "Note : Due to their nature, textual data can be somewhat complex.\n",
     "\n",
     "### 3.1 - Data structure :  \n",
@@ -211,8 +211,8 @@
    "metadata": {},
    "source": [
     "### 3.2 - Load dataset\n",
-    "For simplicity, we will use a pre-formatted dataset - See [documentation](https://www.tensorflow.org/api_docs/python/tf/keras/datasets/imdb/load_data)  \n",
-    "However, Keras offers some usefull tools for formatting textual data - See [documentation](https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/text)  \n",
+    "For simplicity, we will use a pre-formatted dataset - See [documentation](https://keras.io/api/datasets/imdb)  \n",
+    "However, Keras offers some useful tools for formatting textual data - See [documentation](hhttps://keras.io/api/layers/preprocessing_layers/text/text_vectorization/)  \n",
     "\n",
     "By default : \n",
     " - Start of a sequence will be marked with : 1\n",
diff --git a/Embedding.Keras3/02-Keras-embedding.ipynb b/Embedding.Keras3/02-Keras-embedding.ipynb
index 21f5fa001b4a4e3d4ea75141a6170580644aaa16..face9b5215f594fd5c784ac9c9310ce1bc357f3a 100644
--- a/Embedding.Keras3/02-Keras-embedding.ipynb
+++ b/Embedding.Keras3/02-Keras-embedding.ipynb
@@ -16,7 +16,7 @@
     "\n",
     "Original dataset can be find **[there](http://ai.stanford.edu/~amaas/data/sentiment/)**  \n",
     "Note that [IMDb.com](https://imdb.com) offers several easy-to-use [datasets](https://www.imdb.com/interfaces/)  \n",
-    "For simplicity's sake, we'll use the dataset directly [embedded in Keras](https://www.tensorflow.org/api_docs/python/tf/keras/datasets)\n",
+    "For simplicity's sake, we'll use the dataset directly [embedded in Keras](https://keras.io/datasets)\n",
     "\n",
     "## What we're going to do :\n",
     "\n",
@@ -114,7 +114,7 @@
    "source": [
     "## Step 2 - Retrieve data\n",
     "\n",
-    "IMDb dataset can bet get directly from Keras - see [documentation](https://www.tensorflow.org/api_docs/python/tf/keras/datasets)  \n",
+    "IMDb dataset can bet get directly from Keras - see [documentation](https://keras.io/api/datasets)  \n",
     "Note : Due to their nature, textual data can be somewhat complex.\n",
     "\n",
     "For more details about the management of this dataset, see notebook [IMDB1](01-One-hot-encoding.ipynb)"
@@ -249,8 +249,8 @@
     "## Step 4 - Build the model\n",
     "\n",
     "More documentation about this model functions :\n",
-    " - [Embedding](https://www.tensorflow.org/api_docs/python/tf/keras/layers/Embedding)\n",
-    " - [GlobalAveragePooling1D](https://www.tensorflow.org/api_docs/python/tf/keras/layers/GlobalAveragePooling1D)"
+    " - [Embedding](https://keras.io/api/layers/core_layers/embedding/)\n",
+    " - [GlobalAveragePooling1D](https://keras.io/api/layers/pooling_layers/global_average_pooling1d/)"
    ]
   },
   {
diff --git a/Embedding.Keras3/03-Prediction.ipynb b/Embedding.Keras3/03-Prediction.ipynb
index ed1642084b1b904f8f3e88fd53b795b110654a7c..e6d478c9358ff5d872d1b4ab4b1229eb6c4f2ea1 100644
--- a/Embedding.Keras3/03-Prediction.ipynb
+++ b/Embedding.Keras3/03-Prediction.ipynb
@@ -114,7 +114,7 @@
    "metadata": {},
    "source": [
     "### 2.2 - Retrieve dictionaries\n",
-    "Note : This dictionary is generated by [01-Embedding-Keras](01-Embedding-Keras.ipynb) notebook."
+    "Note : This dictionary is generated by [02-Embedding-Keras](02-Keras-embedding.ipynb) notebook."
    ]
   },
   {
diff --git a/Embedding.Keras3/05-LSTM-Keras.ipynb b/Embedding.Keras3/05-LSTM-Keras.ipynb
index 620c3c86335fd89a1a3a76669f4cdd7dea63b586..b5aa4bff11b5d7dfa51e842768894db1f191ec66 100644
--- a/Embedding.Keras3/05-LSTM-Keras.ipynb
+++ b/Embedding.Keras3/05-LSTM-Keras.ipynb
@@ -16,7 +16,7 @@
     "\n",
     "Original dataset can be find **[there](http://ai.stanford.edu/~amaas/data/sentiment/)**  \n",
     "Note that [IMDb.com](https://imdb.com) offers several easy-to-use [datasets](https://www.imdb.com/interfaces/)  \n",
-    "For simplicity's sake, we'll use the dataset directly [embedded in Keras](https://www.tensorflow.org/api_docs/python/tf/keras/datasets)\n",
+    "For simplicity's sake, we'll use the dataset directly [embedded in Keras](https://keras.io/datasets)\n",
     "\n",
     "## What we're going to do :\n",
     "\n",
@@ -111,7 +111,7 @@
    "source": [
     "## Step 3 - Retrieve data\n",
     "\n",
-    "IMDb dataset can bet get directly from Keras - see [documentation](https://www.tensorflow.org/api_docs/python/tf/keras/datasets)  \n",
+    "IMDb dataset can bet get directly from Keras - see [documentation](https://keras.io/api/datasets)  \n",
     "Note : Due to their nature, textual data can be somewhat complex."
    ]
   },
@@ -120,8 +120,8 @@
    "metadata": {},
    "source": [
     "### 3.1 - Get dataset\n",
-    "For simplicity, we will use a pre-formatted dataset - See [documentation](https://www.tensorflow.org/api_docs/python/tf/keras/datasets/imdb/load_data)  \n",
-    "However, Keras offers some usefull tools for formatting textual data - See [documentation](https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/text)  \n",
+    "For simplicity, we will use a pre-formatted dataset - See [documentation](https://keras.io/api/datasets/imdb/)  \n",
+    "However, Keras offers some usefull tools for formatting textual data - See [documentation](https://keras.io/api/layers/preprocessing_layers/text/text_vectorization/)  \n",
     "\n",
     "**Load dataset :**"
    ]
@@ -252,8 +252,8 @@
     "## Step 5 - Build the model\n",
     "\n",
     "More documentation about this model functions :\n",
-    " - [Embedding](https://www.tensorflow.org/api_docs/python/tf/keras/layers/Embedding)\n",
-    " - [GlobalAveragePooling1D](https://www.tensorflow.org/api_docs/python/tf/keras/layers/GlobalAveragePooling1D)"
+    " - [Embedding](https://keras.io/api/layers/core_layers/embedding/)\n",
+    " - [GlobalAveragePooling1D](https://keras.io/api/layers/pooling_layers/global_average_pooling1d)"
    ]
   },
   {
diff --git a/MNIST.Keras3/01-DNN-MNIST.ipynb b/MNIST.Keras3/01-DNN-MNIST.ipynb
index 81cd2d788c59a4b0b3fe6220b74df7c803607edd..44f964964ad40c2b886bcf6c903c73e33ef05f26 100644
--- a/MNIST.Keras3/01-DNN-MNIST.ipynb
+++ b/MNIST.Keras3/01-DNN-MNIST.ipynb
@@ -96,7 +96,7 @@
    "source": [
     "## Step 2 - Retrieve data\n",
     "MNIST is one of the most famous historic dataset.  \n",
-    "Include in [Keras datasets](https://www.tensorflow.org/api_docs/python/tf/keras/datasets)"
+    "Include in [Keras datasets](https://keras.io/datasets)"
    ]
   },
   {
@@ -158,10 +158,10 @@
    "source": [
     "## Step 4 - Create model\n",
     "About informations about : \n",
-    " - [Optimizer](https://www.tensorflow.org/api_docs/python/tf/keras/optimizers)\n",
-    " - [Activation](https://www.tensorflow.org/api_docs/python/tf/keras/activations)\n",
-    " - [Loss](https://www.tensorflow.org/api_docs/python/tf/keras/losses)\n",
-    " - [Metrics](https://www.tensorflow.org/api_docs/python/tf/keras/metrics)"
+    " - [Optimizer](https://keras.io/api/optimizers)\n",
+    " - [Activation](https://keras.io/api/layers/activations)\n",
+    " - [Loss](https://keras.io/api/losses)\n",
+    " - [Metrics](https://keras.io/api/metrics)"
    ]
   },
   {
diff --git a/MNIST.Keras3/02-CNN-MNIST.ipynb b/MNIST.Keras3/02-CNN-MNIST.ipynb
index 19c6b220d842a795297699eccda77e4373495a51..014e46f9d100e2e3eb4c2000faf0613426d120d9 100644
--- a/MNIST.Keras3/02-CNN-MNIST.ipynb
+++ b/MNIST.Keras3/02-CNN-MNIST.ipynb
@@ -96,7 +96,7 @@
    "source": [
     "## Step 2 - Retrieve data\n",
     "MNIST is one of the most famous historic dataset.  \n",
-    "Include in [Keras datasets](https://www.tensorflow.org/api_docs/python/tf/keras/datasets)"
+    "Include in [Keras datasets](https://keras.io/datasets)"
    ]
   },
   {
@@ -161,10 +161,10 @@
    "source": [
     "## Step 4 - Create model\n",
     "About informations about : \n",
-    " - [Optimizer](https://www.tensorflow.org/api_docs/python/tf/keras/optimizers)\n",
-    " - [Activation](https://www.tensorflow.org/api_docs/python/tf/keras/activations)\n",
-    " - [Loss](https://www.tensorflow.org/api_docs/python/tf/keras/losses)\n",
-    " - [Metrics](https://www.tensorflow.org/api_docs/python/tf/keras/metrics)"
+    " - [Optimizer](https://keras.io/api/optimizers)\n",
+    " - [Activation](https://keras.io/api/layers/activations)\n",
+    " - [Loss](https://keras.io/api/losses)\n",
+    " - [Metrics](https://keras.io/api/metrics)"
    ]
   },
   {
diff --git a/MNIST.PyTorch/01-DNN-MNIST_PyTorch.ipynb b/MNIST.PyTorch/01-DNN-MNIST_PyTorch.ipynb
index 94e1c34cf646d73651f9e0af5e6652a282b2df33..674eee50c2c33bf4707da17a4d47eb5923c4ede9 100644
--- a/MNIST.PyTorch/01-DNN-MNIST_PyTorch.ipynb
+++ b/MNIST.PyTorch/01-DNN-MNIST_PyTorch.ipynb
@@ -66,7 +66,7 @@
    "source": [
     "## Step 2 - Retrieve data\n",
     "MNIST is one of the most famous historic dataset.  \n",
-    "Include in [torchvision datasets](https://pytorch.org/docs/stable/torchvision/datasets.html)"
+    "Include in [torchvision datasets](https://pytorch.org/vision/stable/datasets.html)"
    ]
   },
   {
@@ -189,9 +189,9 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "### Step 5 - Train the model\n",
+    "## Step 5 - Train the model\n",
     "\n",
-    "#### 5.1 - stochastic gradient descent strategy to fit the model\n"
+    "### 5.1 - Stochastic gradient descent strategy to fit the model\n"
    ]
   },
   {
@@ -246,7 +246,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "##### 5.2 - fit the model"
+    "### 5.2 - Fit the model"
    ]
   },
   {
diff --git a/Perceptron/01-Simple-Perceptron.ipynb b/Perceptron/01-Simple-Perceptron.ipynb
index aab34c20749a0f46b7201778296beae23841f917..ff37a5abc5474de5456fbd6c4ced568b53d8a794 100644
--- a/Perceptron/01-Simple-Perceptron.ipynb
+++ b/Perceptron/01-Simple-Perceptron.ipynb
@@ -52,7 +52,7 @@
     "## Step 2 - Prepare IRIS Dataset\n",
     "\n",
     "Retrieve a dataset : http://scikit-learn.org/stable/modules/classes.html#module-sklearn.datasets  \n",
-    "About the datesets : http://scikit-learn.org/stable/datasets/index.html  \n",
+    "About the datesets : https://scikit-learn.org/stable/datasets.html#datasets  \n",
     "\n",
     "Data fields (X) :\n",
     "- 0 : sepal length in cm\n",
diff --git a/Wine.Keras3/01-DNN-Wine-Regression.ipynb b/Wine.Keras3/01-DNN-Wine-Regression.ipynb
index f3abe84f3f40c5f6cfecaecf2aa152971fa84740..dd9d1c51cf87150df3de03e88889e35fec5f05a7 100644
--- a/Wine.Keras3/01-DNN-Wine-Regression.ipynb
+++ b/Wine.Keras3/01-DNN-Wine-Regression.ipynb
@@ -18,7 +18,7 @@
     "This dataset is provide by :  \n",
     "Paulo Cortez, University of Minho, Guimarães, Portugal, http://www3.dsi.uminho.pt/pcortez  \n",
     "A. Cerdeira, F. Almeida, T. Matos and J. Reis, Viticulture Commission of the Vinho Verde Region(CVRVV), Porto, Portugal, @2009  \n",
-    "This dataset can be retreive at [University of California Irvine (UCI)](https://archive-beta.ics.uci.edu/ml/datasets/wine+quality)\n",
+    "This dataset can be retreive at [University of California Irvine (UCI)](https://archive.ics.uci.edu/dataset/186/wine+quality)\n",
     "\n",
     "\n",
     "Due to privacy and logistic issues, only physicochemical and sensory variables are available  \n",
@@ -202,10 +202,10 @@
    "source": [
     "## Step 4 - Build a model\n",
     "More informations about : \n",
-    " - [Optimizer](https://www.tensorflow.org/api_docs/python/tf/keras/optimizers)\n",
-    " - [Activation](https://www.tensorflow.org/api_docs/python/tf/keras/activations)\n",
-    " - [Loss](https://www.tensorflow.org/api_docs/python/tf/keras/losses)\n",
-    " - [Metrics](https://www.tensorflow.org/api_docs/python/tf/keras/metrics)"
+    " - [Optimizer](https://keras.io/api/optimizers)\n",
+    " - [Activation](https://keras.io/api/layers/activations)\n",
+    " - [Loss](https://keras.io/api/losses)\n",
+    " - [Metrics](https://keras.io/api/metrics)"
    ]
   },
   {