From def84a039c1301945fe0f61db0f89b09494e0d98 Mon Sep 17 00:00:00 2001 From: Sebastian Raschka Date: Sun, 23 Jun 2024 07:41:25 -0500 Subject: [PATCH] Show epochs as integers on x-axis (#241) * Show epochs as integers on x-axis * Update ch07/01_main-chapter-code/previous_chapters.py * remove extra s * modify exercise plots * update chapter 7 plot * resave ch07 for better file diff --- ch05/01_main-chapter-code/ch05.ipynb | 5 +- .../previous_chapters.py | 3 +- ch07/01_main-chapter-code/ch07.ipynb | 145 ++++++++++-------- .../exercise_experiments.py | 2 + .../01_main-chapter-code/previous_chapters.py | 2 + 5 files changed, 88 insertions(+), 69 deletions(-) diff --git a/ch05/01_main-chapter-code/ch05.ipynb b/ch05/01_main-chapter-code/ch05.ipynb index 21906af..dc829df 100644 --- a/ch05/01_main-chapter-code/ch05.ipynb +++ b/ch05/01_main-chapter-code/ch05.ipynb @@ -1347,6 +1347,8 @@ ], "source": [ "import matplotlib.pyplot as plt\n", + "from matplotlib.ticker import MaxNLocator\n", + "\n", "\n", "def plot_losses(epochs_seen, tokens_seen, train_losses, val_losses):\n", " fig, ax1 = plt.subplots(figsize=(5, 3))\n", @@ -1357,6 +1359,7 @@ " ax1.set_xlabel(\"Epochs\")\n", " ax1.set_ylabel(\"Loss\")\n", " ax1.legend(loc=\"upper right\")\n", + " ax1.xaxis.set_major_locator(MaxNLocator(integer=True)) # only show integer labels on x-axis\n", "\n", " # Create a second x-axis for tokens seen\n", " ax2 = ax1.twiny() # Create a second x-axis that shares the same y-axis\n", @@ -2455,7 +2458,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.6" + "version": "3.11.4" } }, "nbformat": 4, diff --git a/ch05/03_bonus_pretraining_on_gutenberg/previous_chapters.py b/ch05/03_bonus_pretraining_on_gutenberg/previous_chapters.py index 8f2e4da..0e0d8c0 100644 --- a/ch05/03_bonus_pretraining_on_gutenberg/previous_chapters.py +++ b/ch05/03_bonus_pretraining_on_gutenberg/previous_chapters.py @@ -12,7 +12,7 @@ import torch import torch.nn as nn from torch.utils.data import Dataset, DataLoader import matplotlib.pyplot as plt - +from matplotlib.ticker import MaxNLocator ##################################### # Chapter 2 @@ -295,6 +295,7 @@ def plot_losses(epochs_seen, tokens_seen, train_losses, val_losses, output_dir): ax1.set_xlabel("Epochs") ax1.set_ylabel("Loss") ax1.legend(loc="upper right") + ax1.xaxis.set_major_locator(MaxNLocator(integer=True)) # Create a second x-axis for tokens seen ax2 = ax1.twiny() # Create a second x-axis that shares the same y-axis diff --git a/ch07/01_main-chapter-code/ch07.ipynb b/ch07/01_main-chapter-code/ch07.ipynb index 45f1c5c..f72d1d0 100644 --- a/ch07/01_main-chapter-code/ch07.ipynb +++ b/ch07/01_main-chapter-code/ch07.ipynb @@ -41,17 +41,17 @@ "base_uri": "https://localhost:8080/" }, "id": "4e19327b-6c02-4881-ad02-9b6d3ec0b1b4", - "outputId": "5e54624b-a877-48c1-833e-1533ea0677db" + "outputId": "dce48855-f89e-4823-a9f1-ecd381162be9" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "matplotlib version: 3.9.0\n", - "tiktoken version: 0.5.1\n", - "torch version: 2.2.2\n", - "tqdm version: 4.66.2\n", + "matplotlib version: 3.7.1\n", + "tiktoken version: 0.7.0\n", + "torch version: 2.3.0+cu121\n", + "tqdm version: 4.66.4\n", "tensorflow version: 2.15.0\n" ] } @@ -153,7 +153,7 @@ "base_uri": "https://localhost:8080/" }, "id": "0G3axLw6kY1N", - "outputId": "f8037e64-eced-4e21-d104-b34d432215bf" + "outputId": "4bace1a2-15fe-4a17-8f67-20117edbdf11" }, "outputs": [ { @@ -213,7 +213,7 @@ "base_uri": "https://localhost:8080/" }, "id": "-LiuBMsHkzQV", - "outputId": "ea9e812f-d7ef-49ec-aca0-15fe11594609" + "outputId": "7a39d16f-2d32-4fd1-b2de-bab14d74b3cf" }, "outputs": [ { @@ -248,7 +248,7 @@ "base_uri": "https://localhost:8080/" }, "id": "uFInFxDDk2Je", - "outputId": "e8caef4a-8b44-4c4e-96da-19b27eaf3e48" + "outputId": "f904090d-4352-42e3-a8b1-0fc1896c438c" }, "outputs": [ { @@ -336,7 +336,7 @@ "base_uri": "https://localhost:8080/" }, "id": "F9UQRfjzo4Js", - "outputId": "ceae9231-24a9-4f33-8c1e-0e6842bd3064" + "outputId": "592df331-f956-46c3-902d-1c3629989f89" }, "outputs": [ { @@ -382,7 +382,7 @@ "base_uri": "https://localhost:8080/" }, "id": "a3891fa9-f738-41cd-946c-80ef9a99c346", - "outputId": "f6439a50-1b0e-49ea-ecad-442a688121c7" + "outputId": "95e3cf94-9d13-4394-b7ec-c1df023c421c" }, "outputs": [ { @@ -443,7 +443,7 @@ "base_uri": "https://localhost:8080/" }, "id": "-zf6oht6bIUQ", - "outputId": "107dd9b9-03cb-405d-f758-a7e42823bebc" + "outputId": "ee3168c6-4b73-40f2-9a50-113c52c7787f" }, "outputs": [ { @@ -560,7 +560,7 @@ "base_uri": "https://localhost:8080/" }, "id": "ff24fe1a-5746-461c-ad3d-b6d84a1a7c96", - "outputId": "79dd4d77-00fc-4072-9582-cd1218fd37f0" + "outputId": "462c9242-5175-4303-c8f3-a19e6bea0d6d" }, "outputs": [ { @@ -602,7 +602,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "id": "eb4c77dd-c956-4a1b-897b-b466909f18ca", "metadata": { "id": "eb4c77dd-c956-4a1b-897b-b466909f18ca" @@ -638,14 +638,14 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "id": "8fb02373-59b3-4f3a-b1d1-8181a2432645", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "8fb02373-59b3-4f3a-b1d1-8181a2432645", - "outputId": "a0fa921e-f3f5-4842-b33c-d9ddf021977b" + "outputId": "73c0602c-bf49-457b-fb8f-8f9fa626519c" }, "outputs": [ { @@ -705,7 +705,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "id": "74af192e-757c-4c0a-bdf9-b7eb25bf6ebc", "metadata": { "id": "74af192e-757c-4c0a-bdf9-b7eb25bf6ebc" @@ -742,14 +742,14 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 15, "id": "6eb2bce3-28a7-4f39-9d4b-5e972d69066c", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "6eb2bce3-28a7-4f39-9d4b-5e972d69066c", - "outputId": "319c9a66-3937-4178-d645-d1bb62d4cbd9" + "outputId": "fa489d86-2a11-4f56-b364-39b68ba36761" }, "outputs": [ { @@ -807,7 +807,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 16, "id": "41ec6e2d-9eb2-4124-913e-d2af39be4cf2", "metadata": { "id": "41ec6e2d-9eb2-4124-913e-d2af39be4cf2" @@ -859,14 +859,14 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "id": "cdf5eec4-9ebe-4be0-9fca-9a47bee88fdc", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "cdf5eec4-9ebe-4be0-9fca-9a47bee88fdc", - "outputId": "c1aae7d5-10fd-4f55-ef6c-0fd6a045ab2d" + "outputId": "701a50a6-4ca6-4ebe-fb09-17da07e83d63" }, "outputs": [ { @@ -902,14 +902,14 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 18, "id": "W2jvh-OP9MFV", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "W2jvh-OP9MFV", - "outputId": "2d3edcc3-17ca-42d4-9364-f1b4ed38648c" + "outputId": "1e500b27-d3a0-4587-9e27-7ef05a516fd8" }, "outputs": [ { @@ -944,14 +944,14 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 19, "id": "nvVMuil89v9N", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "nvVMuil89v9N", - "outputId": "4685690a-5420-4f65-bd5a-eb040bf969b3" + "outputId": "0a82ef6a-097f-4c98-fabb-1c19aa005797" }, "outputs": [ { @@ -986,14 +986,14 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 20, "id": "RTyB1vah9p56", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "RTyB1vah9p56", - "outputId": "06e90424-81a2-40ae-8740-957be35b68de" + "outputId": "1deca28b-be00-4b5a-f309-503cf055cfac" }, "outputs": [ { @@ -1089,14 +1089,14 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 21, "id": "etpqqWh8phKc", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "etpqqWh8phKc", - "outputId": "ec2b7e6e-3b60-4377-ab40-b74ed8b7ddad" + "outputId": "b874b7bb-bb22-46b9-a44d-1fbc5037beee" }, "outputs": [ { @@ -1123,9 +1123,11 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "id": "4e47fb30-c2c6-4e6d-a64c-76cc65be4a2c", - "metadata": {}, + "metadata": { + "id": "4e47fb30-c2c6-4e6d-a64c-76cc65be4a2c" + }, "outputs": [], "source": [ "from functools import partial\n", @@ -1220,7 +1222,7 @@ "base_uri": "https://localhost:8080/" }, "id": "GGs1AI3vHpnX", - "outputId": "8ed36fb6-fa13-47ad-c6fd-851b4bed51c4" + "outputId": "c496278d-f641-492d-ce22-0bd5a1d36685" }, "outputs": [ { @@ -1373,7 +1375,7 @@ "base_uri": "https://localhost:8080/" }, "id": "21b8fd02-014f-4481-9b71-5bfee8f9dfcd", - "outputId": "76360691-6f1d-4747-ca17-3ae127a0c93a" + "outputId": "ce0b6087-f857-4c25-a7a7-0bffd29d8b9f" }, "outputs": [ { @@ -1414,7 +1416,7 @@ "base_uri": "https://localhost:8080/" }, "id": "51649ab4-1a7e-4a9e-92c5-950a24fde211", - "outputId": "bebe4bc6-50c0-4c3c-bca3-a15025bbd087" + "outputId": "5761e840-cdb4-42fc-9fa6-9a3254d237e4" }, "outputs": [ { @@ -1485,27 +1487,33 @@ "base_uri": "https://localhost:8080/" }, "id": "0d249d67-5eba-414e-9bd2-972ebf01329d", - "outputId": "2e34f5b9-747c-4126-e612-2326d2ea033b" + "outputId": "0ce07b55-8cd6-4a34-9b26-49c10e519de4" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "2024-06-15 19:20:04.351655: I tensorflow/core/util/port.cc:113] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n", - "2024-06-15 19:20:04.402386: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n", - "2024-06-15 19:20:04.402428: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:607] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n", - "2024-06-15 19:20:04.403935: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1515] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n", - "2024-06-15 19:20:04.412531: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", + "2024-06-22 20:49:59.838218: I tensorflow/core/util/port.cc:113] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n", + "2024-06-22 20:49:59.895614: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n", + "2024-06-22 20:49:59.895650: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:607] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n", + "2024-06-22 20:49:59.897010: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1515] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n", + "2024-06-22 20:49:59.905256: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", "To enable the following instructions: AVX2 AVX512F AVX512_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "2024-06-15 19:20:05.571079: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n", - "checkpoint: 100%|██████████| 77.0/77.0 [00:00<00:00, 156kiB/s]\n", - "encoder.json: 100%|██████████| 1.04M/1.04M [00:02<00:00, 467kiB/s]\n", - "hparams.json: 100%|██████████| 91.0/91.0 [00:00<00:00, 198kiB/s]\n", - "model.ckpt.data-00000-of-00001: 100%|██████████| 1.42G/1.42G [05:50<00:00, 4.05MiB/s]\n", - "model.ckpt.index: 100%|██████████| 10.4k/10.4k [00:00<00:00, 18.1MiB/s]\n", - "model.ckpt.meta: 100%|██████████| 927k/927k [00:02<00:00, 454kiB/s]\n", - "vocab.bpe: 100%|██████████| 456k/456k [00:01<00:00, 283kiB/s]\n" + "2024-06-22 20:50:01.206247: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "File already exists and is up-to-date: gpt2/355M/checkpoint\n", + "File already exists and is up-to-date: gpt2/355M/encoder.json\n", + "File already exists and is up-to-date: gpt2/355M/hparams.json\n", + "File already exists and is up-to-date: gpt2/355M/model.ckpt.data-00000-of-00001\n", + "File already exists and is up-to-date: gpt2/355M/model.ckpt.index\n", + "File already exists and is up-to-date: gpt2/355M/model.ckpt.meta\n", + "File already exists and is up-to-date: gpt2/355M/vocab.bpe\n" ] } ], @@ -1559,7 +1567,7 @@ "base_uri": "https://localhost:8080/" }, "id": "7bd32b7c-5b44-4d25-a09f-46836802ca74", - "outputId": "07a5c9c3-7cdf-44ad-c3ac-ccd63cb0d9e0" + "outputId": "2ff7d3ae-4546-463b-b0c9-76365e628b84" }, "outputs": [ { @@ -1625,7 +1633,7 @@ "base_uri": "https://localhost:8080/" }, "id": "ba4a55bf-a245-48d8-beda-2838a58fb5ba", - "outputId": "84659f07-0106-4bf7-b459-84599b8e4ee7" + "outputId": "e6d883c2-a490-48c8-e3a9-bba98fa72f97" }, "outputs": [ { @@ -1715,7 +1723,7 @@ "base_uri": "https://localhost:8080/" }, "id": "d99fc6f8-63b2-43da-adbb-a7b6b92c8dd5", - "outputId": "f28bd4fd-411f-4f62-b381-4c21c09a2b01" + "outputId": "85c0deec-74bc-49f7-ddbf-d6c19dada1a8" }, "outputs": [ { @@ -1785,7 +1793,7 @@ "base_uri": "https://localhost:8080/" }, "id": "78bcf83a-1fff-4540-97c1-765c4016d5e3", - "outputId": "d49900e9-cb54-4c89-b528-fa4cc2e0dd9b" + "outputId": "5070ccc9-3707-4fca-b845-db5e1f5f1c1e" }, "outputs": [ { @@ -1841,7 +1849,7 @@ "Ep 2 (Step 000225): Train loss 0.350, Val loss 0.664\n", "Ep 2 (Step 000230): Train loss 0.300, Val loss 0.657\n", "Below is an instruction that describes a task. Write a response that appropriately completes the request. ### Instruction: Convert the active sentence to passive: 'The chef cooks the meal every day.' ### Response: The meal is cooked every day by the chef.<|endoftext|>The following is an instruction that describes a task. Write a response that appropriately completes the request. ### Instruction: What is the capital of the United Kingdom\n", - "Training completed in 0.87 minutes.\n" + "Training completed in 0.86 minutes.\n" ] } ], @@ -1889,7 +1897,7 @@ "height": 325 }, "id": "4acd368b-1403-4807-a218-9102e35bfdbb", - "outputId": "3b6ebb63-6b97-4e86-ce10-ada80b881db6" + "outputId": "4b578e9d-2837-44da-ae28-e5c802739649" }, "outputs": [ { @@ -1903,7 +1911,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeoAAAEiCAYAAAA21pHjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABZ8ElEQVR4nO3dd3gU1frA8e9u+qYnpAIJLZIAIQQIGGJBQYqIAipe5ApY8KogclFEfigiXkUFFRUudnKtIAqIiCAdBaSHTugkhBQgvZc9vz8GFhZCTNmwSXg/zzNPdmfOzLxnCXl3zpw5R6eUUgghhBCiTtJbOwAhhBBCXJskaiGEEKIOk0QthBBC1GGSqIUQQog6TBK1EEIIUYdJohZCCCHqMEnUQgghRB0miVoIIYSowyRRCyGEEHWYJGohGpCTJ0+i0+mIi4uzdihCCAuRRC1EHaPT6SpcpkyZYu0QhRDXka21AxBCmEtOTja9nj9/PpMnTyY+Pt60zsXFxRphCSGsRK6ohahj/P39TYu7uzs6nc703tfXl/fee48mTZrg4OBAhw4dWL58+TWPVVZWxmOPPUZoaCgJCQkA/Pzzz3Ts2BFHR0datGjBa6+9RmlpqWkfnU7H559/zsCBAzEYDISEhLBkyRLT9oyMDIYOHYqPjw9OTk6EhIQwd+7ca8bw448/Eh4ejpOTE97e3vTs2ZO8vDzT9s8//5ywsDAcHR0JDQ3lv//9r9n+iYmJDB48GA8PD7y8vLjvvvs4efKkafuIESMYMGAAM2bMICAgAG9vb0aNGkVJSUmlP3Mh6jQlhKiz5s6dq9zd3U3v33vvPeXm5qa+//57dejQIfXiiy8qOzs7dfjwYaWUUidOnFCA2rVrlyosLFQDBw5UkZGRKi0tTSml1IYNG5Sbm5uKjY1Vx44dU7///rtq1qyZmjJliukcgGrSpIn67rvv1JEjR9SYMWOUi4uLOn/+vFJKqVGjRqkOHTqobdu2qRMnTqiVK1eqJUuWlBv/mTNnlK2trXrvvffUiRMn1J49e9Ts2bNVTk6OUkqpb775RgUEBKiffvpJHT9+XP3000/Ky8tLxcbGKqWUKi4uVmFhYeqxxx5Te/bsUQcOHFAPP/ywat26tSoqKlJKKTV8+HDl5uamnnrqKXXw4EH1yy+/KIPBoD799FPL/mMIYSWSqIWow65M1IGBgeqNN94wKxMVFaWeeeYZpdSlRP3HH3+oHj16qFtuuUVlZmaayvbo0UO9+eabZvt//fXXKiAgwPQeUC+//LLpfW5urgLUb7/9ppRSqn///urRRx+tVPw7duxQgDp58mS521u2bKm+++47s3Wvv/66io6ONsXWunVrZTQaTduLioqUk5OTWrFihVJKS9TBwcGqtLTUVObBBx9UDz30UKViFKKuk3vUQtQT2dnZnDlzhpiYGLP1MTEx7N6922zdkCFDaNKkCWvWrMHJycm0fvfu3WzcuJE33njDtK6srIzCwkLy8/MxGAwAtG/f3rTd2dkZNzc30tLSAHj66ae5//772blzJ7169WLAgAF069at3JgjIiLo0aMH4eHh9O7dm169evHAAw/g6elJXl4ex44d4/HHH2fkyJGmfUpLS3F3dzfFe/ToUVxdXc2OW1hYyLFjx0zv27Zti42Njel9QEAAe/fureDTFKL+kEQtRAN09913880337B582buvPNO0/rc3Fxee+01Bg0adNU+jo6Optd2dnZm23Q6HUajEYC+ffty6tQpli1bxsqVK+nRowejRo1ixowZVx3TxsaGlStXsmnTJn7//Xc++ugjJk2axJYtW0xfCj777DO6du161X4X4+3UqRPffvvtVcf28fGpVLxC1HeSqIWoJ9zc3AgMDGTjxo3cfvvtpvUbN26kS5cuZmWffvpp2rVrx7333suvv/5qKt+xY0fi4+Np1apVjWLx8fFh+PDhDB8+nFtvvZXx48eXm6hBS5oxMTHExMQwefJkgoODWbRoEePGjSMwMJDjx48zdOjQcvft2LEj8+fPx9fXFzc3txrFLER9JYlaiHpk/PjxvPrqq7Rs2ZIOHTowd+5c4uLiyr3ifPbZZykrK+Oee+7ht99+45ZbbmHy5Mncc889BAUF8cADD6DX69m9ezf79u3jP//5T6VimDx5Mp06daJt27YUFRWxdOlSwsLCyi27ZcsWVq9eTa9evfD19WXLli2cPXvWVP61115jzJgxuLu706dPH4qKiti+fTsZGRmMGzeOoUOHMn36dO677z6mTp1KkyZNOHXqFAsXLuTFF1+kSZMm1f8whagnJFELUY+MGTOGrKwsnn/+edLS0mjTpg1LliwhJCSk3PJjx47FaDRy9913s3z5cnr37s3SpUuZOnUqb7/9NnZ2doSGhvLEE09U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\n", "text/plain": [ "
" ] @@ -1967,7 +1975,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": null, "id": "VQ2NZMbfucAc", "metadata": { "colab": { @@ -2066,7 +2074,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": null, "id": "-PNGKzY4snKP", "metadata": { "colab": { @@ -2120,7 +2128,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": null, "id": "u-AvCCMTnPSE", "metadata": { "colab": { @@ -2154,7 +2162,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": null, "id": "8cBU0iHmVfOI", "metadata": { "colab": { @@ -2311,7 +2319,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "026e8570-071e-48a2-aa38-64d7be35f288", "metadata": { "colab": { @@ -2350,7 +2358,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "723c9b00-e3cd-4092-83c3-6e48b5cf65b0", "metadata": { "id": "723c9b00-e3cd-4092-83c3-6e48b5cf65b0" @@ -2394,10 +2402,11 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "e3ae0e10-2b28-42ce-8ea2-d9366a58088f", "metadata": { - "id": "e3ae0e10-2b28-42ce-8ea2-d9366a58088f" + "id": "e3ae0e10-2b28-42ce-8ea2-d9366a58088f", + "outputId": "f94eb862-b9b6-4ece-f4b0-28be5d1c8e3e" }, "outputs": [ { @@ -2478,10 +2487,11 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "86b839d4-064d-4178-b2d7-01691b452e5e", "metadata": { - "id": "86b839d4-064d-4178-b2d7-01691b452e5e" + "id": "86b839d4-064d-4178-b2d7-01691b452e5e", + "outputId": "e68f60c1-5f23-4da5-887a-757e777de616" }, "outputs": [ { @@ -2585,10 +2595,11 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "9d7bca69-97c4-47a5-9aa0-32f116fa37eb", "metadata": { - "id": "9d7bca69-97c4-47a5-9aa0-32f116fa37eb" + "id": "9d7bca69-97c4-47a5-9aa0-32f116fa37eb", + "outputId": "d5d5f27f-f57e-46e9-dd5c-d9d9c483692c" }, "outputs": [ { diff --git a/ch07/01_main-chapter-code/exercise_experiments.py b/ch07/01_main-chapter-code/exercise_experiments.py index d02ee69..840284a 100644 --- a/ch07/01_main-chapter-code/exercise_experiments.py +++ b/ch07/01_main-chapter-code/exercise_experiments.py @@ -15,6 +15,7 @@ import time import urllib import matplotlib.pyplot as plt +from matplotlib.ticker import MaxNLocator import tiktoken import torch from torch.utils.data import Dataset, DataLoader @@ -280,6 +281,7 @@ def plot_losses(epochs_seen, tokens_seen, train_losses, val_losses, plot_name): ax1.set_xlabel("Epochs") ax1.set_ylabel("Loss") ax1.legend(loc="upper right") + ax1.xaxis.set_major_locator(MaxNLocator(integer=True)) # only show integer labels on x-axis # Create a second x-axis for tokens seen ax2 = ax1.twiny() # Create a second x-axis that shares the same y-axis diff --git a/ch07/01_main-chapter-code/previous_chapters.py b/ch07/01_main-chapter-code/previous_chapters.py index c3e9a76..090eab5 100644 --- a/ch07/01_main-chapter-code/previous_chapters.py +++ b/ch07/01_main-chapter-code/previous_chapters.py @@ -9,6 +9,7 @@ import matplotlib.pyplot as plt +from matplotlib.ticker import MaxNLocator import numpy as np import tiktoken import torch @@ -457,6 +458,7 @@ def plot_losses(epochs_seen, tokens_seen, train_losses, val_losses): ax1.set_xlabel("Epochs") ax1.set_ylabel("Loss") ax1.legend(loc="upper right") + ax1.xaxis.set_major_locator(MaxNLocator(integer=True)) # only show integer labels on x-axis # Create a second x-axis for tokens seen ax2 = ax1.twiny() # Create a second x-axis that shares the same y-axis