From fef43cef50f6f3b569ee0830ad5cfe92a702463c Mon Sep 17 00:00:00 2001 From: Raghuram Subramani Date: Mon, 23 Jan 2023 16:32:08 +0530 Subject: update model --- GenerateShakespeare.ipynb | 2 +- jsmodel/group1-shard1of4.bin | Bin 4194304 -> 4194304 bytes jsmodel/group1-shard2of4.bin | Bin 4194304 -> 4194304 bytes jsmodel/group1-shard3of4.bin | Bin 4194304 -> 4194304 bytes jsmodel/group1-shard4of4.bin | Bin 3491076 -> 3491076 bytes model.h5 | Bin 16093616 -> 16093616 bytes web/jsmodel/group1-shard1of4.bin | Bin 4194304 -> 4194304 bytes web/jsmodel/group1-shard2of4.bin | Bin 4194304 -> 4194304 bytes web/jsmodel/group1-shard3of4.bin | Bin 4194304 -> 4194304 bytes web/jsmodel/group1-shard4of4.bin | Bin 3491076 -> 3491076 bytes 10 files changed, 1 insertion(+), 1 deletion(-) diff --git a/GenerateShakespeare.ipynb b/GenerateShakespeare.ipynb index e49c4c8..7a235fa 100644 --- a/GenerateShakespeare.ipynb +++ b/GenerateShakespeare.ipynb @@ -1 +1 @@ -{"metadata":{"accelerator":"GPU","colab":{"provenance":[]},"gpuClass":"standard","kernelspec":{"name":"python3","display_name":"Python 3","language":"python"},"language_info":{"name":"python","version":"3.7.10","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"!pip install pandas","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"aOX6ge672GEp","outputId":"30bf145d-ffbf-476a-cc7b-3ee230c12787","execution":{"iopub.status.busy":"2023-01-23T05:42:10.084468Z","iopub.execute_input":"2023-01-23T05:42:10.085270Z","iopub.status.idle":"2023-01-23T05:42:17.352790Z","shell.execute_reply.started":"2023-01-23T05:42:10.085176Z","shell.execute_reply":"2023-01-23T05:42:17.351904Z"},"trusted":true},"execution_count":1,"outputs":[{"name":"stdout","text":"Requirement already satisfied: pandas in /opt/conda/lib/python3.7/site-packages (1.2.5)\nRequirement already satisfied: python-dateutil>=2.7.3 in /opt/conda/lib/python3.7/site-packages (from pandas) (2.8.0)\nRequirement already satisfied: pytz>=2017.3 in /opt/conda/lib/python3.7/site-packages (from pandas) (2021.1)\nRequirement already satisfied: numpy>=1.16.5 in /opt/conda/lib/python3.7/site-packages (from pandas) (1.19.5)\nRequirement already satisfied: six>=1.5 in /opt/conda/lib/python3.7/site-packages (from python-dateutil>=2.7.3->pandas) (1.15.0)\n\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n","output_type":"stream"}]},{"cell_type":"code","source":"import os\nos.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'\n\nimport tensorflow as tf\n\nfrom tensorflow.keras import Sequential\nfrom tensorflow.keras.layers import Embedding, GRU, Dense\n\nimport numpy as np\nimport pandas as pd\nimport os\nimport time","metadata":{"id":"Qu46zrM8wlpM","execution":{"iopub.status.busy":"2023-01-23T05:42:17.354943Z","iopub.execute_input":"2023-01-23T05:42:17.355430Z","iopub.status.idle":"2023-01-23T05:42:18.977205Z","shell.execute_reply.started":"2023-01-23T05:42:17.355391Z","shell.execute_reply":"2023-01-23T05:42:18.976489Z"},"trusted":true},"execution_count":2,"outputs":[]},{"cell_type":"code","source":"physical_devices = tf.config.list_physical_devices('GPU')\nprint(\"Num GPUs:\", len(physical_devices))","metadata":{"execution":{"iopub.status.busy":"2023-01-23T05:42:18.978748Z","iopub.execute_input":"2023-01-23T05:42:18.979065Z","iopub.status.idle":"2023-01-23T05:42:19.037511Z","shell.execute_reply.started":"2023-01-23T05:42:18.979027Z","shell.execute_reply":"2023-01-23T05:42:19.036718Z"},"trusted":true},"execution_count":3,"outputs":[{"name":"stdout","text":"Num GPUs: 1\n","output_type":"stream"}]},{"cell_type":"code","source":"dataset_url = tf.keras.utils.get_file('shakespeare.txt', 'https://storage.googleapis.com/download.tensorflow.org/data/shakespeare.txt')\ndataset_text = open(dataset_url, 'rb').read().decode(encoding='UTF-8')\nprint(dataset_text[:1000])","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"v4gmrb8Yw4HQ","outputId":"8e1db03d-310d-49f6-c617-c1b46014618c","execution":{"iopub.status.busy":"2023-01-23T05:42:19.040265Z","iopub.execute_input":"2023-01-23T05:42:19.040796Z","iopub.status.idle":"2023-01-23T05:42:19.050689Z","shell.execute_reply.started":"2023-01-23T05:42:19.040757Z","shell.execute_reply":"2023-01-23T05:42:19.050109Z"},"trusted":true},"execution_count":4,"outputs":[{"name":"stdout","text":"First Citizen:\nBefore we proceed any further, hear me speak.\n\nAll:\nSpeak, speak.\n\nFirst Citizen:\nYou are all resolved rather to die than to famish?\n\nAll:\nResolved. resolved.\n\nFirst Citizen:\nFirst, you know Caius Marcius is chief enemy to the people.\n\nAll:\nWe know't, we know't.\n\nFirst Citizen:\nLet us kill him, and we'll have corn at our own price.\nIs't a verdict?\n\nAll:\nNo more talking on't; let it be done: away, away!\n\nSecond Citizen:\nOne word, good citizens.\n\nFirst Citizen:\nWe are accounted poor citizens, the patricians good.\nWhat authority surfeits on would relieve us: if they\nwould yield us but the superfluity, while it were\nwholesome, we might guess they relieved us humanely;\nbut they think we are too dear: the leanness that\nafflicts us, the object of our misery, is as an\ninventory to particularise their abundance; our\nsufferance is a gain to them Let us revenge this with\nour pikes, ere we become rakes: for the gods know I\nspeak this in hunger for bread, not in thirst for revenge.\n\n\n","output_type":"stream"}]},{"cell_type":"code","source":"vocab = sorted(set(dataset_text))\nprint(f'There are {len(vocab)} unique characters')","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"M6fUyb4exOYw","outputId":"275ea813-d767-4653-d33a-34cafca6032b","execution":{"iopub.status.busy":"2023-01-23T05:42:19.051989Z","iopub.execute_input":"2023-01-23T05:42:19.052463Z","iopub.status.idle":"2023-01-23T05:42:19.072183Z","shell.execute_reply.started":"2023-01-23T05:42:19.052428Z","shell.execute_reply":"2023-01-23T05:42:19.071259Z"},"trusted":true},"execution_count":5,"outputs":[{"name":"stdout","text":"There are 65 unique characters\n","output_type":"stream"}]},{"cell_type":"code","source":"char2idx = {char:index for index, char in enumerate(vocab)}\nchar2idx","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"C_v1hjDmxnxQ","outputId":"c24d469d-5bf1-4d2b-d7ed-97785a91c573","execution":{"iopub.status.busy":"2023-01-23T05:42:19.073666Z","iopub.execute_input":"2023-01-23T05:42:19.073919Z","iopub.status.idle":"2023-01-23T05:42:19.086841Z","shell.execute_reply.started":"2023-01-23T05:42:19.073888Z","shell.execute_reply":"2023-01-23T05:42:19.086002Z"},"trusted":true},"execution_count":6,"outputs":[{"execution_count":6,"output_type":"execute_result","data":{"text/plain":"{'\\n': 0,\n ' ': 1,\n '!': 2,\n '$': 3,\n '&': 4,\n \"'\": 5,\n ',': 6,\n '-': 7,\n '.': 8,\n '3': 9,\n ':': 10,\n ';': 11,\n '?': 12,\n 'A': 13,\n 'B': 14,\n 'C': 15,\n 'D': 16,\n 'E': 17,\n 'F': 18,\n 'G': 19,\n 'H': 20,\n 'I': 21,\n 'J': 22,\n 'K': 23,\n 'L': 24,\n 'M': 25,\n 'N': 26,\n 'O': 27,\n 'P': 28,\n 'Q': 29,\n 'R': 30,\n 'S': 31,\n 'T': 32,\n 'U': 33,\n 'V': 34,\n 'W': 35,\n 'X': 36,\n 'Y': 37,\n 'Z': 38,\n 'a': 39,\n 'b': 40,\n 'c': 41,\n 'd': 42,\n 'e': 43,\n 'f': 44,\n 'g': 45,\n 'h': 46,\n 'i': 47,\n 'j': 48,\n 'k': 49,\n 'l': 50,\n 'm': 51,\n 'n': 52,\n 'o': 53,\n 'p': 54,\n 'q': 55,\n 'r': 56,\n 's': 57,\n 't': 58,\n 'u': 59,\n 'v': 60,\n 'w': 61,\n 'x': 62,\n 'y': 63,\n 'z': 64}"},"metadata":{}}]},{"cell_type":"code","source":"idx2char = np.array(vocab)\nidx2char","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"G1AnsQToxwUG","outputId":"f0fce00b-d6b4-47b6-f061-4b8f7b2d6ab4","execution":{"iopub.status.busy":"2023-01-23T05:42:19.088184Z","iopub.execute_input":"2023-01-23T05:42:19.088453Z","iopub.status.idle":"2023-01-23T05:42:19.096843Z","shell.execute_reply.started":"2023-01-23T05:42:19.088423Z","shell.execute_reply":"2023-01-23T05:42:19.095950Z"},"trusted":true},"execution_count":7,"outputs":[{"execution_count":7,"output_type":"execute_result","data":{"text/plain":"array(['\\n', ' ', '!', '$', '&', \"'\", ',', '-', '.', '3', ':', ';', '?',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',\n 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'],\n dtype='"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAAAXoAAAD7CAYAAABkO19ZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAndUlEQVR4nO3de3zU9Z3v8dcnyeSeQO73cPGCIgJCRK0Wta0U77fW1W272Bu7Pban7enp2W67Z9t1221P3a3b3XbXsq1b7dbrikqtF9CqaFcrAcJdEBFIQkgCISQQEnL5nD9msBETMoGBmcy8n4/HPPKb7+83M5/5PfQ9P76/7+/3NXdHRETiV1K0CxARkZNLQS8iEucU9CIicU5BLyIS5xT0IiJxTkEvIhLnUkbawMyqgPuBEsCBRe7+46O2+TrwiUHveTZQ5O5tZrYd6AT6gT53r4lc+SIiMhIbaRy9mZUBZe6+ysxygJXADe6+cZjtrwW+6u4fCj3fDtS4+56IVi4iImEZ8Yje3ZuAptByp5ltAiqAIYMeuA148ESKKiws9IkTJ57IW4iIJJSVK1fucfeiodaNGPSDmdlE4DzgD8OszwTmA18c1OzAUjNz4Gfuvmikz5k4cSK1tbWjKU1EJKGZ2Y7h1oUd9GaWDTwGfMXdO4bZ7Frg9+7eNqjtEndvNLNiYJmZvenuy4d4/4XAQoDq6upwyxIRkRGENerGzAIEQ/7X7r74GJveylHdNu7eGPrbAjwOzBnqhe6+yN1r3L2mqGjIf32IiMhxGDHozcyAXwCb3P1Hx9huHHAp8OSgtqzQCVzMLAuYB6w/0aJFRCR84XTdXAx8ClhnZnWhtm8C1QDufk+o7UZgqbsfHPTaEuDx4G8FKcAD7v5sBOoWETmm3t5eGhoa6O7ujnYpEZWenk5lZSWBQCDs14Qz6uZVwMLY7pfAL49q2wbMCLsaEZEIaWhoICcnh4kTJxI62Bzz3J29e/fS0NDApEmTwn6drowVkbjU3d1NQUFB3IQ8gJlRUFAw6n+lKOhFJG7FU8gfcTzfKW6Cvn/A+emLW3l5S2u0SxERASA7OzvaJQBxFPTJScbPXn6b5zc2R7sUEZGYEjdBD1CVn0n9vq5olyEi8h7uzte//nWmTZvGueeey8MPPwxAU1MTc+fOZebMmUybNo1XXnmF/v5+br/99ne3vfvuu0/480d1C4RYV5WXyVstndEuQ0TkPRYvXkxdXR1r1qxhz549nH/++cydO5cHHniAj370o3zrW9+iv7+frq4u6urqaGxsZP364CVH7e3tJ/z58RX0+Rn8bnMLAwNOUlL8nYQRkePzt7/ZwMZdw9255fhMLc/l29eeE9a2r776KrfddhvJycmUlJRw6aWXsmLFCs4//3w+85nP0Nvbyw033MDMmTOZPHky27Zt40tf+hJXX3018+bNO+Fa467r5nDfAK0HeqJdiojIiObOncvy5cupqKjg9ttv5/777ycvL481a9Zw2WWXcc899/C5z33uhD8nvo7o8zIBqG/roiQ3PcrViEisCPfI+2T54Ac/yM9+9jMWLFhAW1sby5cv56677mLHjh1UVlby+c9/np6eHlatWsVVV11FamoqN998M1OmTOGTn/zkCX9+fAV9fgYA9fu6qJmYH+VqRESCbrzxRl577TVmzJiBmfHDH/6Q0tJS7rvvPu666y4CgQDZ2dncf//9NDY28ulPf5qBgQEAvv/975/w58dV0Fe+e0R/KMqViIjAgQMHgOBFTnfddRd33XXXe9YvWLCABQsWvO91q1atimgdcdVHnx5Ipignjfo2DbEUETkiroIeoFpj6UVE3iPugr4qL0NdNyIig8Rf0Odn0rT/EL39A9EuRUSizN2jXULEHc93ir+gz8tkwKGpPb4mGxCR0UlPT2fv3r1xFfZH7kefnj664eMjjroxsyrgfoKzRTmwyN1/fNQ2lxGcQvCdUNNid78ztG4+8GMgGfi5u/9gVBWOUuWgIZbVBZkn86NEJIZVVlbS0NBAa2t83dH2yAxToxHO8Mo+4Gvuvio0/+tKM1vm7huP2u4Vd79mcIOZJQM/Ba4AGoAVZrZkiNdGzOCLpkQkcQUCgVHNwhTPRuy6cfcmd18VWu4ENgEVYb7/HGCru29z98PAQ8D1x1tsOMrGpZOcZOxU0IuIAKPsozezicB5wB+GWH2Rma0xs2fM7Mj1xhVA/aBtGgj/R+K4pCQnUT4+nfp9GnkjIgKjuDLWzLKBx4CvuPvRt4FbBUxw9wNmdhXwBHDGaAoxs4XAQoDq6urRvPR9qvIy1XUjIhIS1hG9mQUIhvyv3X3x0evdvcPdD4SWnwYCZlYINAJVgzatDLW9j7svcvcad68pKioa5dd4r6q8TBp00ZSICBBG0FtwJtpfAJvc/UfDbFMa2g4zmxN6373ACuAMM5tkZqnArcCSSBU/nKr8DPYcOEzX4b6T/VEiIjEvnK6bi4FPAevMrC7U9k2gGsDd7wE+BnzBzPqAQ8CtHhy82mdmXwSeIzi88l533xDZr/B+VfnBkTcN+w5xZknOyf44EZGYNmLQu/urwDGna3L3nwA/GWbd08DTx1XdcaocNMRSQS8iiS7uroyF4I3NQGPpRUQgToO+MDuVjECyhliKiBCnQW9mVOZl6IheRIQ4DXoInpDVEb2ISDwHfV4GDW1dcXXnOhGR4xG/QZ+fSWdPH+1dvdEuRUQkquI26N8dYqkrZEUkwcVt0FcduS+9phUUkQQXx0GvI3oREYjjoM9NDzAuI6AhliKS8OI26CHYfaMhliKS6OI76PMyadARvYgkuPgO+vxMGvYdYmBAY+lFJHHFfdAf7h+gpbMn2qWIiERNfAd9XmiIpUbeiEgCC2eGqSoze9HMNprZBjP78hDbfMLM1prZOjP7bzObMWjd9lB7nZnVRvoLHEuVblcsIhLWDFN9wNfcfZWZ5QArzWyZu28ctM07wKXuvs/MrgQWARcMWn+5u++JXNnhqRivi6ZERMKZYaoJaAotd5rZJqAC2Dhom/8e9JLXCU4CHnXpgWRKctPYqSN6EUlgo+qjN7OJwHnAH46x2WeBZwY9d2Cpma00s4WjrvAEVeVlqo9eRBJaOF03AJhZNvAY8BV37xhmm8sJBv0lg5ovcfdGMysGlpnZm+6+fIjXLgQWAlRXV4/iKxxbVX4mf9i2N2LvJyIy1oR1RG9mAYIh/2t3XzzMNtOBnwPXu/u7yerujaG/LcDjwJyhXu/ui9y9xt1rioqKRvctjqEqL4Omjm4O9w1E7D1FRMaScEbdGPALYJO7/2iYbaqBxcCn3H3LoPas0AlczCwLmAesj0Th4arMz8QddrXrhKyIJKZwum4uBj4FrDOzulDbN4FqAHe/B/gboAD41+DvAn3uXgOUAI+H2lKAB9z92Uh+gZFUDbov/cTCrFP50SIiMSGcUTevAjbCNp8DPjdE+zZgxvtfcerovvQikuji+spYgLJxGaQkmUbeiEjCivugT04yysdn6OpYEUlYcR/0ANX5mbovvYgkrIQI+qr8DN2XXkQSVkIEfWVeJnsPHuZgT1+0SxEROeUSIug1UbiIJLLECPo8DbEUkcSVGEGv+9KLSAJLiKAvyEolI5CsrhsRSUgJEfRmRlV+hrpuRCQhJUTQQ/CeNw06oheRBJQ4QZ+fSX1bF+4e7VJERE6phAn6yrwMDh7uZ19Xb7RLERE5pRIm6DXyRkQSVeIEfZ4umhKRxJQ4Qa/70otIggpnKsEqM3vRzDaa2QYz+/IQ25iZ/bOZbTWztWY2a9C6BWb2VuixINJfIFw56QHyMgM6oheRhBPOVIJ9wNfcfVVo/teVZrbM3TcO2uZK4IzQ4wLg34ALzCwf+DZQA3jotUvcfV9Ev0WYjoy8ERFJJCMe0bt7k7uvCi13ApuAiqM2ux6434NeB8abWRnwUWCZu7eFwn0ZMD+i32AUqvIU9CKSeEbVR29mE4HzgD8ctaoCqB/0vCHUNlx7VFTmZ9DYfoj+AY2lF5HEEXbQm1k28BjwFXfviHQhZrbQzGrNrLa1tTXSbw8Ej+h7+53mju6T8v4iIrEorKA3swDBkP+1uy8eYpNGoGrQ88pQ23Dt7+Pui9y9xt1rioqKwilr1DSWXkQSUTijbgz4BbDJ3X80zGZLgD8Ljb65ENjv7k3Ac8A8M8szszxgXqgtKt69L73mjxWRBBLOqJuLgU8B68ysLtT2TaAawN3vAZ4GrgK2Al3Ap0Pr2szs74AVodfd6e5tEat+lCryMkhJMjbvjnjPk4hIzBox6N39VcBG2MaBO4ZZdy9w73FVF2FpKclcfHohT6/bzTevOpvgP1ZEROJbwlwZe8R1M8ppbD/Eqp1RGcovInLKJVzQzzunhLSUJJbU7Yp2KSIip0TCBX1OeoAPnVXMb9c10dc/EO1yREROuoQLegh23+w5cJjXtu2NdikiIiddQgb95WcVk52Wou4bEUkICRn06YFk5k0t4dkNu+np6492OSIiJ1VCBj3AtTPL6ezu4+XNJ+d2CyIisSJhg/6S0wvJywywZI26b0QkviVs0AeSk7jq3DKe39TMwZ6+aJcjInLSJGzQQ3D0TXfvAM9vao52KSIiJ01CB/35E/MpG5eu0TciEtcSOuiTkoxrppex/K1W2rsOR7scEZGTIqGDHuC6GRX09jvPrt8d7VJERE6KhA/6aRW5TCzI1OgbEYlbCR/0ZsZ1M8p5bdteWjTFoIjEoYQPeoDrZpbjDk+tbYp2KSIiERfOVIL3mlmLma0fZv3Xzawu9FhvZv1mlh9at93M1oXW1Ua6+Eg5vTiHs8ty1X0jInEpnCP6XwLzh1vp7ne5+0x3nwn8FfDyUdMFXh5aX3NClZ5k180op66+XROHi0jcGTHo3X05EO48r7cBD55QRVFy7YwyAB3Vi0jciVgfvZllEjzyf2xQswNLzWylmS2M1GedDJV5mcyekMdvFPQiEmcieTL2WuD3R3XbXOLus4ArgTvMbO5wLzazhWZWa2a1ra3RuaPktdPLeHN3J1uaO6Py+SIiJ0Mkg/5Wjuq2cffG0N8W4HFgznAvdvdF7l7j7jVFRUURLCt8V08vJ8nQLRFEJK5EJOjNbBxwKfDkoLYsM8s5sgzMA4YcuRMrinLS+MBphSxZswt3j3Y5IiIREc7wygeB14ApZtZgZp81s78ws78YtNmNwFJ3PziorQR41czWAG8Av3X3ZyNZ/Mlw3YxydrZ1saZhf7RLERGJCIvFI9eamhqvrY3OsPv9h3q56Psv8IHTCvn5gpgeESoi8i4zWzncMHZdGXuUcRkBvvzhM3h+UzPLNuo+9SIy9inoh/CZSyYxpSSH7yzZQNdhzT4lImObgn4IgeQkvnvjNBrbD/HPL2yNdjkiIidEQT+M8yfm8/HZlfz8lW0aVy8iY5qC/hi+ceVZZKWl8NdPrNdwSxEZsxT0x1CQncY3rjyLN95pY/GqxmiXIyJyXBT0I/iTmipmVY/n75/epHllRWRMUtCPICnJ+O4N59J+qJcfPrc52uWIiIyagj4MU8tzuf0DE3nwjZ2s3rkv2uWIiIyKgj5MX73iTIpz0vjW4+vp6x+IdjkiImFT0IcpOy2Fv7nmHDY2dfCr13dEuxwRkbAp6EfhqnNLmXtmEf+4dAvNHd3RLkdEJCwK+lEwM+687hwO9w/wd09tjHY5IiJhUdCP0sTCLO647HSeWtvEU2s1QYmIxD4F/XH480snM6t6PF9+qE5zzIpIzAtn4pF7zazFzIacHcrMLjOz/WZWF3r8zaB1881ss5ltNbNvRLLwaEoPJHP/Zy9gdnUeX35oNYtXNUS7JBGRYYVzRP9LYP4I27zi7jNDjzsBzCwZ+CnBicGnAreZ2dQTKTaWZKel8MvPnM+Fkwv42qNreGRFfbRLEhEZ0ohB7+7LgbbjeO85wFZ33+buh4GHgOuP431iVmZqCvfefj5zzyji/zy2VsMuRSQmRaqP/iIzW2Nmz5jZOaG2CmDwYW5DqC2upAeSWfRns/nI2cX83yfWc++r70S7JBGR94hE0K8CJrj7DOBfgCeO503MbKGZ1ZpZbWtrawTKOnXSUpL510/M5spppdz51EbuefntaJckIvKuEw56d+9w9wOh5aeBgJkVAo1A1aBNK0Ntw73PInevcfeaoqKiEy3rlEtNSeJfbjuPa2eU84Nn3uSfX3gr2iWJiACQcqJvYGalQLO7u5nNIfjjsRdoB84ws0kEA/5W4E9P9PNiWUpyEv/0JzMJJBs/WraF3v4B/tcVZ2Jm0S5NRBLYiEFvZg8ClwGFZtYAfBsIALj7PcDHgC+YWR9wCLjVg9Mx9ZnZF4HngGTgXnffcFK+RQxJTjL+4WMzSE1O4l9+t5W3Ww/wd9dPoyA7LdqliUiCslicIq+mpsZra2ujXcYJGRhwfrZ8G3cv20JOegrfvWEaV55bFu2yRCROmdlKd68Zap2ujD1JkpKML1x2Gk/9z0soH5/BF369ii89uJp9BzVLlYicWgr6k+zMkhwW/48P8LUrzuTZ9U1ccfdylm7YHe2yRCSBKOhPgUByEl/68Bk8ecclFOeksfBXK/nqw3Wag1ZETgkF/Sk0tTyXJ+64mC9/+Ax+s2YX8+5ezgubmqNdlojEOQX9KZaaksRXrziTJ+64mPysVD57Xy0L7n2DtQ3t0S5NROKUgj5KplWM48kvXsxfzj+LNQ3tXPeT3/O5+2rZuKsj2qWJSJzR8MoY0Nndy3/8fjv//so2Orv7uOrcUr76kTM5oyQn2qWJyBhxrOGVCvoYsr+rl5+/uo17X32Hrt5+rptRzpc/fAaTi7KjXZqIxDgF/RjTdvAwi5Zv477/3s7h/gFuPK+Cz39wMlNKdYQvIkNT0I9RrZ093PPy2/zn6zvo6Rvggkn5LPjARK6YWkIgWadXROSPFPRj3L6Dh3mktp5fvb6Dhn2HKMlN4xMXTODWOVUU56RHuzwRiQEK+jjRP+C8tLmF+17bwfItrQSSjSunlfFnF01g9oQ83SVTJIEdK+hP+DbFcuokJxkfPruED59dwrbWA/zn6zt5dGU9S9bsYmpZLrfOqeL6GRWMywxEu1QRiSE6oh/jug738cTqXfzq9R1sauogLSWJ+dNK+ZOaKi6cXEBSko7yRRKBum4SxPrG/Ty8op4n6hrp7O6jKj+Dj8+u4mOzKykfnxHt8kTkJFLQJ5ju3n6eXb+bh1fU89q2vZjB3DOKuKWmig+fXUx6IDnaJYpIhJ1Q0JvZvcA1QIu7Txti/SeAvwQM6AS+4O5rQuu2h9r6gb7hijiagj5ydu7t4tGV9Txa28Dujm5y0lL46LRSrp9ZzkWTC0jRME2RuHCiQT8XOADcP0zQfwDY5O77zOxK4DvufkFo3Xagxt33jKZgBX3k9Q84v9+6hyVrdvHc+t109vRRmJ3KNdPLuW5mOedVjdeoHZEx7IS7bsxsIvDUUEF/1HZ5wHp3rwg9346CPuZ09/bz0uYWnqzbxQtvtnC4b4Cq/Ayum1HO9TMrOFP32BEZc07l8MrPAs8Meu7AUjNz4GfuvijCnyfHIT2QzPxpZcyfVkZHdy9LNzTzZF0j//bS2/z0xbc5uyyXG88r57oZFZSO0wVZImNdxI7ozexy4F+BS9x9b6itwt0bzawYWAZ8yd2XD/P6hcBCgOrq6tk7duwY7XeRE9Ta2cNv1+7iibpd1NW3YwYfOK2AG2ZWMH9aKTnpGp8vEqtOeteNmU0HHgeudPctw2zzHeCAu//DSJ+nrpvoe2fPQZ5Y3cgTdY3s2NtFWkoSH5lawo0zK5h7ZhGpKTqJKxJLTmrXjZlVA4uBTw0OeTPLApLcvTO0PA+480Q/T06NSYVZfPWKM/nKR85gdX07T65u5Ddrm/jt2ibGZwa46twyrptRzpyJ+booSyTGhTPq5kHgMqAQaAa+DQQA3P0eM/s5cDNwpK+lz91rzGwywaN8CP6gPODu3wunKB3Rx6be/gFeeauVJ1bvYtnGZg719lOam84108u4bmY551aM08gdkSjRBVMScV2H+3h+UwtL6nbx8pYWevudSYVZXBsK/dOLNXJH5FRS0MtJtb+rl2fWN7FkzS5e27YXdzi7LJdrppdx9bllTCzMinaJInFPQS+nTEtHN0+tbeI3a3exemc7ANMqcrn63HKuPreM6oLM6BYoEqcU9BIVje2HeGZdE0+tbaKuvh2A6ZXjuPrcMq46t4yqfIW+SKQo6CXq6tu6eGZ9cNTOmob9AMysGs9Nsyq4dno5eVmpUa5QZGxT0EtMqW/r4rfrmniybhebmjoIJBuXTynmplmVfOisYo3RFzkOCnqJWRt3dfD46gaeqNtFa2cP4zMDXDu9nJtmVTBTN1oTCZuCXmJeX/8Ar27dw2OrGlm6YTc9fQNMLsziplkV3DirkgpNnCJyTAp6GVM6unt5Zl0Tj61s5I3tbZjBhZMKuHl2JVdOKyUrTVMdixxNQS9jVn1bF4tXNbJ4dQM79naREUjmymml3DSrkotOKyBZt18QART0EgfcnZU79vHYqkaeWruLzu4+ysalc8N5Fdw8q5LTi7OjXaJIVCnoJa509/bz/KZmFq9q5OUtrfQPOLMn5HFLTSVXTy8nW107koAU9BK3Wjt7eGJ1Iw/X1rO15QCZqclcM72MW2qqmD0hT6N2JGEo6CXuuTurdrbzyIp6nlq7i4OH+zmtKItbaqq4cVYFxTmaKUvim4JeEsrBnj5+u66JR1bUU7tjH8lJxofOKuaWmioum1JEIFkXZEn8UdBLwtracoBHa+t5bFUjew70UJidxk2zKvj47ErO0CToEkciMZXgvcA1QMtQ0wlasCP0x8BVQBdwu7uvCq1bAPx1aNPvuvt9I32egl4irbd/gJc3t/JIbT2/e7OFvgHnvOrxfHx2FdfMKCNX8+HKGBeJoJ8LHADuHyborwK+RDDoLwB+7O4XmFk+UAvUAA6sBGa7+75jfZ6CXk6mPQdCJ3BX1PNWywHSA0lcNa2MW86v4oJJ+TqBK2PSCc8Z6+7LQxOED+d6gj8CDrxuZuPNrIzgFITL3L0tVMgyYD7w4CjqF4mowuw0PvfByXz2kkmsadjPI7X1/KZuF4tXNzK5MIvb5lRz8+xK8nVHTYkTkRpwXAHUD3reEGobrl0k6syMmVXjmVk1nv979VSeXtfEA2/s5HtPb+Ku5zbz0Wml3DaniosmF+goX8a0mLmyxMwWAgsBqquro1yNJJqM1GRunl3JzbMr2by7kwff2MniVQ38Zs0uJhVmcducKm6eVUlBdlq0SxUZtUiNM2sEqgY9rwy1Ddf+Pu6+yN1r3L2mqKgoQmWJjN6U0hy+c905vPGtj/CjW2ZQmJ3K3z/9Jhd+/wXueGAVr7zVysBA7I1WExlOpI7olwBfNLOHCJ6M3e/uTWb2HPD3ZpYX2m4e8FcR+kyRkyo9kMxNsyq5aVYlbzV38sAbO3l8dSO/XdtEZV4Gt9RU8bHZlZTrFsoS48IddfMgwROrhUAz8G0gAODu94SGV/6E4InWLuDT7l4beu1ngG+G3up77v4fI32eRt1IrOru7WfZxmYeXlHPq1v3kGQw98wibj2/ig+dVaLZsSRqdMGUyElQ39bFI7X1PFrbwO6ObgqzU7lpViW31FTpbppyyinoRU6i/gFn+ZZWHlqxkxc26WIsiQ4FvcgpcuRumo+urGdL8wHSUpKYP62Uj8+u4gOnFZCkiVLkJFHQi5xi7s7ahv08urKeJXW76Ojuo2J8BjfPquBjs6uoLsiMdokSZxT0IlHU3dvP0o3NPFobPIHrDnMm5XPTeRVcNV1dOxIZCnqRGLGr/RCLVzWweHUj21oPkpqSxBVTS7jpvArmnqlbKMvxU9CLxJgjXTuLVzXwm7VNtB08TEFWKtfOKOemWRWcWzFOt12QUVHQi8SwI7dQfnx1I8s2NXO4b4DTirK4dkY586aWcnZZjkJfRqSgFxkj9h/q5el1TTy+upEV29twh6r8DOZNLeWj55Qye0IeyRq5I0NQ0IuMQXsO9PD8xmae27Cb32/dy+H+AQqyUvnI2SXMO6eEi08vJD2QHO0yJUYo6EXGuAM9fby0uYWlG5p58c0WOnv6yExN5rIpRcybWsrlU4oZl6nRO4nshCceEZHoyk5L4Zrp5VwzvZyevn5ee3svz21o5vlNzTy9bjcpScaFkwuYd04JV0wtoWycbrQmf6QjepExbGDAqWtoZ+mGZpZu2M22PQcBmFE5jnnnlDJvagmnF2frZG4CUNeNSILY2nKApRt3s3RDM3X17UDwZO7lU4q5fEoxF04uICNV/frxSEEvkoCaO7pZtrGZlza38PuteznU209aShIXTi7g8ilFXH5WMRMKsqJdpkSIgl4kwXX39vPGO228tLmVlza3vNvFM7kwi0unFHHxaYWcPzFfJ3THMAW9iLzH9j0HeWlzCy9taeW1t/fS0zeAGUwpyeGCSfnMmVTA+ZPyKM5Jj3apEqYTDnozmw/8GEgGfu7uPzhq/d3A5aGnmUCxu48PresH1oXW7XT360b6PAW9yKnT3dvPmvp23ninjTe2t7Fyxz66DvcDMKkwizkT85kzKfiozMvQid0YdUJBb2bJwBbgCqABWAHc5u4bh9n+S8B57v6Z0PMD7j6q6XYU9CLR09s/wIZdHbzxzt5g+L/TRkd3HwAluWnUTMzn/Al51EzM56zSHFJ0I7aYcKLj6OcAW919W+jNHgKuB4YMeuA2gnPKisgYFEhOYmbVeGZWjWfh3NMYGHA2N3dSu72N2h37qN2+j9+ubQIgKzWZWRPyqJmQT83EPM4pz2V8ZmqUv4EcLZygrwDqBz1vAC4YakMzmwBMAn43qDndzGqBPuAH7v7E8ZUqItGQlGScXZbL2WW5fOqiiQA0th8KBv/2fazY3sY/vbCFI50DxTlpTCnN4cySHKaU5DClNIczSrLJTNX1mdES6T1/K/Bf7t4/qG2Cuzea2WTgd2a2zt3fPvqFZrYQWAhQXV0d4bJEJJIqxmdQMbOC62dWAMGbsa2pb+fN3R1s3n2ALc2d/OfrO+jpG3j3NdX5mcHwL81mSmkuU0pymFyUpXvwnwLhBH0jUDXoeWWobSi3AncMbnD3xtDfbWb2EnAe8L6gd/dFwCII9tGHUZeIxIhxGQHmnlnE3DOL3m3rH3B2tnWxeXcnW5o72dzcyebdnby4uYX+geD/4oFk47Si7NAPQA5nhf4lUDE+Q/PrRlA4Qb8COMPMJhEM+FuBPz16IzM7C8gDXhvUlgd0uXuPmRUCFwM/jEThIhLbkpOMSYVZTCrMYv600nfbe/r6ebvlIFuaO3kz9COwcsc+lqzZ9e426YEkJhZkcVpRNpMKs5hclMXkomwmF2Vp6sXjMGLQu3ufmX0ReI7g8Mp73X2Dmd0J1Lr7ktCmtwIP+XuH8ZwN/MzMBoAkgn30w53EFZEEkJaSzNTyXKaW576nvaO7l7eaO9m8+wDbWg+wbc9BNuzaz7Mbdr/7LwCAwuw0JhdlMSE/kwkFmVQX/HFZJ4KHpgumRCSmHe4bYGfbQba1HmTbnoPBH4HWg+xo66K1s+c92+ampzChIIvqgkyq8zMpzU2nJDeN4tx0SnLTKcpOIzUlPs8J6DbFIjJmpaYkcXpxDqcX57xvXdfhPna2dbFjbxc793axo+0gO/Z2sb5xP8+t303fwPsPZAuyUinOTac4J42S3LTgj8G4dMrGBX8MSnPTyc9KjasLwxT0IjJmZaamcFZpLmeV5r5v3cCA09Z1mOaOblo6emju6Ka5o4fmzm5aQsubmjpoPdDD0R0bqclJFOemUTYuneKcdMZnBsjLTGV8ZoDxmamMzwj8cTkzwPiMQExfOKagF5G4lJRkFGanUZidxjnlw2/X1z9A64Eedu/vDj46go/m0PKm3R3s7+ql/VDve84VHC07LYVxGQFyMwKMywguH/3IHaJt3Cn4kVDQi0hCS0lOomxcxoizcg0MOAcO99F+sJf2Q4fZ19VLe9dh2rt6ae/qZf+hPz46DvXyzp6D7z7v7h045ntnpSYzLiNAZV4mj/zFRZH8eoCCXkQkLElJRm56gNz0ANVkjuq1PX397/4ADP5B2N/Vy/5Dfe8+DySfnPMCCnoRkZMsLSWZ4pzkqN32OXbPHoiISEQo6EVE4pyCXkQkzinoRUTinIJeRCTOKehFROKcgl5EJM4p6EVE4lxM3qbYzFqBHcf58kJgTwTLORXGWs1jrV5QzafKWKt5rNULw9c8wd2LhmiPzaA/EWZWO9w9mWPVWKt5rNULqvlUGWs1j7V64fhqVteNiEicU9CLiMS5eAz6RdEu4DiMtZrHWr2gmk+VsVbzWKsXjqPmuOujFxGR94rHI3oRERkkboLezOab2WYz22pm34h2PeEws+1mts7M6sysNtr1DMXM7jWzFjNbP6gt38yWmdlbob950azxaMPU/B0zawzt6zozuyqaNQ5mZlVm9qKZbTSzDWb25VB7zO7nY9Qcy/s53czeMLM1oZr/NtQ+ycz+EMqOh80sNdq1HnGMmn9pZu8M2s8zj/lG7j7mH0Ay8DYwGUgF1gBTo11XGHVvBwqjXccINc4FZgHrB7X9EPhGaPkbwP+Ldp1h1Pwd4H9Hu7Zh6i0DZoWWc4AtwNRY3s/HqDmW97MB2aHlAPAH4ELgEeDWUPs9wBeiXWsYNf8S+Fi47xMvR/RzgK3uvs3dDwMPAddHuaa44O7Lgbajmq8H7gst3wfccCprGskwNccsd29y91Wh5U5gE1BBDO/nY9QcszzoQOhpIPRw4EPAf4XaY20/D1fzqMRL0FcA9YOeNxDj/9GFOLDUzFaa2cJoFzMKJe7eFFreDZREs5hR+KKZrQ117cRMN8hgZjYROI/gkduY2M9H1QwxvJ/NLNnM6oAWYBnBnoB2d+8LbRJz2XF0ze5+ZD9/L7Sf7zaztGO9R7wE/Vh1ibvPAq4E7jCzudEuaLQ8+G/KsTB069+A04CZQBPwj1GtZghmlg08BnzF3TsGr4vV/TxEzTG9n929391nApUEewLOim5FIzu6ZjObBvwVwdrPB/KBvzzWe8RL0DcCVYOeV4baYpq7N4b+tgCPE/wPbyxoNrMygNDflijXMyJ3bw79DzMA/Dsxtq/NLEAwMH/t7otDzTG9n4eqOdb38xHu3g68CFwEjDezlNCqmM2OQTXPD3Wdubv3AP/BCPs5XoJ+BXBG6Ox5KnArsCTKNR2TmWWZWc6RZWAesP7Yr4oZS4AFoeUFwJNRrCUsRwIz5EZiaF+bmQG/ADa5+48GrYrZ/TxczTG+n4vMbHxoOQO4guC5hReBj4U2i7X9PFTNbw46ADCC5xSOuZ/j5oKp0DCufyI4Auded/9edCs6NjObTPAoHiAFeCAWazazB4HLCN4xrxn4NvAEwZEK1QTvMnqLu8fMyc9har6MYHeCExzt9OeD+r+jyswuAV4B1gEDoeZvEuzzjsn9fIyabyN29/N0gidbkwke5D7i7neG/l98iGAXyGrgk6Ej5ag7Rs2/A4oIjsqpA/5i0Enb979PvAS9iIgMLV66bkREZBgKehGROKegFxGJcwp6EZE4p6AXEYlzCnoRkTinoBcRiXMKehGROPf/AZJU1FEm9kB0AAAAAElFTkSuQmCC\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"code","source":"tf.train.latest_checkpoint(checkpoint_dir)\n\nmodel = build_model(vocab_size, embedding_dim, rnn_units, batch_size=1)\n\nmodel.load_weights(tf.train.latest_checkpoint(checkpoint_dir))\n\nmodel.build(tf.TensorShape([1, None]))\n\nmodel.summary()","metadata":{"execution":{"iopub.status.busy":"2023-01-23T05:53:38.925436Z","iopub.execute_input":"2023-01-23T05:53:38.925714Z","iopub.status.idle":"2023-01-23T05:53:39.188346Z","shell.execute_reply.started":"2023-01-23T05:53:38.925686Z","shell.execute_reply":"2023-01-23T05:53:39.186962Z"},"trusted":true},"execution_count":42,"outputs":[{"name":"stdout","text":"Model: \"sequential_3\"\n_________________________________________________________________\nLayer (type) Output Shape Param # \n=================================================================\nembedding_3 (Embedding) (1, None, 256) 16640 \n_________________________________________________________________\ngru_3 (GRU) (1, None, 1024) 3938304 \n_________________________________________________________________\ndense_3 (Dense) (1, None, 65) 66625 \n=================================================================\nTotal params: 4,021,569\nTrainable params: 4,021,569\nNon-trainable params: 0\n_________________________________________________________________\n","output_type":"stream"}]},{"cell_type":"code","source":"model.save('model.h5')","metadata":{"execution":{"iopub.status.busy":"2023-01-23T05:53:40.113042Z","iopub.execute_input":"2023-01-23T05:53:40.113336Z","iopub.status.idle":"2023-01-23T05:53:40.163870Z","shell.execute_reply.started":"2023-01-23T05:53:40.113305Z","shell.execute_reply":"2023-01-23T05:53:40.162900Z"},"trusted":true},"execution_count":43,"outputs":[]},{"cell_type":"code","source":"model = tf.keras.models.load_model('model.h5')","metadata":{"execution":{"iopub.status.busy":"2023-01-23T05:55:04.484716Z","iopub.execute_input":"2023-01-23T05:55:04.484998Z","iopub.status.idle":"2023-01-23T05:55:04.716204Z","shell.execute_reply.started":"2023-01-23T05:55:04.484967Z","shell.execute_reply":"2023-01-23T05:55:04.715394Z"},"trusted":true},"execution_count":51,"outputs":[]},{"cell_type":"code","source":"def generate_text(model, start_string=u'ROMEO:', num_generate=1000, temperature=0.7):\n input_eval = [char2idx[s] for s in start_string]\n input_eval = tf.expand_dims(input_eval, 0)\n\n text_generated = []\n\n model.reset_states()\n for i in range(num_generate):\n predictions = model(input_eval)\n predictions = tf.squeeze(predictions, 0)\n predictions = predictions / temperature\n predicted_id = tf.random.categorical(predictions, num_samples=1)[-1,0].numpy()\n input_eval = tf.expand_dims([predicted_id], 0)\n text_generated.append(idx2char[predicted_id])\n\n return (start_string + ''.join(text_generated))","metadata":{"execution":{"iopub.status.busy":"2023-01-23T05:59:17.611210Z","iopub.execute_input":"2023-01-23T05:59:17.611527Z","iopub.status.idle":"2023-01-23T05:59:17.618325Z","shell.execute_reply.started":"2023-01-23T05:59:17.611490Z","shell.execute_reply":"2023-01-23T05:59:17.617438Z"},"trusted":true},"execution_count":58,"outputs":[]},{"cell_type":"code","source":"print(generate_text(model))","metadata":{"execution":{"iopub.status.busy":"2023-01-23T05:59:17.959537Z","iopub.execute_input":"2023-01-23T05:59:17.959774Z","iopub.status.idle":"2023-01-23T05:59:21.962224Z","shell.execute_reply.started":"2023-01-23T05:59:17.959748Z","shell.execute_reply":"2023-01-23T05:59:21.961442Z"},"trusted":true},"execution_count":59,"outputs":[{"name":"stdout","text":"ROMEO:\nWhy, many, sir, what place can witness and the man of some unreverent sinking.\nThe news to say to me, he brings the men of Greece\nAnd bear the self-same tongue; as at the store of men,\nThe queen is coming.\n\nPERDITA:\nSo will, I do not\nThus proclaim us from our hands whose wars death is a devil.\n\nLADY MOPt not from him;\nBut thou the king, post to thy beauty,\nAnd made Verona's sake, Sir John, who being so happy?\n\nThird Servant:\nThat is the best of our friends with silence,\nOr else new form'd him.\n\nSICINIUS:\nShall lie alone;\nLest I rest to say, Signior Prince of Warwick,\nAnd he shall she the belly sir.\n\nCORIOLANUS:\nAway!\n\nSecond Servant:\nOr seeming, COMINIUS:\nFor my peace is mine.\n\nKING RICHARD II:\nWhy straight did I think the weakest world,\nThat we will plant so wide as aught and hazard of the father's voice,\nThat at the boy, if mine own carver man: if she have recourse us.\n\nMessenger:\nShe whom I love.\n\nSecond Murderer:\nO sir, you were possess'd, when thou camest here in the\nThe truth, o\n","output_type":"stream"}]}]} \ No newline at end of file +{"metadata":{"accelerator":"GPU","colab":{"provenance":[]},"gpuClass":"standard","kernelspec":{"name":"python3","display_name":"Python 3","language":"python"},"language_info":{"name":"python","version":"3.7.10","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import os\nos.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'\n\nimport tensorflow as tf\n\nfrom tensorflow.keras import Sequential\nfrom tensorflow.keras.layers import Embedding, GRU, Dense\n\nimport numpy as np\nimport pandas as pd\nimport os\nimport time","metadata":{"id":"Qu46zrM8wlpM","execution":{"iopub.status.busy":"2023-01-23T09:37:02.077378Z","iopub.execute_input":"2023-01-23T09:37:02.077920Z","iopub.status.idle":"2023-01-23T09:37:07.764808Z","shell.execute_reply.started":"2023-01-23T09:37:02.077805Z","shell.execute_reply":"2023-01-23T09:37:07.763997Z"},"trusted":true},"execution_count":1,"outputs":[]},{"cell_type":"code","source":"physical_devices = tf.config.list_physical_devices('GPU')\nprint(\"Num GPUs:\", len(physical_devices))","metadata":{"execution":{"iopub.status.busy":"2023-01-23T09:37:07.766572Z","iopub.execute_input":"2023-01-23T09:37:07.766837Z","iopub.status.idle":"2023-01-23T09:37:08.041371Z","shell.execute_reply.started":"2023-01-23T09:37:07.766802Z","shell.execute_reply":"2023-01-23T09:37:08.040428Z"},"trusted":true},"execution_count":2,"outputs":[{"name":"stdout","text":"Num GPUs: 2\n","output_type":"stream"}]},{"cell_type":"code","source":"dataset_url = tf.keras.utils.get_file('shakespeare.txt', 'https://storage.googleapis.com/download.tensorflow.org/data/shakespeare.txt')\ndataset_text = open(dataset_url, 'rb').read().decode(encoding='UTF-8')\nprint(dataset_text[:1000])","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"v4gmrb8Yw4HQ","outputId":"8e1db03d-310d-49f6-c617-c1b46014618c","execution":{"iopub.status.busy":"2023-01-23T09:37:08.043029Z","iopub.execute_input":"2023-01-23T09:37:08.043606Z","iopub.status.idle":"2023-01-23T09:37:08.200353Z","shell.execute_reply.started":"2023-01-23T09:37:08.043564Z","shell.execute_reply":"2023-01-23T09:37:08.199665Z"},"trusted":true},"execution_count":3,"outputs":[{"name":"stdout","text":"Downloading data from https://storage.googleapis.com/download.tensorflow.org/data/shakespeare.txt\n1122304/1115394 [==============================] - 0s 0us/step\nFirst Citizen:\nBefore we proceed any further, hear me speak.\n\nAll:\nSpeak, speak.\n\nFirst Citizen:\nYou are all resolved rather to die than to famish?\n\nAll:\nResolved. resolved.\n\nFirst Citizen:\nFirst, you know Caius Marcius is chief enemy to the people.\n\nAll:\nWe know't, we know't.\n\nFirst Citizen:\nLet us kill him, and we'll have corn at our own price.\nIs't a verdict?\n\nAll:\nNo more talking on't; let it be done: away, away!\n\nSecond Citizen:\nOne word, good citizens.\n\nFirst Citizen:\nWe are accounted poor citizens, the patricians good.\nWhat authority surfeits on would relieve us: if they\nwould yield us but the superfluity, while it were\nwholesome, we might guess they relieved us humanely;\nbut they think we are too dear: the leanness that\nafflicts us, the object of our misery, is as an\ninventory to particularise their abundance; our\nsufferance is a gain to them Let us revenge this with\nour pikes, ere we become rakes: for the gods know I\nspeak this in hunger for bread, not in thirst for revenge.\n\n\n","output_type":"stream"}]},{"cell_type":"code","source":"vocab = sorted(set(dataset_text))\nprint(f'There are {len(vocab)} unique characters')","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"M6fUyb4exOYw","outputId":"275ea813-d767-4653-d33a-34cafca6032b","execution":{"iopub.status.busy":"2023-01-23T09:37:08.202817Z","iopub.execute_input":"2023-01-23T09:37:08.203077Z","iopub.status.idle":"2023-01-23T09:37:08.222579Z","shell.execute_reply.started":"2023-01-23T09:37:08.203044Z","shell.execute_reply":"2023-01-23T09:37:08.221616Z"},"trusted":true},"execution_count":4,"outputs":[{"name":"stdout","text":"There are 65 unique characters\n","output_type":"stream"}]},{"cell_type":"code","source":"char2idx = {char:index for index, char in enumerate(vocab)}\nchar2idx","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"C_v1hjDmxnxQ","outputId":"c24d469d-5bf1-4d2b-d7ed-97785a91c573","execution":{"iopub.status.busy":"2023-01-23T09:37:08.224008Z","iopub.execute_input":"2023-01-23T09:37:08.224567Z","iopub.status.idle":"2023-01-23T09:37:08.240003Z","shell.execute_reply.started":"2023-01-23T09:37:08.224533Z","shell.execute_reply":"2023-01-23T09:37:08.239251Z"},"trusted":true},"execution_count":5,"outputs":[{"execution_count":5,"output_type":"execute_result","data":{"text/plain":"{'\\n': 0,\n ' ': 1,\n '!': 2,\n '$': 3,\n '&': 4,\n \"'\": 5,\n ',': 6,\n '-': 7,\n '.': 8,\n '3': 9,\n ':': 10,\n ';': 11,\n '?': 12,\n 'A': 13,\n 'B': 14,\n 'C': 15,\n 'D': 16,\n 'E': 17,\n 'F': 18,\n 'G': 19,\n 'H': 20,\n 'I': 21,\n 'J': 22,\n 'K': 23,\n 'L': 24,\n 'M': 25,\n 'N': 26,\n 'O': 27,\n 'P': 28,\n 'Q': 29,\n 'R': 30,\n 'S': 31,\n 'T': 32,\n 'U': 33,\n 'V': 34,\n 'W': 35,\n 'X': 36,\n 'Y': 37,\n 'Z': 38,\n 'a': 39,\n 'b': 40,\n 'c': 41,\n 'd': 42,\n 'e': 43,\n 'f': 44,\n 'g': 45,\n 'h': 46,\n 'i': 47,\n 'j': 48,\n 'k': 49,\n 'l': 50,\n 'm': 51,\n 'n': 52,\n 'o': 53,\n 'p': 54,\n 'q': 55,\n 'r': 56,\n 's': 57,\n 't': 58,\n 'u': 59,\n 'v': 60,\n 'w': 61,\n 'x': 62,\n 'y': 63,\n 'z': 64}"},"metadata":{}}]},{"cell_type":"code","source":"idx2char = np.array(vocab)\nidx2char","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"G1AnsQToxwUG","outputId":"f0fce00b-d6b4-47b6-f061-4b8f7b2d6ab4","execution":{"iopub.status.busy":"2023-01-23T09:37:08.241241Z","iopub.execute_input":"2023-01-23T09:37:08.241510Z","iopub.status.idle":"2023-01-23T09:37:08.251158Z","shell.execute_reply.started":"2023-01-23T09:37:08.241479Z","shell.execute_reply":"2023-01-23T09:37:08.250471Z"},"trusted":true},"execution_count":6,"outputs":[{"execution_count":6,"output_type":"execute_result","data":{"text/plain":"array(['\\n', ' ', '!', '$', '&', \"'\", ',', '-', '.', '3', ':', ';', '?',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',\n 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'],\n dtype='"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"code","source":"tf.train.latest_checkpoint(checkpoint_dir)\n\nmodel = build_model(vocab_size, embedding_dim, rnn_units, batch_size=1)\n\nmodel.load_weights(tf.train.latest_checkpoint(checkpoint_dir))\n\nmodel.build(tf.TensorShape([1, None]))\n\nmodel.summary()","metadata":{"execution":{"iopub.status.busy":"2023-01-23T10:22:52.438383Z","iopub.execute_input":"2023-01-23T10:22:52.438644Z","iopub.status.idle":"2023-01-23T10:22:52.570871Z","shell.execute_reply.started":"2023-01-23T10:22:52.438609Z","shell.execute_reply":"2023-01-23T10:22:52.569391Z"},"trusted":true},"execution_count":26,"outputs":[{"name":"stdout","text":"Model: \"sequential_1\"\n_________________________________________________________________\nLayer (type) Output Shape Param # \n=================================================================\nembedding_1 (Embedding) (1, None, 256) 16640 \n_________________________________________________________________\ngru_1 (GRU) (1, None, 1024) 3935232 \n_________________________________________________________________\ndense_1 (Dense) (1, None, 65) 66625 \n=================================================================\nTotal params: 4,018,497\nTrainable params: 4,018,497\nNon-trainable params: 0\n_________________________________________________________________\n","output_type":"stream"}]},{"cell_type":"code","source":"model.save('model.h5')","metadata":{"execution":{"iopub.status.busy":"2023-01-23T10:22:52.572355Z","iopub.execute_input":"2023-01-23T10:22:52.572613Z","iopub.status.idle":"2023-01-23T10:22:52.644489Z","shell.execute_reply.started":"2023-01-23T10:22:52.572578Z","shell.execute_reply":"2023-01-23T10:22:52.643697Z"},"trusted":true},"execution_count":27,"outputs":[]},{"cell_type":"code","source":"model = tf.keras.models.load_model('model.h5')","metadata":{"execution":{"iopub.status.busy":"2023-01-23T10:22:52.648346Z","iopub.execute_input":"2023-01-23T10:22:52.648569Z","iopub.status.idle":"2023-01-23T10:22:52.760377Z","shell.execute_reply.started":"2023-01-23T10:22:52.648544Z","shell.execute_reply":"2023-01-23T10:22:52.758744Z"},"trusted":true},"execution_count":28,"outputs":[]},{"cell_type":"code","source":"def generate_text(model, start_string=u'ROMEO:', num_generate=1000, temperature=0.7):\n num_generate = 1000\n\n input_eval = [char2idx[s] for s in start_string]\n input_eval = tf.expand_dims(input_eval, 0)\n\n text_generated = []\n\n temperature = 0.1\n\n model.reset_states()\n for i in range(num_generate):\n predictions = model(input_eval)\n predictions = tf.squeeze(predictions, 0)\n predictions = predictions / temperature\n predicted_id = tf.random.categorical(predictions, num_samples=1)[-1,0].numpy()\n input_eval = tf.expand_dims([predicted_id], 0)\n text_generated.append(idx2char[predicted_id])\n\n return (start_string + ''.join(text_generated))","metadata":{"execution":{"iopub.status.busy":"2023-01-23T10:22:52.762097Z","iopub.execute_input":"2023-01-23T10:22:52.762461Z","iopub.status.idle":"2023-01-23T10:22:52.778389Z","shell.execute_reply.started":"2023-01-23T10:22:52.762418Z","shell.execute_reply":"2023-01-23T10:22:52.775893Z"},"trusted":true},"execution_count":29,"outputs":[]},{"cell_type":"code","source":"print(generate_text(model))","metadata":{"execution":{"iopub.status.busy":"2023-01-23T10:22:52.779708Z","iopub.execute_input":"2023-01-23T10:22:52.780045Z","iopub.status.idle":"2023-01-23T10:22:59.250032Z","shell.execute_reply.started":"2023-01-23T10:22:52.780007Z","shell.execute_reply":"2023-01-23T10:22:59.249270Z"},"trusted":true},"execution_count":30,"outputs":[{"name":"stdout","text":"ROMEO:\nO, welcome, Oxford! for thee, lords\nWith all your every name is king: then if I would not--and be gone.\n\nROMEO:\nGive me a torch: I am pale as fill the sky\nThe shederers of your daughter by your servant.\n\nCAMILLO:\nThe swifter is an answer.\n\nPOLIXENES:\nAnd this we pardon me.\n\nGLOUCESTER:\n\nKING EDWARD IV:\nNow tell me, madam, do you love the day.\nBrother, we done deeds be not a fliet, though being all too full of wretched by their hates\nOf death to my disease; carries and sleep as heaven,\nSpuke him to his rudely suffering stuff,\nThat seest it with the sword of heaven so fierce\n\nPETRUCHIO:\nWhy, there is time removed by humour with the stars:\nThere is a slave, whom we have put in prison,\nReports, the Volsces with two several powers\nAre specially to be a dishonest person?\n\nLUCIO:\n'Cucullus non facit monachum:' honest in nothing\nbut that I am not Lucentio.\n\nGREMIO:\nThe Emperor of Russia,\nWhen nights are longest the time and call it not\nUSTEL:\nNow to London, To this sin we begin to us.\n\nHENRY \n","output_type":"stream"}]}]} \ No newline at end of file diff --git a/jsmodel/group1-shard1of4.bin b/jsmodel/group1-shard1of4.bin index 50f742e..e206161 100644 Binary files a/jsmodel/group1-shard1of4.bin and b/jsmodel/group1-shard1of4.bin differ diff --git a/jsmodel/group1-shard2of4.bin b/jsmodel/group1-shard2of4.bin index f60c458..3505996 100644 Binary files a/jsmodel/group1-shard2of4.bin and b/jsmodel/group1-shard2of4.bin differ diff --git a/jsmodel/group1-shard3of4.bin b/jsmodel/group1-shard3of4.bin index e682033..8613500 100644 Binary files a/jsmodel/group1-shard3of4.bin and b/jsmodel/group1-shard3of4.bin differ diff --git a/jsmodel/group1-shard4of4.bin b/jsmodel/group1-shard4of4.bin index 200da57..e953467 100644 Binary files a/jsmodel/group1-shard4of4.bin and b/jsmodel/group1-shard4of4.bin differ diff --git a/model.h5 b/model.h5 index fa63950..8bbd76d 100644 Binary files a/model.h5 and b/model.h5 differ diff --git a/web/jsmodel/group1-shard1of4.bin b/web/jsmodel/group1-shard1of4.bin index 50f742e..e206161 100644 Binary files a/web/jsmodel/group1-shard1of4.bin and b/web/jsmodel/group1-shard1of4.bin differ diff --git a/web/jsmodel/group1-shard2of4.bin b/web/jsmodel/group1-shard2of4.bin index f60c458..3505996 100644 Binary files a/web/jsmodel/group1-shard2of4.bin and b/web/jsmodel/group1-shard2of4.bin differ diff --git a/web/jsmodel/group1-shard3of4.bin b/web/jsmodel/group1-shard3of4.bin index e682033..8613500 100644 Binary files a/web/jsmodel/group1-shard3of4.bin and b/web/jsmodel/group1-shard3of4.bin differ diff --git a/web/jsmodel/group1-shard4of4.bin b/web/jsmodel/group1-shard4of4.bin index 200da57..e953467 100644 Binary files a/web/jsmodel/group1-shard4of4.bin and b/web/jsmodel/group1-shard4of4.bin differ -- cgit v1.2.3