commit 03a67fd48de8facfd68fa0503f88cfb443c007cf parent b680b806791a21e8d555c53b1d1e2d64bb627679 Author: MTRNord <mtrnord1@gmail.com> Date: Sun, 25 Sep 2022 03:12:16 +0200 remove max length and set higher dim Diffstat:
20 files changed, 243 insertions(+), 16 deletions(-)
diff --git a/logs/scalars/20220925-025019/train/events.out.tfevents.1664067019.DESKTOP-GS9C68O.14034.0.v2 b/logs/scalars/20220925-025019/train/events.out.tfevents.1664067019.DESKTOP-GS9C68O.14034.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-025019/validation/events.out.tfevents.1664067021.DESKTOP-GS9C68O.14034.1.v2 b/logs/scalars/20220925-025019/validation/events.out.tfevents.1664067021.DESKTOP-GS9C68O.14034.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-030011/train/events.out.tfevents.1664067611.DESKTOP-GS9C68O.15449.0.v2 b/logs/scalars/20220925-030011/train/events.out.tfevents.1664067611.DESKTOP-GS9C68O.15449.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-030011/validation/events.out.tfevents.1664067614.DESKTOP-GS9C68O.15449.1.v2 b/logs/scalars/20220925-030011/validation/events.out.tfevents.1664067614.DESKTOP-GS9C68O.15449.1.v2 Binary files differ. diff --git a/logs/scalars/20220925-030618/train/events.out.tfevents.1664067978.DESKTOP-GS9C68O.16442.0.v2 b/logs/scalars/20220925-030618/train/events.out.tfevents.1664067978.DESKTOP-GS9C68O.16442.0.v2 Binary files differ. diff --git a/logs/scalars/20220925-030618/validation/events.out.tfevents.1664067980.DESKTOP-GS9C68O.16442.1.v2 b/logs/scalars/20220925-030618/validation/events.out.tfevents.1664067980.DESKTOP-GS9C68O.16442.1.v2 Binary files differ. diff --git a/model.png b/model.png Binary files differ. diff --git a/models/spam_keras_1664067152.4406712/keras_metadata.pb b/models/spam_keras_1664067152.4406712/keras_metadata.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d616794cda647f4ec65de6de88189a70fa1e9ce72c0a3bd964fb411a1c3c8ad +size 12508 diff --git a/models/spam_keras_1664067152.4406712/saved_model.pb b/models/spam_keras_1664067152.4406712/saved_model.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1cf4296ef68e8d3e9a06d30baf0f9637b36e4466d07b9b0195ff7eeed4ca972 +size 143450 diff --git a/models/spam_keras_1664067152.4406712/variables/variables.data-00000-of-00001 b/models/spam_keras_1664067152.4406712/variables/variables.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90d0a7aec5793dd1be8c8f12441591a16e627033aed7c58a3fb4c7d18248fa8f +size 201244 diff --git a/models/spam_keras_1664067152.4406712/variables/variables.index b/models/spam_keras_1664067152.4406712/variables/variables.index @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a3884e3a8d976212158d4a5581b32c706385a119251ef4795333f32b4c0cbd7 +size 1636 diff --git a/models/spam_keras_1664067744.7466862/keras_metadata.pb b/models/spam_keras_1664067744.7466862/keras_metadata.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d616794cda647f4ec65de6de88189a70fa1e9ce72c0a3bd964fb411a1c3c8ad +size 12508 diff --git a/models/spam_keras_1664067744.7466862/saved_model.pb b/models/spam_keras_1664067744.7466862/saved_model.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1cf4296ef68e8d3e9a06d30baf0f9637b36e4466d07b9b0195ff7eeed4ca972 +size 143450 diff --git a/models/spam_keras_1664067744.7466862/variables/variables.data-00000-of-00001 b/models/spam_keras_1664067744.7466862/variables/variables.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:373436521ca1aaa2fe5e18f81dd54432eafd9fbe7b9e79a5e978ec9fc241d311 +size 201244 diff --git a/models/spam_keras_1664067744.7466862/variables/variables.index b/models/spam_keras_1664067744.7466862/variables/variables.index @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abbce6ea7de88145ddab4aaa142441c3a8776d8eaac7c721f459a126d7dd88e7 +size 1636 diff --git a/models/spam_keras_1664068239.5405242/keras_metadata.pb b/models/spam_keras_1664068239.5405242/keras_metadata.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad78bdacdec52ec5d1d9e4213875ebb6144857598b547b06f12c38d3002a148f +size 12524 diff --git a/models/spam_keras_1664068239.5405242/saved_model.pb b/models/spam_keras_1664068239.5405242/saved_model.pb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a1b5c5fbc8d1e0f2571cd7a51ae908adbc56043d2074713ad374b14b01e03b7 +size 144841 diff --git a/models/spam_keras_1664068239.5405242/variables/variables.data-00000-of-00001 b/models/spam_keras_1664068239.5405242/variables/variables.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a6993487ac8b337bf6d80364820d4a20cfef6d919b770601f415650fee925e97 +size 780700 diff --git a/models/spam_keras_1664068239.5405242/variables/variables.index b/models/spam_keras_1664068239.5405242/variables/variables.index @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34af5ba9778a21cfd09e83586fa0f2bb5bc671d68f4b38921f55ab621995c657 +size 1636 diff --git a/spam-keras.ipynb b/spam-keras.ipynb @@ -10,9 +10,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2022-09-25 03:06:15.233931: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA\n", + "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", + "2022-09-25 03:06:15.401804: E tensorflow/stream_executor/cuda/cuda_blas.cc:2981] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n", + "2022-09-25 03:06:15.942846: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer.so.7'; dlerror: libnvinfer.so.7: cannot open shared object file: No such file or directory\n", + "2022-09-25 03:06:15.942974: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer_plugin.so.7'; dlerror: libnvinfer_plugin.so.7: cannot open shared object file: No such file or directory\n", + "2022-09-25 03:06:15.942983: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly.\n" + ] + } + ], "source": [ "import pandas as pd\n", "import numpy as np\n", @@ -31,7 +44,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -66,13 +79,15 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "vocab_size = 1000\n", - "embedding_dim = 16\n", - "max_length = 120\n", + "#prev 16\n", + "embedding_dim = 64\n", + "#max_length = 120\n", + "max_length = None\n", "trunc_type = 'post'\n", "padding_type = 'post'\n", "oov_tok = \"<OOV>\"\n", @@ -84,6 +99,7 @@ "sequences = tokenizer.texts_to_sequences(training_sentences)\n", "padded = pad_sequences(sequences, maxlen=max_length, padding=padding_type,\n", " truncating=trunc_type)\n", + "\n", "testing_sequences = tokenizer.texts_to_sequences(testing_sentences)\n", "testing_padded = pad_sequences(testing_sequences, maxlen=max_length,\n", " padding=padding_type, truncating=trunc_type)" @@ -98,9 +114,68 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: \"sequential\"\n", + "_________________________________________________________________\n", + " Layer (type) Output Shape Param # \n", + "=================================================================\n", + " embedding (Embedding) (None, None, 64) 64000 \n", + " \n", + " dropout (Dropout) (None, None, 64) 0 \n", + " \n", + " global_average_pooling1d (G (None, 64) 0 \n", + " lobalAveragePooling1D) \n", + " \n", + " dropout_1 (Dropout) (None, 64) 0 \n", + " \n", + " dense (Dense) (None, 6) 390 \n", + " \n", + " dropout_2 (Dropout) (None, 6) 0 \n", + " \n", + " dense_1 (Dense) (None, 1) 7 \n", + " \n", + "=================================================================\n", + "Total params: 64,397\n", + "Trainable params: 64,397\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2022-09-25 03:06:17.122319: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:966] could not open file to read NUMA node: /sys/bus/pci/devices/0000:09:00.0/numa_node\n", + "Your kernel may have been built without NUMA support.\n", + "2022-09-25 03:06:17.150100: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:966] could not open file to read NUMA node: /sys/bus/pci/devices/0000:09:00.0/numa_node\n", + "Your kernel may have been built without NUMA support.\n", + "2022-09-25 03:06:17.150155: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:966] could not open file to read NUMA node: /sys/bus/pci/devices/0000:09:00.0/numa_node\n", + "Your kernel may have been built without NUMA support.\n", + "2022-09-25 03:06:17.151180: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA\n", + "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", + "2022-09-25 03:06:17.151737: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:966] could not open file to read NUMA node: /sys/bus/pci/devices/0000:09:00.0/numa_node\n", + "Your kernel may have been built without NUMA support.\n", + "2022-09-25 03:06:17.151791: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:966] could not open file to read NUMA node: /sys/bus/pci/devices/0000:09:00.0/numa_node\n", + "Your kernel may have been built without NUMA support.\n", + "2022-09-25 03:06:17.151818: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:966] could not open file to read NUMA node: /sys/bus/pci/devices/0000:09:00.0/numa_node\n", + "Your kernel may have been built without NUMA support.\n", + "2022-09-25 03:06:17.645774: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:966] could not open file to read NUMA node: /sys/bus/pci/devices/0000:09:00.0/numa_node\n", + "Your kernel may have been built without NUMA support.\n", + "2022-09-25 03:06:17.645868: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:966] could not open file to read NUMA node: /sys/bus/pci/devices/0000:09:00.0/numa_node\n", + "Your kernel may have been built without NUMA support.\n", + "2022-09-25 03:06:17.645875: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1700] Could not identify NUMA node of platform GPU id 0, defaulting to 0. Your kernel may not have been built with NUMA support.\n", + "2022-09-25 03:06:17.645913: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:966] could not open file to read NUMA node: /sys/bus/pci/devices/0000:09:00.0/numa_node\n", + "Your kernel may have been built without NUMA support.\n", + "2022-09-25 03:06:17.645957: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1616] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5904 MB memory: -> device: 0, name: NVIDIA GeForce RTX 2080 SUPER, pci bus id: 0000:09:00.0, compute capability: 7.5\n" + ] + } + ], "source": [ "model = tf.keras.Sequential([\n", " tf.keras.layers.Embedding(\n", @@ -128,7 +203,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -144,11 +219,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Average test loss: 0.11202052943408489\n" + ] + } + ], "source": [ - "num_epochs = 105\n", + "num_epochs = 200\n", "history = model.fit(padded, \n", " training_labels_final, \n", " epochs=num_epochs, \n", @@ -164,9 +247,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Assets written to: ./models/spam_keras_1664068239.5405242/assets\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB64UlEQVR4nO3dd3zT1f7H8VfSPWhL6WKXvYdMGQoKCuLAjbgAFScu1Kt4f+57xYk4cFwVcSvugaKCDEGW7L2hrE7o3sn398dpU0oLFEibtryfj0cfab/5JjlJoHn3nM85x2ZZloWIiIhILWH3dANERERE3EnhRkRERGoVhRsRERGpVRRuREREpFZRuBEREZFaReFGREREahWFGxEREalVFG5ERESkVlG4ERERkVpF4UZEqr1du3Zhs9mYNm3aCd927ty52Gw25s6de8zzpk2bhs1mY9euXSfVRhGpPhRuREREpFZRuBEREZFaReFGREREahWFGxE5rieffBKbzcaWLVu4/vrrCQ0NJTIyksceewzLstizZw/Dhw8nJCSEmJgYXn755TL3kZiYyM0330x0dDT+/v506dKFDz/8sMx5qampjB49mtDQUMLCwhg1ahSpqanltmvTpk1ceeWVhIeH4+/vT48ePfjxxx/d+tzffPNNOnTogJ+fHw0aNOCuu+4q056tW7dyxRVXEBMTg7+/P40aNeKaa64hLS3Ndc4ff/xB//79CQsLIzg4mDZt2vDoo4+6ta0iYnh7ugEiUnOMGDGCdu3a8dxzzzFjxgz+85//EB4ezjvvvMO5557L888/z6effsqDDz5Iz549OfvsswHIyclh4MCBbNu2jXHjxtGsWTO++uorRo8eTWpqKvfeey8AlmUxfPhwFixYwO233067du347rvvGDVqVJm2rF+/nn79+tGwYUMeeeQRgoKCmD59OpdeeinffPMNl1122Sk/3yeffJKnnnqKwYMHc8cdd7B582beeustli1bxsKFC/Hx8SE/P58hQ4aQl5fH3XffTUxMDPv27ePnn38mNTWV0NBQ1q9fz0UXXUTnzp15+umn8fPzY9u2bSxcuPCU2ygi5bBERI7jiSeesADr1ltvdR0rLCy0GjVqZNlsNuu5555zHT906JAVEBBgjRo1ynVs8uTJFmB98sknrmP5+flWnz59rODgYCs9Pd2yLMv6/vvvLcB6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9u3b8/bbbxMYGMjUqVOPehubzUZMTIzrKzo6uvIaaFmQn1WhL3thDraCbKwKnn/crwqmpKuuuoqUlBTmzJnjOnbw4EFmzpzJddddR2ZmJsOGDWP27NmsXLmSoUOHcvHFFxMXF1dZr5qIiIjHeHvywfPz81m+fDkTJkxwHbPb7QwePJhFixYd9XaZmZk0bdoUp9NJt27dePbZZ+nQoUO55+bl5ZGXl+f6OT09/cQaWZANzzao0KmNi77c5tH94Bt03NPq1q3LBRdcwGeffcagQYMA+Prrr4mIiOCcc87BbrfTpUsX1/nPPPMM3333HT/++CPjxo1zZ4tFREQ8zqM9N8nJyTgcjjI9L9HR0cTHx5d7mzZt2jB16lR++OEHPvnkE5xOJ3379mXv3r3lnj9x4kRCQ0NdX40buzV+VBvXXXcd33zzjSvIffrpp1xzzTXY7XYyMzN58MEHadeuHWFhYQQHB7Nx40b13IiISK3k0Z6bk9GnTx/69Onj+rlv3760a9eOd955h2eeeabM+RMmTGD8+PGun9PT008s4PgEmh6UCjiQlkNyZj6RdXyJCQmo+GMc67Er6OKLL8ayLGbMmEHPnj3566+/eOWVVwB48MEH+eOPP3jppZdo2bIlAQEBXHnlleTn5596G0VERKoZj4abiIgIvLy8SEhIKHU8ISGBmJiYCt2Hj48PZ5xxBtu2bSv3ej8/P/z8/E6+kTZbhYaGAPC1Y/l44/T2A183hJsT4O/vz+WXX86nn37Ktm3baNOmDd26dQNg4cKFjB49mssuuwwww3q7du2q0vaJiIhUFY8OS/n6+tK9e3dmz57tOuZ0Opk9e3ap3pljcTgcrF27lvr161dWMyvM0ysUX3fddcyYMYOpU6dy3XXXuY63atWKb7/9llWrVrF69WquvfbaMjOrREREaguPz5YaP3487777Lh9++CEbN27kjjvuICsrizFjxgBw4403lio4fvrpp/n999/ZsWMHK1as4Prrr2f37t3ccsstnnoKLsUvpqdWKD733HMJDw9n8+bNXHvtta7jkyZNom7duvTt25eLL76YIUOGuHp1REREahuP19yMGDGCpKQkHn/8ceLj4+natSszZ850FRnHxcVht5dksEOHDjF27Fji4+OpW7cu3bt35++//6Z9+/aeegourp4bDz2+3W5n//6y9UGxsbH8+eef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nfowdg6E1K/YaygiUktp+4VjULg5CbsXmWGP3rcfe4bMgdXwyZVmIbaQhnDzHxDa8Ojnl+eDC00B8YCHzYf9ojfhtwkl11/0yrGHfpwOM9Q0d6KpN+k+Bi6ebK7LSjY9McUbMBYr3r9oyf/MMv8NzjBbKvx0nwlrfe+B8585drvzMmFKb0jfa4bHintiDtdtFFw02fSKWZbpidr+p9kIsmnfkvOyUmDqEFM8fOP3qlcREUHh5pgUbirZod1mdeMu15xcce2hXWYIp89dZuglZTu8XjRdePgbZjG5iijMM2GrYfeys3N2LTDDR3UamPVYYvubIa60vfBKh9LnNulrZoYdbYf1w23+FT4v2h4goo3poVkzHRI3mJB14aTyNyQtj6MACnLAX/9GRURA4eaYFG5qoM0zzaykqpgm/MNdpv6kbqxZk2XgoxAcedybuaz4yASrbqPMrCPLMj0wdcrfVVhERCpG4eYYFG5ERERqHu0KLiIiIqcthRsRERGpVRRuREREpFZRuBEREZFaReFGREREahWFGxEREalVFG5ERESkVlG4ERERkVpF4UZERERqFYUbERERqVUUbkRERKRWUbgRERGRWkXhRkRERGoVhRsRERGpVbw93YCqZlkWYLZOFxERkZqh+HO7+HP8WE67cJORkQFA48aNPdwSEREROVEZGRmEhoYe8xybVZEIVIs4nU72799PnTp1sNlsbr3v9PR0GjduzJ49ewgJCXHrfVcHtf35gZ5jbVDbnx/oOdYGtf35gfufo2VZZGRk0KBBA+z2Y1fVnHY9N3a7nUaNGlXqY4SEhNTaf6xQ+58f6DnWBrX9+YGeY21Q258fuPc5Hq/HppgKikVERKRWUbgRERGRWkXhxo38/Px44okn8PPz83RTKkVtf36g51gb1PbnB3qOtUFtf37g2ed42hUUi4iISO2mnhsRERGpVRRuREREpFZRuBEREZFaReFGREREahWFGzeZMmUKsbGx+Pv707t3b5YuXerpJp20iRMn0rNnT+rUqUNUVBSXXnopmzdvLnXOwIEDsdlspb5uv/12D7X4xDz55JNl2t62bVvX9bm5udx1113Uq1eP4OBgrrjiChISEjzY4hMXGxtb5jnabDbuuusuoGa+f/Pnz+fiiy+mQYMG2Gw2vv/++1LXW5bF448/Tv369QkICGDw4MFs3bq11DkH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K7NmzaJevXrHvc2qVauw2+1lhnJqir1795KSkuL6d1nT38PDvf/++3Tv3p0uXboc99zq9D4e7/OhIr9D+/Tpw9q1a0sF1eKw3r59e7c1VE7RF198Yfn5+VnTpk2zNmzYYN16661WWFhYqUrwmuSOO+6wQkNDrblz51oHDhxwfWVnZ1uWZVnbtm2znn76aeuff/6xdu7caf3www9W8+bNrbPPPtvDLa+YBx54wJo7d661c+dOa+HChdbgwYOtiIgIKzEx0bIsy7r99tutJk2aWH/++af1zz//WH369LH69Onj4VafOIfDYTVp0sR6+OGHSx2vqe9fRkaGtXLlSmvlypUWYE2aNMlauXKla7bQc889Z4WFhVk//PCDtWbNGmv48OFWs2bNrJycHNd9DB061DrjjDOsJUuWWAsWLLBatWpljRw50lNPqZRjPb/8/HzrkksusRo1amStWrWq1P/L4tklf//9t/XKK69Yq1atsrZv32598sknVmRkpHXjjTd6+JmVONZzzMjIsB588EFr0aJF1s6dO61Zs2ZZ3bp1s1q1amXl5ua67qM6v4eWdfx/p5ZlWWlpaVZgYKD11ltvlbl9dX8fj/f5YFnH/x1aWFhodezY0Tr//POtVatWWTNnzrQiIyOtCRMmuK2dCjdu8vrrr1tNmjSxfH19rV69elmLFy/2dJNOGlDu1wcffGBZlmXFxcVZZ599thUeHm75+flZLVu2tB566CErLS3Nsw2voBEjRlj169e3fH19rYYNG1ojRoywtm3b5ro+JyfHuvPOO626detagYGB1mWXXWYdOHDAgy0+Ob/99psFWJs3by51vKa+f3PmzCn33+WoUaMsyzLTwR977DErOjra8vPzswYNGlTmuaekpFgjR460goODrZCQEGvMmDFWRkaGB55NWcd6fjt37jzq/8s5c+ZYlmVZy5cvt3r37m2FhoZa/v7+Vrt27axnn322VDDwtGM9x+zsbOv888+3IiMjLR8fH6tp06bW2LFjy/yRWJ3fQ8s6/r9Ty7Ksd955xwoICLBSU1PL3L66v4/H+3ywrIr9Dt21a5d1wQUXWAEBAVZERIT1wAMPWAUFBW5rp62osSIiIiK1gmpuREREpFZRuBEREZFaReFGREREahWFGxEREalVFG5ERESkVlG4ERERkVpF4UZERERqFYUbETntzZ07F5vNVmY/HBGpmRRuREREpFZRuBEREZFaReFGRDzO6XQyceJEmjVrRkBAAF26dOHrr78GSoaMZsyYQefOnfH39+fMM89k3bp1pe7jm2++oUOHDvj5+REbG8vLL79c6vq8vDwefvhhGjdujJ+fHy1btuT9998vdc7y5cvp0aMHgYGB9O3bl82bN1fuExeRSqFwIyIeN3HiRD766CPefvtt1q9fz/3338/111/PvHnzXOc89NBDvPzyyyxbtozIyEguvvhiCgoKABNKrr76aq655hrWrl3Lk08+yWOPPca0adNct7/xxhv5/PPPee2119i4cSPvvPMOwcHBpdrx73//m5dffpl//vkHb29vbrrppip5/iLiXto4U0Q8Ki8vj/DwcGbNmkWfPn1cx2+55Rays7O59dZbOeecc/jiiy8YMWIEAAcPHqRRo0ZMmzaNq6++muuuu46kpCR+//131+3/9a9/MWPGDNavX8+WLVto06YNf/zxB4MHDy7Thrlz53LOOecwa9YsBg0aBMAvv/zChRdeSE5ODv7+/pX8KoiIO6nnRkQ8atu2bWRnZ3PeeecRHBzs+vroo4/Yvn2767zDg094eDht2rRh48aNAGzcuJF+/fqVut9+/fqxdetWHA4Hq1atwsvLiwEDBhyzLZ07d3Z9X79+fQASExNP+TmKSNXy9nQDROT0lpmZCcCMGTNo2LBhqev8/PxKBZyTFRAQUKHzfHx8XN/bbDbA1AOJSM2inhsR8aj27dvj5+dHXFwcLVu2LPXVuHFj13mLFy92fX/o0CG2bNlCu3btAGjXrh0LFy4sdb8LFy6kdevWeHl50alTJ5xOZ6kaHhGpvdRzIyIeVadOHR588EHuv/9+nE4n/fv3Jy0tjYULFxISEkLTpk0BePrpp6lXrx7R0dH8+9//JiIigksvvRSABx54gJ49e/LMM88wYsQIFi1axBtvvMGbb74JQGxsLKNGjeKmm27itddeo0uXLuzevZvExESuvvpqTz11EakkCjci4nHPPPMMkZGRTJw4kR07dhAWFka3bt149NFHXcNCzz33HPfeey9bt26la9eu/PTTT/j6+gLQrVs3pk+fzuOPP84zzzxD/fr1efrppxk9erTrMd566y0effRR7rzzTlJSUmjSpAmPPvqoJ56uiFQyzZYSkWqteCbToUOHCAsL83RzRKQGUM2NiIiI1CoKNyIiIlKraFhKREREahX13IiIiEitonAjIiIitYrCjYiIiNQqCjciIiJSqyjciIiISK2icCMiIiK1isKNiIiI1CoKNyIiIlKrKNyIiIhIrfL/wuLP5K58qCMAAAAASUVORK5CYII=", + "text/plain": [ + "<Figure size 640x480 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Save model\n", "import time\n", @@ -184,9 +285,78 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['Greg, can you call me back once you get this?', 'Congrats on your new iPhone! Click here to claim your prize...', 'Really like that new photo of you', 'Did you hear the news today? Terrible what has happened...', 'Attend this free COVID webinar today: Book your session now...', 'Are you coming to the party tonight?', 'Your parcel has gone missing', 'Do not forget to bring friends!', 'You have won a million dollars! Fill out your bank details here...', 'Looking forward to seeing you again', 'oh wow https://github.com/MGCodesandStats/tensorflow-nlp/blob/master/spam%20detection%20tensorflow%20v2.ipynb works really good on spam detection. Guess I go with that as the base model then lol :D', 'ayo', 'Almost all my spam is coming to my non-gmail address actually', 'Oh neat I think I found the sizing sweetspot for my data :D', 'would never click on buttons in gmail :D always expecting there to be a bug in gmail that allows js to grab your google credentials :D XSS via email lol. I am too scared for touching spam in gmail']\n", + "1/1 [==============================] - 0s 73ms/step\n", + "Greg, can you call me back once you get this?\n", + "[4.9479245e-06]\n", + "\n", + "\n", + "Congrats on your new iPhone! Click here to claim your prize...\n", + "[1.]\n", + "\n", + "\n", + "Really like that new photo of you\n", + "[0.00084918]\n", + "\n", + "\n", + "Did you hear the news today? Terrible what has happened...\n", + "[0.0015355]\n", + "\n", + "\n", + "Attend this free COVID webinar today: Book your session now...\n", + "[0.9978678]\n", + "\n", + "\n", + "Are you coming to the party tonight?\n", + "[5.155159e-14]\n", + "\n", + "\n", + "Your parcel has gone missing\n", + "[2.5171929e-07]\n", + "\n", + "\n", + "Do not forget to bring friends!\n", + "[6.217939e-11]\n", + "\n", + "\n", + "You have won a million dollars! Fill out your bank details here...\n", + "[0.9998441]\n", + "\n", + "\n", + "Looking forward to seeing you again\n", + "[2.6603466e-06]\n", + "\n", + "\n", + "oh wow https://github.com/MGCodesandStats/tensorflow-nlp/blob/master/spam%20detection%20tensorflow%20v2.ipynb works really good on spam detection. Guess I go with that as the base model then lol :D\n", + "[9.0285716e-14]\n", + "\n", + "\n", + "ayo\n", + "[0.0138027]\n", + "\n", + "\n", + "Almost all my spam is coming to my non-gmail address actually\n", + "[1.01412886e-16]\n", + "\n", + "\n", + "Oh neat I think I found the sizing sweetspot for my data :D\n", + "[2.516162e-12]\n", + "\n", + "\n", + "would never click on buttons in gmail :D always expecting there to be a bug in gmail that allows js to grab your google credentials :D XSS via email lol. I am too scared for touching spam in gmail\n", + "[9.169594e-22]\n", + "\n", + "\n" + ] + } + ], "source": [ "# Use the model to predict whether a message is spam\n", "text_messages = ['Greg, can you call me back once you get this?',\n", @@ -221,6 +391,27 @@ " print(classes[x])\n", " print('\\n')\n" ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "<IPython.core.display.Image object>" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tf.keras.utils.plot_model(model, rankdir=\"LR\", show_shapes=True)\n" + ] } ], "metadata": {