{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "-----------" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import torch\n", "import torch.nn.functional as F\n", "import matplotlib.pyplot as plt # for making figures\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# read in all the words\n", "words = open('names.txt', 'r').read().splitlines()\n", "\n", "\n", "# build the vocabulary of characters and mappings to/from integers\n", "chars = sorted(list(set(''.join(words))))\n", "stoi = {s:i+1 for i,s in enumerate(chars)}\n", "stoi['.'] = 0\n", "itos = {i:s for s,i in stoi.items()}\n", "\n", "\n", "# build the dataset\n", "\n", "block_size = 3 # context length: how many characters do we take to predict the next one?\n", "X, Y = [], []\n", "for w in words:\n", " \n", " #print(w)\n", " context = [0] * block_size\n", " for ch in w + '.':\n", " ix = stoi[ch]\n", " X.append(context)\n", " Y.append(ix)\n", " #print(''.join(itos[i] for i in context), '--->', itos[ix])\n", " context = context[1:] + [ix] # crop and append\n", " \n", "X = torch.tensor(X)\n", "Y = torch.tensor(Y)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(torch.Size([228146, 3]), torch.int64, torch.Size([228146]), torch.int64)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X.shape, X.dtype, Y.shape, Y.dtype" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "g = torch.Generator().manual_seed(2147483647) #For consistency ofcourse, to keep the same values as andrej\n", "C = torch.randn((27,2), generator=g)\n", "W1 = torch.rand((6, 100), generator=g)\n", "b1 = torch.rand(100, generator=g)\n", "W2 = torch.rand((100, 27), generator=g)\n", "b2 = torch.rand(27, generator=g)\n", "parameters = [C, W1, b1, W2, b2]" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "tensor(6.4365)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "emb = C[X]\n", "h = torch.tanh(emb.view(-1,6) @ W1 + b1)\n", "logits = h @ W2 + b2\n", "# counts = logits.exp()\n", "# prob = counts / counts.sum(1, keepdims=True)\n", "# loss = - prob[torch.arange(32), Y].log().mean()\n", "loss = F.cross_entropy(logits, Y)\n", "loss" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "------------" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#Setting up the training of the Neural Net" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "for p in parameters:\n", " p.requires_grad = True #Coz we know PyTorch asks for this parameter, as it is set to false by default" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "tensor(5.9912, grad_fn=)\n", "tensor(4.9723, grad_fn=)\n", "tensor(4.6059, grad_fn=)\n", "tensor(4.3298, grad_fn=)\n", "tensor(4.1185, grad_fn=)\n", "tensor(3.9586, grad_fn=)\n", "tensor(3.8382, grad_fn=)\n", "tensor(3.7435, grad_fn=)\n", "tensor(3.6644, grad_fn=)\n", "tensor(3.5960, grad_fn=)\n" ] } ], "source": [ "for _ in range(10):\n", "\n", " #forward pass\n", " emb = C[X]\n", " h = torch.tanh(emb.view(-1,6) @ W1 + b1)\n", " logits = h @ W2 + b2\n", " loss = F.cross_entropy(logits, Y)\n", " print(loss)\n", "\n", " #backward pass\n", " for p in parameters:\n", " p.grad = None\n", " loss.backward()\n", "\n", " #update\n", " for p in parameters:\n", " p.data += -0.1 * p.grad\n", "\n", "# print(loss.item())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Adding mini-batches" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2.398618459701538\n" ] } ], "source": [ "for _ in range(1000):\n", "\n", " #Minibatch\n", " xi = torch.randint(0, X.shape[0], (32,))\n", "\n", " #forward pass\n", " emb = C[X[xi]] #added for X\n", " h = torch.tanh(emb.view(-1,6) @ W1 + b1)\n", " logits = h @ W2 + b2\n", " loss = F.cross_entropy(logits, Y[xi]) #added for Y\n", " #print(loss.item())\n", "\n", " #backward pass\n", " for p in parameters:\n", " p.grad = None\n", " loss.backward()\n", "\n", " #update\n", " for p in parameters:\n", " p.data += -0.1 * p.grad\n", "\n", "print(loss.item())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Finding a good learning rate" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(torch.Size([228146, 3]), torch.int64, torch.Size([228146]), torch.int64)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X.shape, X.dtype, Y.shape, Y.dtype" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "#Everytime you wanna restart just run this to reset the parameters\n", "g = torch.Generator().manual_seed(2147483647)\n", "C = torch.randn((27,2), generator=g)\n", "W1 = torch.rand((6, 100), generator=g)\n", "b1 = torch.rand(100, generator=g)\n", "W2 = torch.rand((100, 27), generator=g)\n", "b2 = torch.rand(27, generator=g)\n", "parameters = [C, W1, b1, W2, b2]" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "for p in parameters:\n", " p.requires_grad = True" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "lre = torch.linspace(-3, 0, 1000)\n", "lrs = 10**lre" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2.419145107269287\n" ] } ], "source": [ "lri = []\n", "lossi = []\n", "\n", "for i in range(1000):\n", "\n", " #Minibatch\n", " xi = torch.randint(0, X.shape[0], (32,))\n", "\n", " #forward pass\n", " emb = C[X[xi]]\n", " h = torch.tanh(emb.view(-1,6) @ W1 + b1)\n", " logits = h @ W2 + b2\n", " loss = F.cross_entropy(logits, Y[xi])\n", " #print(loss.item())\n", "\n", " #backward pass\n", " for p in parameters:\n", " p.grad = None\n", " loss.backward()\n", "\n", " #update\n", " lr = lrs[i]\n", " for p in parameters:\n", " p.data += -0.1 * p.grad\n", "\n", " #keeping track\n", " lri.append(lr)\n", " lossi.append(loss.item())\n", "\n", "print(loss.item())" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGdCAYAAADAAnMpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABzmUlEQVR4nO3dd5hU5dk/8O/07QWW3aUsvVcpigsiFiIqMeCbmISgaGJNIFHzxiRo8mo0iinGmGiwRfGNEqL+LHltSFBEBKQrRXpZ2i59G7tTz++PmefMc86cqTu7Z8v3c117KbNnZs5OOec+93M/92NRFEUBERERkUmsZu8AERERdWwMRoiIiMhUDEaIiIjIVAxGiIiIyFQMRoiIiMhUDEaIiIjIVAxGiIiIyFQMRoiIiMhUdrN3IBGBQABHjx5Fbm4uLBaL2btDRERECVAUBbW1tejWrRus1uj5jzYRjBw9ehRlZWVm7wYRERGl4NChQ+jRo0fU37eJYCQ3NxdA8I/Jy8szeW+IiIgoETU1NSgrK1PP49G0iWBEDM3k5eUxGCEiImpj4pVYsICViIiITMVghIiIiEzFYISIiIhMxWCEiIiITMVghIiIiEzFYISIiIhMxWCEiIiITMVghIiIiEzFYISIiIhMxWCEiIiITMVghIiIiEzFYISIiIhM1SYWymsuf1+5H4fPnMN3zi/D4FIuwEdERGSGDp0ZeffLo3jxswOoOHXO7F0hIiLqsDp0MEJERETmYzBCREREpmIwQkRERKZiMEJERESmSjoYOXLkCK6//np07twZmZmZGDFiBNavXx/zPsuXL8eYMWPgcrnQv39/LFy4MNX9JSIionYmqWDkzJkzmDhxIhwOB95//31s374djz32GAoLC6PeZ//+/Zg2bRouvfRSbN68GXfddRduueUWLFmypMk7T0RERG1fUn1Gfve736GsrAwvvviielufPn1i3ufpp59Gnz598NhjjwEAhgwZgpUrV+Lxxx/H1KlTU9hlIiIiak+Syoz8+9//xrhx43DdddehuLgYo0ePxnPPPRfzPqtXr8aUKVM0t02dOhWrV6+Oeh+3242amhrNDxEREbVPSQUj+/btw4IFCzBgwAAsWbIEP/zhD/GTn/wEL730UtT7VFZWoqSkRHNbSUkJampq0NDQYHif+fPnIz8/X/0pKytLZjeJiIioDUkqGAkEAhgzZgweeeQRjB49GrfddhtuvfVWPP3002ndqXnz5qG6ulr9OXToUFofn4iIiFqPpIKRrl27YujQoZrbhgwZgoqKiqj3KS0tRVVVlea2qqoq5OXlITMz0/A+LpcLeXl5mh8iIiJqn5IKRiZOnIidO3dqbtu1axd69eoV9T7l5eVYtmyZ5ralS5eivLw8macmIiKidiqpYOTuu+/GmjVr8Mgjj2DPnj1YtGgRnn32WcyZM0fdZt68eZg9e7b67zvuuAP79u3Dz3/+c+zYsQN/+9vf8Oqrr+Luu+9O31/RRIrZO0BERNSBJRWMnH/++XjzzTfxz3/+E8OHD8dDDz2EP//5z5g1a5a6zbFjxzTDNn369MG7776LpUuXYtSoUXjsscfw/PPPt4ppvRaLxexdICIi6vAsiqK0+sRATU0N8vPzUV1dndb6kW8uWIUNB8/gmRvGYuqw0rQ9LhERESV+/ubaNERERGQqBiNERERkKgYjREREZCoGI0RERGQqBiNERERkKgYjREREZCoGI0RERGQqBiNERERkKgYjREREZCoGI0RERGQqBiNERERkKgYjAFr/6jxERETtV4cORrhmLxERkfk6dDBCRERE5mMwQkRERKZiMEJERESmYjBCREREpmIwQkRERKZiMEJERESmYjBCREREpmIwQkRERKZiMEJERESmYjBCREREpmIwQkRERKZiMAIA4Ep5REREZunQwYiFK+URERGZrkMHI0RERGQ+BiNERERkKgYjREREZCoGI0RERGQqBiNERERkqqSCkQceeAAWi0XzM3jw4KjbL1y4MGL7jIyMJu80ERERtR/2ZO8wbNgw/Oc//wk/gD32Q+Tl5WHnzp3qvy2cT0tERESSpIMRu92O0tLShLe3WCxJbU9EREQdS9I1I7t370a3bt3Qt29fzJo1CxUVFTG3r6urQ69evVBWVobp06dj27ZtcZ/D7XajpqZG80NERETtU1LByPjx47Fw4UJ88MEHWLBgAfbv349JkyahtrbWcPtBgwbhhRdewNtvv42XX34ZgUAAEyZMwOHDh2M+z/z585Gfn6/+lJWVJbObRERE1IZYFEVJeWGWs2fPolevXvjTn/6Em2++Oe72Xq8XQ4YMwcyZM/HQQw9F3c7tdsPtdqv/rqmpQVlZGaqrq5GXl5fq7ka47ulVWHfgDJ6+fgyuHN41bY9LREREwfN3fn5+3PN30jUjsoKCAgwcOBB79uxJaHuHw4HRo0fH3d7lcsHlcjVl14iIiKiNaFKfkbq6OuzduxdduyaWVfD7/diyZUvC27eU1HNDRERE1FRJBSM/+9nP8Mknn+DAgQNYtWoVrr32WthsNsycORMAMHv2bMybN0/d/sEHH8SHH36Iffv2YePGjbj++utx8OBB3HLLLen9K1JkAacZExERmS2pYZrDhw9j5syZOHXqFLp06YKLLroIa9asQZcuXQAAFRUVsFrD8c2ZM2dw6623orKyEoWFhRg7dixWrVqFoUOHpvevICIiojarSQWsLSXRAphkffvp1Vh74DQWzBqDq0a0rqEjIiKiti7R8zfXpiEiIiJTMRghIiIiUzEYISIiIlMxGCEiIiJTMRghIiIiUzEYISIiIlMxGCEiIiJTMRghIiIiUzEYISIiIlMxGCEiIiJTMRgB0Or74RMREbVjHTsY4aK9REREpuvYwQgRERGZjsEIERERmYrBCBEREZmKwQgRERGZisEIERERmYrBCBEREZmKwQgRERGZisEIERERmYrBCBEREZmKwQgRERGZisEIERERmYrBCBEREZmKwQgAhcv2EhERmaZDByNctJeIiMh8HToYISIiIvMxGCEiIiJTMRghIiIiUzEYISIiIlMlFYw88MADsFgsmp/BgwfHvM9rr72GwYMHIyMjAyNGjMB7773XpB0mIiKi9iXpzMiwYcNw7Ngx9WflypVRt121ahVmzpyJm2++GZs2bcKMGTMwY8YMbN26tUk7TURERO1H0sGI3W5HaWmp+lNUVBR12yeeeAJXXnkl7rnnHgwZMgQPPfQQxowZgyeffLJJO01ERETtR9LByO7du9GtWzf07dsXs2bNQkVFRdRtV69ejSlTpmhumzp1KlavXp38nhIREVG7ZE9m4/Hjx2PhwoUYNGgQjh07ht/85jeYNGkStm7ditzc3IjtKysrUVJSormtpKQElZWVMZ/H7XbD7Xar/66pqUlmN4mIiKgNSSoYueqqq9T/HzlyJMaPH49evXrh1Vdfxc0335y2nZo/fz5+85vfpO3xiIiIqPVq0tTegoICDBw4EHv27DH8fWlpKaqqqjS3VVVVobS0NObjzps3D9XV1erPoUOHmrKbRERE1Io1KRipq6vD3r170bVrV8Pfl5eXY9myZZrb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e++910J72rYl8zo/99xzmDRpEgoLC1FYWIgpU6bEfV8oKNnPs7B48WJYLBbMmDGjeXewHUn2tT579izmzJmDrl27wuVyYeDAgTx+JCDZ1/nPf/4zBg0ahMzMTJSVleHuu+9GY2NjC+1t27RixQpcc8016NatGywWC956662491m+fDnGjBkDl8uF/v37Y+HChc27k0o7tnjxYsXpdCovvPCCsm3bNuXWW29VCgoKlKqqKsPtP/vsM8Vmsym///3vle3btyu/+tWvFIfDoWzZsqWF97xtSfZ1/t73vqc89dRTyqZNm5SvvvpKuemmm5T8/Hzl8OHDLbznbUuyr7Owf/9+pXv37sqkSZOU6dOnt8zOtnHJvtZut1sZN26ccvXVVysrV65U9u/fryxfvlzZvHlzC+9525Ls6/zKK68oLpdLeeWVV5T9+/crS5YsUbp27arcfffdLbznbct7772n3Hfffcobb7yhAFDefPPNmNvv27dPycrKUn76058q27dvV/76178qNptN+eCDD5ptH9t1MHLBBRcoc+bMUf/t9/uVbt26KfPnzzfc/tvf/rYybdo0zW3jx49Xbr/99mbdz7Yu2ddZz+fzKbm5ucpLL73UXLvYLqTyOvt8PmXChAnK888/r9x4440MRhKU7Gu9YMECpW/fvorH42mpXWwXkn2d58yZo1x22WWa2376058qEydObNb9bE8SCUZ+/vOfK8OGDdPc9p3vfEeZOnVqs+1Xux2m8Xg82LBhA6ZMmaLeZrVaMWXKFKxevdrwPqtXr9ZsDwBTp06Nuj2l9jrrnTt3Dl6vF506dWqu3WzzUn2dH3zwQRQXF+Pmm29uid1sF1J5rf/973+jvLwcc+bMQUlJCYYPH45HHnkEfr+/pXa7zUnldZ4wYQI2bNigDuXs27cP7733Hq6++uoW2eeOwoxzYZtYKC8VJ0+ehN/vR0lJieb2kpIS7Nixw/A+lZWVhttXVlY22362dam8znq/+MUv0K1bt4gPP4Wl8jqvXLkSf//737F58+YW2MP2I5XXet++ffjoo48wa9YsvPfee9izZw9+9KMfwev14v7772+J3W5zUnmdv/e97+HkyZO46KKLoCgKfD4f7rjjDtx7770tscsdRrRzYU1NDRoaGpCZmZn252y3mRFqGx599FEsXrwYb775JjIyMszenXajtrYWN9xwA5577jkUFRWZvTvtXiAQQHFxMZ599lmMHTsW3/nOd3Dffffh6aefNnvX2pXly5fjkUcewd/+9jds3LgRb7zxBt5991089NBDZu8aNVG7zYwUFRXBZrOhqqpKc3tVVRVKS0sN71NaWprU9pTa6yz88Y9/xKOPPor//Oc/GDlyZHPuZpuX7Ou8d+9eHDhwANdcc416WyAQAADY7Xbs3LkT/fr1a96dbqNS+Ux37doVDocDNptNvW3IkCGorKyEx+OB0+ls1n1ui1J5nX/961/jhhtuwC233AIAGDFiBOrr63Hbbbfhvvvug9XK6+t0iHYuzMvLa5asCNCOMyNOpxNjx47FsmXL1NsCgQCWLVuG8vJyw/uUl5drtgeApUuXRt2eUnudAeD3v/89HnroIXzwwQcYN25cS+xqm5bs6zx48GBs2bIFmzdvVn++8Y1v4NJLL8XmzZtRVlbWkrvfpqTymZ44cSL27NmjBnwAsGvXLnTt2pWBSBSpvM7nzp2LCDhEAKhwmbW0MeVc2Gylsa3A4sWLFZfLpSxcuFDZvn27cttttykFBQVKZWWloiiKcsMNNyi//OUv1e0/++wzxW63K3/84x+Vr776Srn//vs5tTcByb7Ojz76qOJ0OpXXX39dOXbsmPpTW1tr1p/QJiT7OutxNk3ikn2tKyoqlNzcXGXu3LnKzp07lXfeeUcpLi5Wfvvb35r1J7QJyb7O999/v5Kbm6v885//VPbt26d8+OGHSr9+/ZRvf/vbZv0JbUJtba2yadMmZdOmTQoA5U9/+pOyadMm5eDBg4qiKMovf/lL5YYbblC3F1N777nnHuWrr75SnnrqKU7tbaq//vWvSs+ePRWn06lccMEFypo1a9TfTZ48Wbnxxhs127/66qvKwIEDFafTqQwbNkx59913W3iP26ZkXudevXopACJ+7r///pbf8TYm2c+zjMFIcpJ9rVetWqWMHz9ecblcSt++fZWHH35Y8fl8LbzXbU8yr7PX61UeeOABpV+/fkpGRoZSVlam/OhHP1LOnDnT8jvehnz88ceGx1zx2t54443K5MmTI+5z3nnnKU6nU+nbt6/y4osvNus+WhSFuS0iIiIyT7utGSEiIqK2gcEIERERmYrBCBEREZmKwQgRERGZisEIERERmYrBCBEREZmKwQgRERGZisEIERERmYrBCBEREZmKwQgRERGZisEIERERmYrBCBEREZnq/wMbMLIepi+EbAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(lri, lossi)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "But we would like to see which exponent value is recommended to use, so we'll update the x-axis" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2.705171585083008\n" ] } ], "source": [ "#Remember to reset the parameters and only then run this\n", "\n", "lri = []\n", "lossi = []\n", "\n", "for i in range(1000):\n", "\n", " #Minibatch\n", " xi = torch.randint(0, X.shape[0], (32,))\n", "\n", " #forward pass\n", " emb = C[X[xi]]\n", " h = torch.tanh(emb.view(-1,6) @ W1 + b1)\n", " logits = h @ W2 + b2\n", " loss = F.cross_entropy(logits, Y[xi])\n", " #print(loss.item())\n", "\n", " #backward pass\n", " for p in parameters:\n", " p.grad = None\n", " loss.backward()\n", "\n", " #update\n", " lr = lrs[i]\n", " for p in parameters:\n", " p.data += -0.1 * p.grad\n", "\n", " #keeping track\n", " lri.append(lre[i]) #We are taking the exponent of the learning rate for the x-axis\n", " lossi.append(loss.item())\n", "\n", "print(loss.item())" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhYAAAGdCAYAAABO2DpVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABh+klEQVR4nO3dd5gUVdYG8Ld7MkwiD0jOOUsWRBBQUMyKGNfwoZgzrmtcxbTrrjmsi7oGVlZdlRUDWRCQJDlLznFmYHJ3fX/MVM+t6ord1V1Dzft7Hp4Zejrcrq6uOnXuuff6JEmSQEREROQAv9sNICIiIu9gYEFERESOYWBBREREjmFgQURERI5hYEFERESOYWBBREREjmFgQURERI5hYEFERESOSYz3CwaDQezbtw8ZGRnw+XzxfnkiIiKKgCRJyM/PR6NGjeD36+cl4h5Y7Nu3D02aNIn3yxIREZEDdu/ejcaNG+v+Pe6BRUZGBoDyhmVmZsb75YmIiCgCeXl5aNKkSeg8rifugYXc/ZGZmcnAgoiI6DRjVsbA4k0iIiJyDAMLIiIicgwDCyIiInIMAwsiIiJyDAMLIiIicgwDCyIiInIMAwsiIiJyDAMLIiIicgwDCyIiInIMAwsiIiJyDAMLIiIicgwDCyIiInJM3Bchi5W//rgJeUVlmDCkFXKyUt1uDhERUbXkmYzFZ0t344NfduDYqRK3m0JERFRteSawkBdxlSC52g4iIqLqzDuBRUVkITGuICIico13AotQzoKIiIjc4p3AghkLIiIi13knsKj4yRoLIiIi93gnsKhIWTBjQURE5B7PBBYyxhVERETu8UxgIddYBJmyICIico1nAgs/u0KIiIhc55nAwhcabcrIgoiIyC3eCSwqfjJjQURE5B7vBBZyV4jL7SAiIqrOvBNYVPxkxoKIiMg9ngksEJp5k5EFERGRWzwTWFTOvElERERu8U5gweGmRERErvNOYFHxk2uFEBERucc7gQX7QoiIiFznncACHG5KRETkNu8EFqFRIe62g4iIqDrzTGAhY40FERGRezwTWHBUCBERkfu8E1hU/GRcQURE5B7vBBaceZOIiMh13gss3G0GERFRteadwEIebsqMBRERkWu8E1hwuCkREZHrvBNYVPxkYEFEROQezwQWcsqCcQUREZF7PBNYVGYsGFoQERG5xTOBhZ+jQoiIiFznmcCCM28SERG5zzuBReg3RhZERERu8U5gweGmRERErvNOYAGOCiEiInKbZwILMGNBRETkOs8EFpWrmzKyICIicot3AgtmLIiIiFznncCCNRZERESu805gEcpYMLQgIiJyi+cCCyIiInKPdwILcOZNIiIit3knsAitFcLIgoiIyC2eCSxkzFgQERG5xzOBhbwIWZCBBRERkWu8E1hU/OSoECIiIvfYDiz27t2La665BnXq1EFaWhq6dOmCZcuWxaJttlTWWBAREZFbEu3c+fjx4xg4cCCGDh2KGTNmoF69etiyZQtq1aoVq/ZZFhptysiCiIjINbYCixdeeAFNmjTBlClTQre1aNHC8UZFQq6x4KgQIiIi99jqCvnmm2/Qu3dvXH755ahfvz569OiB9957z/AxxcXFyMvLU/yLhcoai5g8PREREVlgK7D4/fff8dZbb6FNmzb44YcfcNttt+Guu+7Chx9+qPuYyZMnIysrK/SvSZMmUTdaC2ssiIiI3GcrsAgGg+jZsyeee+459OjRA7feeituueUWvP3227qPmTRpEnJzc0P/du/eHXWjtXHmTSIiIrfZCiwaNmyIjh07Km7r0KEDdu3apfuYlJQUZGZmKv7Fgp8zbxIREbnOVmAxcOBAbNq0SXHb5s2b0axZM0cbFYnK1U3dbQcREVF1ZiuwuPfee7F48WI899xz2Lp1Kz799FO8++67mDhxYqzaZ1loETKX20FERFSd2QoszjzzTHz11Vf47LPP0LlzZzzzzDP429/+hvHjx8eqfZb5OCyEiIjIdbbmsQCAMWPGYMyYMbFoS1Q4KoSIiMh9HlorhKNCiIiI3OaZwAKh4k1GFkRERG7xTGARKrFwtRVERETVm3cCCx+7QoiIiNzmncCi4ifjCiIiIvd4J7BgjQUREZHrvBNYVPxkXEFEROQe7wQWco0FO0OIiIhc453AouInMxZERETu8UxgAc68SURE5DrPBBaceZOIiMh93gksQhkLRhZERERu8U5gUfGTGQsiIiL3eCew8Jnfh4iIiGLLO4FFqMaCKQsiIiK3eCewCM286W47iIiIqjPvBRbuNoOIiKha80xgAQ43JSIicp1nAgs/h5sSERG5zjOBBWssiIiI3OedwELuCnG5HURERNWZdwILzpBFRETkOu8EFhU/GVYQERG5xzuBhY+jQoiIiNzm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DYMKAEhJSUFKSkokL0NERESnGVuBhSRJuPPOO/HVV19h7ty5aNGiRazaRURERKchW4HFxIkT8emnn+Lrr79GRkYGDhw4AADIyspCWhqXpyUiIqrubNVY+Hw+zdunTJmCG264wdJz5ObmIjs7G7t372aNBRER0WlCrpE8ceIEsrKydO9nuyskWvn5+QDA0SFERESnofz8fMPAIqoJsiIRDAaxb98+ZGRk6GZAIiFHUsyEmOO2so7byh5uL+u4razjtrIulttKkiTk5+ejUaNG8Pv1Z6uIaoKsSPj9ftORJNHIzMzkjmcRt5V13Fb2cHtZx21lHbeVdbHaVkaZChlXNyUiIiLHMLAgIiIix3gmsEhJScETTzzBybgs4LayjtvKHm4v67itrOO2sq4qbKu4F28SERGRd3kmY0FERETuY2BBREREjmFgQURERI5hYEFERESOOa0DiwsvvBBNmzZFamoqGjZsiGuvvRb79u0zfExRUREmTpyIOnXqID09HZdeeikOHjwYpxa7Y8eOHbjpppvQokULpKWloVWrVnjiiSdQUlJi+Lizzz4bPp9P8W/ChAlxarU7It1W1XG/AoBnn30WAwYMQI0aNZCdnW3pMTfccEPYfjVq1KjYNrQKiGRbSZKExx9/HA0bNkRaWhqGDx+OLVu2xLahVcSxY8cwfvx4ZGZmIjs7GzfddBNOnjxp+Jjqcsx644030Lx5c6SmpqJv37749ddfDe8/bdo0tG/fHqmpqejSpQu+++67mLbvtA4shg4dis8//xybNm3CF198gW3btuGyyy4zfMy9996Lb7/9FtOmTcO8efOwb98+XHLJJXFqsTs2btyIYDCId955B+vWrcMrr7yCt99+G48++qjpY2+55Rbs378/9O/FF1+MQ4vdE+m2qo77FQCUlJTg8ssvx2233WbrcaNGjVLsV5999lmMWlh1RLKtXnzxRbz66qt4++23sWTJEtSsWRMjR45EUVFRDFtaNYwfPx7r1q3DTz/9hOnTp2P+/Pm49dZbTR/n9WPWv//9b9x333144oknsGLFCnTr1g0jR47EoUOHNO//yy+/YNy4cbjpppuwcuVKXHTRRbjooouwdu3a2DVS8pCvv/5a8vl8UklJiebfT5w4ISUlJUnTpk0L3bZhwwYJgLRo0aJ4NbNKePHFF6UWLVoY3mfIkCHS3XffHZ8GVWFm24r7lSRNmTJFysrKsnTf66+/Xho7dmxM21OVWd1WwWBQysnJkV566aXQbSdOnJBSUlKkzz77LIYtdN/69eslANLSpUtDt82YMUPy+XzS3r17dR9XHY5Zffr0kSZOnBj6fyAQkBo1aiRNnjxZ8/5XXHGFNHr0aMVtffv2lf7v//4vZm08rTMWomPHjuGTTz7BgAEDkJSUpHmf5cuXo7S0FMOHDw/d1r59ezRt2hSLFi2KV1OrhNzcXNSuXdv0fp988gnq1q2Lzp07Y9KkSSgoKIhD66oWs23F/cq+uXPnon79+mjXrh1uu+02HD161O0mVTnbt2/HgQMHFPtVVlYW+vbt6/n9atGiRcjOzkbv3r1Dtw0fPhx+vx9LliwxfKyXj1klJSVYvny5Yp/w+/0YPny47j6xaNEixf0BYOTIkTHdh+K+CJnTHn74Ybz++usoKChAv379MH36dN37HjhwAMnJyWH9mw0aNMCBAwdi3NKqY+vWrXjttdfw8ssvG97v6quvRrNmzdCoUSOsXr0aDz/8MDZt2oQvv/wyTi11n5Vtxf3KnlGjRuGSSy5BixYtsG3bNjz66KM477zzsGjRIiQkJLjdvCpD3ncaNGiguL067FcHDhxA/fr1FbclJiaidu3ahu/d68esI0eOIBAIaO4TGzdu1HzMgQMH4r4PVbmMxSOPPBJWfKP+J27ABx98ECtXrsSPP/6IhIQEXHfddZCqyWSidrcVAOzduxejRo3C5ZdfjltuucXw+W+99VaMHDkSXbp0wfjx4/HRRx/hq6++wrZt22L5tmIi1tvKSyLZVnZcddVVuPDCC9GlSxdcdNFFmD59OpYuXYq5c+c69ybiJNbbymtivb28dMw6nVW5jMX999+PG264wfA+LVu2DP1et25d1K1bF23btkWHDh3QpEkTLF68GP379w97XE5ODkpKSnDixAnF1eXBgweRk5Pj1FuIG7vbat++fRg6dCgGDBiAd9991/br9e3bF0D5VXyrVq1sP95NsdxW1X2/ilbLli1Rt25dbN26FcOGDXPseeMhlttK3ncOHjyIhg0bhm4/ePAgunfvHtFzus3q9srJyQkrRiwrK8OxY8dsfadO52OWlrp16yIhISFsxJnRsSYnJ8fW/Z1Q5QKLevXqoV69ehE9NhgMAgCKi4s1/96rVy8kJSVh1qxZuPTSSwEAmzZtwq5duzQDkarOzrbau3cvhg4dil69emHKlCnw++0nq3777TcAUBzkThex3FbVeb9ywp49e3D06FHP71d2tWjRAjk5OZg1a1YokMjLy8OSJUtsj8KpKqxur/79++PEiRNYvnw5evXqBQCYPXs2gsFgKFiw4nQ+ZmlJTk5Gr169MGvWLFx00UUAys97s2bNwh133KH5mP79+2PWrFm45557Qrf99NNPsT02xawsNMYWL14svfbaa9LKlSulHTt2SLNmzZIGDBggtWrVSioqKpIkSZL27NkjtWvXTlqyZEnocRMmTJCaNm0qzZ49W1q2bJnUv39/qX///m69jbjYs2eP1Lp1a2nYsGHSnj17pP3794f+ifcRt9XWrVulp59+Wlq2bJm0fft26euvv5ZatmwpDR482K23EReRbCtJqp77lSRJ0s6dO6WVK1dKTz31lJSeni6tXLlSWrlypZSfnx+6T7t27aQvv/xSkiRJys/Plx544AFp0aJF0vbt26WZM2dKPXv2lNq0aRP63nqV3W0lSZL0/PPPS9nZ2dLXX38trV69Who7dqzUokULqbCw0I23EFejRo2SevToIS1ZskRasGCB1KZNG2ncuHGhv1fXY9bUqVOllJQU6YMPPpDWr18v3XrrrVJ2drZ04MABSZIk6dprr5UeeeSR0P0XLlwoJSYmSi+//LK0YcMG6YknnpCSkpKkNWvWxKyNp21gsXr1amno0KFS7dq1pZSUFKl58+bShAkTpD179oTus337dgmANGfOnNBthYWF0u233y7VqlVLqlGjhnTxxRcrThpeNGXKFAmA5j+Zelvt2rVLGjx4cGj7tm7dWnrwwQel3Nxcl95FfESyrSSpeu5XklQ+dFRrW4nbBoA0ZcoUSZIkqaCgQBoxYoRUr149KSkpSWrWrJl0yy23hA6KXmZ3W0lS+ZDTP/3pT1KDBg2klJQUadiwYdKmTZvi33gXHD16VBo3bpyUnp4uZWZmSjfeeKMiCKvOx6zXXntNatq0qZScnCz16dNHWrx4cehvQ4YMka6//nrF/T///HOpbdu2UnJystSpUyfpf//7X0zbx2XTiYiIyDFVblQIERERnb4YWBAREZFjGFgQERGRYxhYEBERkWMYWBAREZFjGFgQERGRYxhYEBERkWMYWBAREZFjGFgQERGRYxhYEBERkWMYWBAREZFjGFgQERGRY/4fQwJFNSFAnkAAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(lri, lossi)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "^Here exp of `-1` is the closest to where the loss is less, so exponent of -1 is 0.1, which was the actual value we had considered anyway" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Just to cross-check we'll directly plot that value and see" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2.7444117069244385\n" ] } ], "source": [ "#Remember to reset the parameters and only then run this\n", "\n", "lri = []\n", "lossi = []\n", "\n", "for i in range(1000):\n", "\n", " #Minibatch\n", " xi = torch.randint(0, X.shape[0], (32,))\n", "\n", " #forward pass\n", " emb = C[X[xi]]\n", " h = torch.tanh(emb.view(-1,6) @ W1 + b1)\n", " logits = h @ W2 + b2\n", " loss = F.cross_entropy(logits, Y[xi])\n", " #print(loss.item())\n", "\n", " #backward pass\n", " for p in parameters:\n", " p.grad = None\n", " loss.backward()\n", "\n", " #update\n", " lr = lrs[i]\n", " for p in parameters:\n", " p.data += -0.1 * p.grad\n", "\n", " #keeping track\n", " lri.append(lrs[i]) #We are taking the exponent of the learning rate for the x-axis\n", " lossi.append(loss.item())\n", "\n", "print(loss.item())" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGdCAYAAADAAnMpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABylUlEQVR4nO3deZhT5dk/8G+SmcnsG8zCwLDLvoPigJaqKC61YFu0SMVatdXCry7vqy1t31erVajWrS4obthXKS4VtYooooAKKKuyK+uwzAzb7EtmJjm/P5Ln5DknOUlOJsOZ5fu5rrl0wklykknOuc/93M/92BRFUUBERERkEbvVO0BERESdG4MRIiIishSDESIiIrIUgxEiIiKyFIMRIiIishSDESIiIrIUgxEiIiKyFIMRIiIislSc1TsQCY/Hg2PHjiEtLQ02m83q3SEiIqIIKIqC6upqFBQUwG43zn+0i2Dk2LFjKCwstHo3iIiIKAqHDx9Gjx49DP+9XQQjaWlpALwvJj093eK9ISIiokhUVVWhsLBQPY8baRfBiBiaSU9PZzBCRETUzoQrsWABKxEREVmKwQgRERFZisEIERERWYrBCBEREVmKwQgRERFZisEIERERWYrBCBEREVmKwQgRERFZisEIERERWYrBCBEREVmKwQgRERFZisEIERERWapdLJTXWl784gCOlNfhmrMLMSifC/ARERFZoVNnRj749hhe/vIgik/VWb0rREREnVanDkaIiIjIegxGiIiIyFIMRoiIiMhSpoORo0eP4he/+AW6dOmCpKQkDB8+HBs3bgx5n1WrVmHMmDFwOp3o378/Fi1aFO3+EhERUQdjKhgpLy/HxIkTER8fjw8//BA7d+7EI488gqysLMP7HDhwAFdccQUuuOACbN26FbfffjtuuukmfPTRRy3eeSIiImr/TE3t/dvf/obCwkK8/PLL6m19+vQJeZ9nn30Wffr0wSOPPAIAGDx4ML744gs89thjmDJlShS7TERERB2JqczIe++9h3HjxmH69OnIzc3F6NGj8fzzz4e8z7p16zB58mTNbVOmTMG6desM7+NyuVBVVaX5ISIioo7JVDCyf/9+LFiwAGeddRY++ugj3Hrrrfjd736HV155xfA+paWlyMvL09yWl5eHqqoq1NfXB73PvHnzkJGRof4UFhaa2U0iIiJqR0wFIx6PB2PGjMGDDz6I0aNH49e//jVuvvlmPPvsszHdqblz56KyslL9OXz4cEwfX09p1UcnIiKiUEwFI926dcOQIUM0tw0ePBjFxcWG98nPz0dZWZnmtrKyMqSnpyMpKSnofZxOJ9LT0zU/rcFms7XK4xIREVHkTAUjEydOxJ49ezS3fffdd+jVq5fhfYqKirBy5UrNbStWrEBRUZGZpyYiIqIOylQwcscdd2D9+vV48MEHsXfvXixevBgLFy7E7Nmz1W3mzp2LWbNmqb/fcsst2L9/P+6++27s3r0bzzzzDN544w3ccccdsXsVRERE1G6ZCkbOPvtsLF26FP/6178wbNgw3H///Xj88ccxc+ZMdZuSkhLNsE2fPn3wwQcfYMWKFRg5ciQeeeQRvPDCC5zWS0RERAAAm6Iobb5+s6qqChkZGaisrIxp/chPF6zFpkPleO66sZgyND9mj0tERESRn7+5Ng0RERFZisEIERERWYrBCBEREVmKwQgRERFZisEIgLZfwktERNRxdepghP1XiYiIrNepgxEiIiKyHoMRIiIishSDESIiIrIUgxEiIiKyFIMRIiIishSDESIiIrIUgxEiIiKyFIMRIiIishSDEQAAW7ASERFZhcEIERERWapTByM29oMnIiKyXKcORoiIiMh6DEaIiIjIUgxGiIiIyFIMRoiIiMhSDEaIiIjIUgxGiIiIyFIMRgAo7HlGRERkGQYjREREZCkGI0RERGSpTh2M2MAWrERERFbr1MEIERERWY/BCBEREVmKwQgRERFZisEIERERWcpUMHLvvffCZrNpfgYNGmS4/aJFiwK2T0xMbPFOExERUccRZ/YOQ4cOxSeffOJ/gLjQD5Geno49e/aov9tsnMFCREREfqaDkbi4OOTn50e8vc1mM7W9FdiAlYiIyDqma0a+//57FBQUoG/fvpg5cyaKi4tDbl9TU4NevXqhsLAQU6dOxY4dO6LeWSIiIup4TAUj48ePx6JFi7B8+XIsWLAABw4cwPnnn4/q6uqg2w8cOBAvvfQS3n33Xbz66qvweDyYMGECjhw5EvJ5XC4XqqqqND9ERETUMZkaprnsssvU/x8xYgTGjx+PXr164Y033sCNN94YsH1RURGKiorU3ydMmIDBgwfjueeew/3332/4PPPmzcNf/vIXM7sWHZavEBERWa5FU3szMzMxYMAA7N27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5cqV6m0ejwcrV65EUVFR0PsUFRVptgeAFStWGG5P0b3PAPDQQw/h/vvvx/LlyzFu3Lgzsavtmtn3edCgQdi2bRu2bt2q/vz4xz/GBRdcgK1bt6KwsPBM7n67Es1neuLEidi7d68a8AHAd999h27dujEQMRDN+1xXVxcQcIgAUOEyazFjybmw1Upj24AlS5YoTqdTWbRokbJz507l17/+tZKZmamUlpYqiqIo1113nfKHP/xB3f7LL79U4uLilL///e/Krl27lHvuuYdTeyNg9n2eP3++kpCQoLz11ltKSUmJ+lNdXW3VS2gXzL7PepxNEzmz73VxcbGSlpamzJkzR9mzZ4/y/vvvK7m5ucpf//pXq15Cu2D2fb7nnnuUtLQ05V//+peyf/9+5eOPP1b69eunXH311Va9hHahurpa2bJli7JlyxYFgPLoo48qW7ZsUQ4dOqQoiqL84Q9/UK677jp1ezG196677lJ27dqlPP3005za21JPPvmk0rNnTyUhIUE555xzlPXr16v/NmnSJOX666/XbP/GG28oAwYMUBISEpShQ4cqH3zwwRne4/bJzPvcq1cvBUDAzz333HPmd7ydMft5ljEYMcfse7127Vpl/PjxitPpVPr27as88MADSnNz8xne6/bHzPvc1NSk3HvvvUq/fv2UxMREpbCwUPntb3+rlJeXn/kdb0c+++yzoMdc8d5ef/31yqRJkwLuM2rUKCUhIUHp27ev8vLLL7fqPtoUhbktIiIisk6HrRkhIiKi9oHBCBEREVmKwQgRERFZisEIERERWYrBCBEREVmKwQgRERFZisEIERERWYrBCBEREVmKwQgRERFZisEIERERWYrBCBEREVmKwQgRERFZ6v8DwTPacHfbUOsAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(lri, lossi)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Yeah `0.1` seems fair I guess lol" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---------" ] } ], "metadata": { "kernelspec": { "display_name": "venv", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.0" } }, "nbformat": 4, "nbformat_minor": 2 }