diff --git a/POET_Training.ipynb b/POET_Training.ipynb index e278521..ffb8abb 100644 --- a/POET_Training.ipynb +++ b/POET_Training.ipynb @@ -30,6 +30,15 @@ "execution_count": 1, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-02-17 10:30:47.780794: I tensorflow/core/util/port.cc:153] 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", + "2025-02-17 10:30:47.804086: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", + "To enable the following instructions: SSE4.1 SSE4.2 AVX AVX2 AVX_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n" + ] + }, { "name": "stdout", "output_type": "stream", @@ -140,11 +149,11 @@ "
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
        "┃ Layer (type)                     Output Shape                  Param # ┃\n",
        "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
-       "│ dense (Dense)                   │ (None, 128)            │         1,280 │\n",
+       "│ dense (Dense)                   │ (None, 128)            │         1,152 │\n",
        "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
        "│ dense_1 (Dense)                 │ (None, 128)            │        16,512 │\n",
        "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
-       "│ dense_2 (Dense)                 │ (None, 9)              │         1,161 │\n",
+       "│ dense_2 (Dense)                 │ (None, 8)              │         1,032 │\n",
        "└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
        "
\n" ], @@ -152,11 +161,11 @@ "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n", "┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\n", "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n", - "│ dense (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m1,280\u001b[0m │\n", + "│ dense (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m1,152\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", "│ dense_1 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m16,512\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dense_2 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m9\u001b[0m) │ \u001b[38;5;34m1,161\u001b[0m │\n", + "│ dense_2 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m) │ \u001b[38;5;34m1,032\u001b[0m │\n", "└─────────────────────────────────┴────────────────────────┴───────────────┘\n" ] }, @@ -166,11 +175,11 @@ { "data": { "text/html": [ - "
 Total params: 18,953 (74.04 KB)\n",
+       "
 Total params: 18,696 (73.03 KB)\n",
        "
\n" ], "text/plain": [ - "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m18,953\u001b[0m (74.04 KB)\n" + "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m18,696\u001b[0m (73.03 KB)\n" ] }, "metadata": {}, @@ -179,11 +188,11 @@ { "data": { "text/html": [ - "
 Trainable params: 18,953 (74.04 KB)\n",
+       "
 Trainable params: 18,696 (73.03 KB)\n",
        "
\n" ], "text/plain": [ - "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m18,953\u001b[0m (74.04 KB)\n" + "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m18,696\u001b[0m (73.03 KB)\n" ] }, "metadata": {}, @@ -207,11 +216,11 @@ "# small model\n", "model_simple = keras.Sequential(\n", " [\n", - " keras.Input(shape = (9,), dtype = \"float32\"),\n", + " keras.Input(shape = (8,), dtype = \"float32\"),\n", " keras.layers.Dense(units = 128, activation = \"linear\", dtype = \"float32\"),\n", " # Dropout(0.2),\n", " keras.layers.Dense(units = 128, activation = \"elu\", dtype = \"float32\"),\n", - " keras.layers.Dense(units = 9, dtype = \"float32\")\n", + " keras.layers.Dense(units = 8, dtype = \"float32\")\n", " ]\n", ")\n", "\n", @@ -221,17 +230,17 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/html": [ - "
Model: \"sequential_1\"\n",
+       "
Model: \"sequential_5\"\n",
        "
\n" ], "text/plain": [ - "\u001b[1mModel: \"sequential_1\"\u001b[0m\n" + "\u001b[1mModel: \"sequential_5\"\u001b[0m\n" ] }, "metadata": {}, @@ -243,13 +252,13 @@ "
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
        "┃ Layer (type)                     Output Shape                  Param # ┃\n",
        "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
-       "│ dense_3 (Dense)                 │ (None, 512)            │         5,120 │\n",
+       "│ dense_21 (Dense)                │ (None, 512)            │         4,608 │\n",
        "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
-       "│ dense_4 (Dense)                 │ (None, 1024)           │       525,312 │\n",
+       "│ dense_22 (Dense)                │ (None, 1024)           │       525,312 │\n",
        "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
-       "│ dense_5 (Dense)                 │ (None, 512)            │       524,800 │\n",
+       "│ dense_23 (Dense)                │ (None, 512)            │       524,800 │\n",
        "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
-       "│ dense_6 (Dense)                 │ (None, 9)              │         4,617 │\n",
+       "│ dense_24 (Dense)                │ (None, 8)              │         4,104 │\n",
        "└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
        "
\n" ], @@ -257,13 +266,13 @@ "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n", "┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\n", "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n", - "│ dense_3 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m512\u001b[0m) │ \u001b[38;5;34m5,120\u001b[0m │\n", + "│ dense_21 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m512\u001b[0m) │ \u001b[38;5;34m4,608\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dense_4 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m1024\u001b[0m) │ \u001b[38;5;34m525,312\u001b[0m │\n", + "│ dense_22 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m1024\u001b[0m) │ \u001b[38;5;34m525,312\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dense_5 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m512\u001b[0m) │ \u001b[38;5;34m524,800\u001b[0m │\n", + "│ dense_23 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m512\u001b[0m) │ \u001b[38;5;34m524,800\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dense_6 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m9\u001b[0m) │ \u001b[38;5;34m4,617\u001b[0m │\n", + "│ dense_24 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m) │ \u001b[38;5;34m4,104\u001b[0m │\n", "└─────────────────────────────────┴────────────────────────┴───────────────┘\n" ] }, @@ -273,11 +282,11 @@ { "data": { "text/html": [ - "
 Total params: 1,059,849 (4.04 MB)\n",
+       "
 Total params: 1,058,824 (4.04 MB)\n",
        "
\n" ], "text/plain": [ - "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m1,059,849\u001b[0m (4.04 MB)\n" + "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m1,058,824\u001b[0m (4.04 MB)\n" ] }, "metadata": {}, @@ -286,11 +295,11 @@ { "data": { "text/html": [ - "
 Trainable params: 1,059,849 (4.04 MB)\n",
+       "
 Trainable params: 1,058,824 (4.04 MB)\n",
        "
\n" ], "text/plain": [ - "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m1,059,849\u001b[0m (4.04 MB)\n" + "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m1,058,824\u001b[0m (4.04 MB)\n" ] }, "metadata": {}, @@ -313,11 +322,11 @@ "source": [ "# large model\n", "model_large = keras.Sequential(\n", - " [keras.layers.Input(shape=(9,), dtype=dtype),\n", + " [keras.layers.Input(shape=(8,), dtype=dtype),\n", " keras.layers.Dense(512, activation='relu', dtype=dtype),\n", " keras.layers.Dense(1024, activation='relu', dtype=dtype),\n", " keras.layers.Dense(512, activation='relu', dtype=dtype),\n", - " keras.layers.Dense(9, dtype=dtype)\n", + " keras.layers.Dense(8, dtype=dtype)\n", " ])\n", "\n", "model_large.compile(optimizer=optimizer_large, loss = loss)\n", @@ -326,17 +335,17 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/html": [ - "
Model: \"sequential_2\"\n",
+       "
Model: \"sequential_4\"\n",
        "
\n" ], "text/plain": [ - "\u001b[1mModel: \"sequential_2\"\u001b[0m\n" + "\u001b[1mModel: \"sequential_4\"\u001b[0m\n" ] }, "metadata": {}, @@ -348,15 +357,15 @@ "
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
        "┃ Layer (type)                     Output Shape                  Param # ┃\n",
        "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
-       "│ dense_7 (Dense)                 │ (None, 128)            │         1,664 │\n",
+       "│ dense_16 (Dense)                │ (None, 128)            │         1,152 │\n",
        "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
-       "│ dense_8 (Dense)                 │ (None, 256)            │        33,024 │\n",
+       "│ dense_17 (Dense)                │ (None, 256)            │        33,024 │\n",
        "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
-       "│ dense_9 (Dense)                 │ (None, 512)            │       131,584 │\n",
+       "│ dense_18 (Dense)                │ (None, 512)            │       131,584 │\n",
        "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
-       "│ dense_10 (Dense)                │ (None, 256)            │       131,328 │\n",
+       "│ dense_19 (Dense)                │ (None, 256)            │       131,328 │\n",
        "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
-       "│ dense_11 (Dense)                │ (None, 12)             │         3,084 │\n",
+       "│ dense_20 (Dense)                │ (None, 8)              │         2,056 │\n",
        "└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
        "
\n" ], @@ -364,15 +373,15 @@ "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n", "┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\n", "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n", - "│ dense_7 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m1,664\u001b[0m │\n", + "│ dense_16 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m1,152\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dense_8 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m256\u001b[0m) │ \u001b[38;5;34m33,024\u001b[0m │\n", + "│ dense_17 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m256\u001b[0m) │ \u001b[38;5;34m33,024\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dense_9 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m512\u001b[0m) │ \u001b[38;5;34m131,584\u001b[0m │\n", + "│ dense_18 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m512\u001b[0m) │ \u001b[38;5;34m131,584\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dense_10 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m256\u001b[0m) │ \u001b[38;5;34m131,328\u001b[0m │\n", + "│ dense_19 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m256\u001b[0m) │ \u001b[38;5;34m131,328\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dense_11 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m12\u001b[0m) │ \u001b[38;5;34m3,084\u001b[0m │\n", + "│ dense_20 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m) │ \u001b[38;5;34m2,056\u001b[0m │\n", "└─────────────────────────────────┴────────────────────────┴───────────────┘\n" ] }, @@ -382,11 +391,11 @@ { "data": { "text/html": [ - "
 Total params: 300,684 (1.15 MB)\n",
+       "
 Total params: 299,144 (1.14 MB)\n",
        "
\n" ], "text/plain": [ - "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m300,684\u001b[0m (1.15 MB)\n" + "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m299,144\u001b[0m (1.14 MB)\n" ] }, "metadata": {}, @@ -395,11 +404,11 @@ { "data": { "text/html": [ - "
 Trainable params: 300,684 (1.15 MB)\n",
+       "
 Trainable params: 299,144 (1.14 MB)\n",
        "
\n" ], "text/plain": [ - "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m300,684\u001b[0m (1.15 MB)\n" + "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m299,144\u001b[0m (1.14 MB)\n" ] }, "metadata": {}, @@ -423,12 +432,12 @@ "# model from paper\n", "# (see https://doi.org/10.1007/s11242-022-01779-3 model for the complex chemistry)\n", "model_paper = keras.Sequential(\n", - " [keras.layers.Input(shape=(12,), dtype=dtype),\n", + " [keras.layers.Input(shape=(8,), dtype=dtype),\n", " keras.layers.Dense(128, activation='relu', dtype=dtype),\n", " keras.layers.Dense(256, activation='relu', dtype=dtype),\n", " keras.layers.Dense(512, activation='relu', dtype=dtype),\n", " keras.layers.Dense(256, activation='relu', dtype=dtype),\n", - " keras.layers.Dense(12, dtype=dtype)\n", + " keras.layers.Dense(8, dtype=dtype)\n", " ])\n", "\n", "model_paper.compile(optimizer=optimizer_paper, loss = loss)\n", @@ -444,7 +453,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -514,7 +523,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -530,81 +539,6 @@ "data_file.close()" ] }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "species_columns = ['H', 'O', 'Charge', 'Ba', 'Cl', 'S', 'Sr', 'Barite', 'Celestite']" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/hannessigner/miniforge3/envs/ai/lib/python3.12/site-packages/sklearn/base.py:1474: ConvergenceWarning: Number of distinct clusters (1) found smaller than n_clusters (2). Possibly due to duplicate points in X.\n", - " return fit_method(estimator, *args, **kwargs)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Amount class 0 before: 0.9521309523809524\n", - "Amount class 1 before: 0.04786904761904762\n" - ] - } - ], - "source": [ - "preprocess = preprocessing(func_dict_in=func_dict_in, func_dict_out=func_dict_out)\n", - "X, y = preprocess.cluster(df_design[species_columns], df_results[species_columns])\n", - "# X, y = preprocess.funcTranform(X, y)\n", - "\n", - "X_train, X_test, y_train, y_test = preprocess.split(X, y, ratio = 0.2)\n", - "X_train, y_train = preprocess.balancer(X_train, y_train, strategy = \"off\")\n", - "preprocess.scale_fit(X_train, y_train, scaling = \"individual\")\n", - "X_train, X_test, y_train, y_test = preprocess.scale_transform(X_train, X_test, y_train, y_test)\n", - "X_train, X_val, y_train, y_val = preprocess.split(X_train, y_train, ratio = 0.1)" - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 52, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "timestep=250\n", - "plt.imshow(np.array(X[\"Barite\"][(timestep*2500):(timestep*2500+2500)]).reshape(50,50), origin='lower')\n", - "plt.contour(np.array(X[\"Class\"][(timestep*2500):(timestep*2500+2500)]).reshape(50,50), origin='lower', colors='red')\n" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -623,78 +557,80 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "species_columns = ['H', 'O', 'Ba', 'Cl', 'S', 'Sr', 'Barite', 'Celestite']" + ] + }, + { + "cell_type": "code", + "execution_count": 37, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "/Users/hannessigner/miniforge3/envs/ai/lib/python3.12/site-packages/sklearn/base.py:1474: ConvergenceWarning: Number of distinct clusters (1) found smaller than n_clusters (2). Possibly due to duplicate points in X.\n", + "/mnt/scratch/miniconda3/envs/model-training/lib/python3.12/site-packages/sklearn/base.py:1389: ConvergenceWarning: Number of distinct clusters (1) found smaller than n_clusters (2). Possibly due to duplicate points in X.\n", " return fit_method(estimator, *args, **kwargs)\n" ] }, { - "ename": "KeyError", - "evalue": "'S'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[53], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m X_train, X_val, X_test, y_train, y_val, y_test, scaler_X, scaler_y \u001b[38;5;241m=\u001b[39m \u001b[43mpreprocessing_training\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdf_design\u001b[49m\u001b[43m[\u001b[49m\u001b[43mspecies_columns\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdf_results\u001b[49m\u001b[43m[\u001b[49m\u001b[43mspecies_columns\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfunc_dict_in\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfunc_dict_out\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43moff\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mglobal\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0.1\u001b[39;49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/Documents/Work/model-training/preprocessing.py:161\u001b[0m, in \u001b[0;36mpreprocessing_training\u001b[0;34m(df_design, df_targets, func_dict_in, func_dict_out, sampling, scaling, test_size)\u001b[0m\n\u001b[1;32m 158\u001b[0m df_design \u001b[38;5;241m=\u001b[39m clustering(df_design)\n\u001b[1;32m 159\u001b[0m df_targets \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mconcat([df_targets, df_design[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mClass\u001b[39m\u001b[38;5;124m'\u001b[39m]], axis\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m)\n\u001b[0;32m--> 161\u001b[0m df_design_log \u001b[38;5;241m=\u001b[39m \u001b[43mFuncTransform\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfunc_dict_in\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfunc_dict_out\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfit_transform\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdf_design\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 162\u001b[0m df_results_log \u001b[38;5;241m=\u001b[39m FuncTransform(func_dict_in, func_dict_out)\u001b[38;5;241m.\u001b[39mfit_transform(df_targets)\n\u001b[1;32m 164\u001b[0m X_train, X_test, y_train, y_test \u001b[38;5;241m=\u001b[39m sk\u001b[38;5;241m.\u001b[39mtrain_test_split(df_design_log, df_results_log, test_size \u001b[38;5;241m=\u001b[39m test_size, random_state\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m42\u001b[39m)\n", - "File \u001b[0;32m~/Documents/Work/model-training/preprocessing.py:63\u001b[0m, in \u001b[0;36mFuncTransform.fit_transform\u001b[0;34m(self, X, y)\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mfit_transform\u001b[39m(\u001b[38;5;28mself\u001b[39m, X, y\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[1;32m 62\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfit(X)\n\u001b[0;32m---> 63\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtransform\u001b[49m\u001b[43m(\u001b[49m\u001b[43mX\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/Documents/Work/model-training/preprocessing.py:58\u001b[0m, in \u001b[0;36mFuncTransform.transform\u001b[0;34m(self, X, y)\u001b[0m\n\u001b[1;32m 56\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m key \u001b[38;5;129;01min\u001b[39;00m X\u001b[38;5;241m.\u001b[39mkeys(): \n\u001b[1;32m 57\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mClass\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m key:\n\u001b[0;32m---> 58\u001b[0m X[key] \u001b[38;5;241m=\u001b[39m X[key]\u001b[38;5;241m.\u001b[39mapply(\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfunc_transform\u001b[49m\u001b[43m[\u001b[49m\u001b[43mkey\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[1;32m 59\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m X\n", - "\u001b[0;31mKeyError\u001b[0m: 'S'" + "name": "stdout", + "output_type": "stream", + "text": [ + "Amount class 0 before: 0.9521309523809524\n", + "Amount class 1 before: 0.04786904761904762\n", + "Using Oversampling\n", + "Amount class 0 after: 0.5\n", + "Amount class 1 after: 0.5\n" ] } ], "source": [ - "X_train, X_val, X_test, y_train, y_val, y_test, scaler_X, scaler_y = preprocessing_training(df_design[species_columns], df_results[species_columns], func_dict_in, func_dict_out, \"off\", 'global', 0.1)" + "preprocess = preprocessing(func_dict_in=func_dict_in, func_dict_out=func_dict_out)\n", + "X, y = preprocess.cluster(df_design[species_columns], df_results[species_columns])\n", + "# X, y = preprocess.funcTranform(X, y)\n", + "\n", + "X_train, X_test, y_train, y_test = preprocess.split(X, y, ratio = 0.2)\n", + "X_train, y_train = preprocess.balancer(X_train, y_train, strategy = \"over\")\n", + "preprocess.scale_fit(X_train, y_train, scaling = \"individual\")\n", + "X_train, X_test, y_train, y_test = preprocess.scale_transform(X_train, X_test, y_train, y_test)\n", + "X_train, X_val, y_train, y_val = preprocess.split(X_train, y_train, ratio = 0.1)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([5.88371754e-02, 2.38285692e-01, 1.25266821e-01, 4.02648011e-05,\n", - " 5.71730222e-02, 2.38302374e-01, 9.25432038e-02, 3.77910581e-07,\n", - " 9.99694424e-01])" + "" ] }, - "execution_count": 37, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" - } - ], - "source": [ - "X_train.iloc[12, :-1].values" - ] - }, - { - "cell_type": "code", - "execution_count": 54, - "metadata": {}, - "outputs": [ + }, { "data": { + "image/png": "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", "text/plain": [ - "array([[1.11012434e+02, 5.55068087e+01, 3.55966726e-08, 3.89751302e-06,\n", - " 1.12795836e-02, 1.47982437e-04, 5.78389634e-03, 9.99927111e-04,\n", - " 1.00047941e+00]])" + "
" ] }, - "execution_count": 54, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ - "preprocess.scaler_X.inverse_transform(tf.keras.backend.constant(X_train.iloc[12, :-1].values.reshape(1, -1)))" + "timestep=250\n", + "plt.imshow(np.array(X[\"Barite\"][(timestep*2500):(timestep*2500+2500)]).reshape(50,50), origin='lower')\n", + "plt.contour(np.array(X[\"Class\"][(timestep*2500):(timestep*2500+2500)]).reshape(50,50), origin='lower', colors='red')" ] }, { @@ -706,7 +642,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -715,7 +651,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 71, "metadata": {}, "outputs": [], "source": [ @@ -727,6 +663,7 @@ " min_y = tf.convert_to_tensor(preprocess.scaler_y.min_, dtype=tf.float32)\n", "\n", " def loss(results, predicted):\n", + " \n", " # inverse min/max scaling\n", " predicted_inverse = predicted * scale_X + min_X\n", " results_inverse = results * scale_y + min_y\n", @@ -750,8 +687,8 @@ " huber_loss = tf.keras.losses.Huber()(results, predicted)\n", " \n", " # total loss\n", - " total_loss = h1 * huber_loss + h2 * dBa**2 + h3 * dSr**2 + h4 * h2o_ratio**2\n", - "\n", + " #total_loss = h1 * huber_loss + h2 * dBa**2 + h3 * dSr**2 + h4 * h2o_ratio**2\n", + " total_loss = huber_loss\n", " return total_loss\n", "\n", " return loss" @@ -759,12 +696,12 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 72, "metadata": {}, "outputs": [], "source": [ "model_simple.compile(optimizer=optimizer_simple, loss=custom_loss(preprocess, column_dict, 1, 1, 1, 1))#custom_loss(preprocess, column_dict))\n", - "# model_large.compile(optimizer=optimizer_large, loss=custom_loss(preprocess, column_dict))#custom_loss(preprocess, column_dict))" + "model_large.compile(optimizer=optimizer_large, loss=custom_loss(preprocess, column_dict, 1, 1, 1, 1))#custom_loss(preprocess, column_dict))" ] }, { @@ -776,7 +713,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 73, "metadata": {}, "outputs": [], "source": [ @@ -799,117 +736,125 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 74, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Epoch 1/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.6440 - val_loss: 0.5460\n", + "Epoch 1/50\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 0.0957 - val_loss: 0.0721\n", "Epoch 2/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.2363 - val_loss: 0.1153\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 0.0656 - val_loss: 0.0310\n", "Epoch 3/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.1663 - val_loss: 0.1348\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 0.0195 - val_loss: 8.7926e-04\n", "Epoch 4/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.1211 - val_loss: 0.1081\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 4.5016e-04 - val_loss: 5.9917e-05\n", "Epoch 5/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0994 - val_loss: 0.0932\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 4.7585e-05 - val_loss: 2.6424e-05\n", "Epoch 6/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0824 - val_loss: 0.0344\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 2.3970e-05 - val_loss: 1.4780e-05\n", "Epoch 7/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0787 - val_loss: 0.0577\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 1.3346e-05 - val_loss: 7.0396e-06\n", "Epoch 8/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0704 - val_loss: 0.0882\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 6.5093e-06 - val_loss: 3.9049e-06\n", "Epoch 9/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0672 - val_loss: 0.0456\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 4.3649e-06 - val_loss: 2.6283e-06\n", "Epoch 10/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0543 - val_loss: 0.0487\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 3.2264e-06 - val_loss: 1.9507e-06\n", "Epoch 11/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - loss: 0.0548 - val_loss: 0.0402\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 2.5372e-06 - val_loss: 1.5390e-06\n", "Epoch 12/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0484 - val_loss: 0.0576\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 2.5973e-06 - val_loss: 1.1950e-06\n", "Epoch 13/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0487 - val_loss: 0.0234\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 1.9292e-06 - val_loss: 9.5878e-07\n", "Epoch 14/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0499 - val_loss: 0.0357\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 2.3976e-06 - val_loss: 8.0331e-07\n", "Epoch 15/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0406 - val_loss: 0.0262\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 2.0785e-06 - val_loss: 7.0058e-07\n", "Epoch 16/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0388 - val_loss: 0.0258\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 1.7859e-06 - val_loss: 6.2885e-07\n", "Epoch 17/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0312 - val_loss: 0.0369\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 1.3826e-06 - val_loss: 5.7928e-07\n", "Epoch 18/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0340 - val_loss: 0.0571\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 1.4848e-06 - val_loss: 5.3876e-07\n", "Epoch 19/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - loss: 0.0349 - val_loss: 0.0306\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 1.1739e-06 - val_loss: 5.0183e-07\n", "Epoch 20/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0276 - val_loss: 0.0579\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 1.4790e-06 - val_loss: 4.7452e-07\n", "Epoch 21/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0255 - val_loss: 0.0264\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 1.4143e-06 - val_loss: 4.5366e-07\n", "Epoch 22/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - loss: 0.0233 - val_loss: 0.0334\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 1.7813e-06 - val_loss: 4.3588e-07\n", "Epoch 23/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0232 - val_loss: 0.0155\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 1.2874e-06 - val_loss: 4.2102e-07\n", "Epoch 24/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0230 - val_loss: 0.0194\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 9.3762e-07 - val_loss: 4.0813e-07\n", "Epoch 25/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0232 - val_loss: 0.0099\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 1.3506e-06 - val_loss: 3.9906e-07\n", "Epoch 26/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0195 - val_loss: 0.0136\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 1.0733e-06 - val_loss: 3.8785e-07\n", "Epoch 27/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0199 - val_loss: 0.0166\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 1.3375e-06 - val_loss: 3.8002e-07\n", "Epoch 28/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0185 - val_loss: 0.0133\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 1.3877e-06 - val_loss: 3.7374e-07\n", "Epoch 29/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0174 - val_loss: 0.0094\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 1.1366e-06 - val_loss: 3.6767e-07\n", "Epoch 30/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0170 - val_loss: 0.0148\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 9.4944e-07 - val_loss: 3.6651e-07\n", "Epoch 31/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0141 - val_loss: 0.0132\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 1.2333e-06 - val_loss: 3.5983e-07\n", "Epoch 32/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0161 - val_loss: 0.0078\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 9.5447e-07 - val_loss: 3.5675e-07\n", "Epoch 33/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0158 - val_loss: 0.0279\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 1.2573e-06 - val_loss: 3.4970e-07\n", "Epoch 34/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0152 - val_loss: 0.0106\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 1.3743e-06 - val_loss: 3.4671e-07\n", "Epoch 35/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0132 - val_loss: 0.0190\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 1.2499e-06 - val_loss: 3.4395e-07\n", "Epoch 36/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0140 - val_loss: 0.0184\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 1.3762e-06 - val_loss: 3.4097e-07\n", "Epoch 37/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0116 - val_loss: 0.0092\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 1.5823e-06 - val_loss: 3.3895e-07\n", "Epoch 38/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0106 - val_loss: 0.0178\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 1.0824e-06 - val_loss: 3.3658e-07\n", "Epoch 39/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0113 - val_loss: 0.0113\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 1.4234e-06 - val_loss: 3.3699e-07\n", "Epoch 40/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0094 - val_loss: 0.0090\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 1.7752e-06 - val_loss: 3.3318e-07\n", "Epoch 41/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0093 - val_loss: 0.0097\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 1.4420e-06 - val_loss: 3.3185e-07\n", "Epoch 42/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0092 - val_loss: 0.0081\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 1.6145e-06 - val_loss: 3.3050e-07\n", "Epoch 43/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0085 - val_loss: 0.0093\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 1.0874e-06 - val_loss: 3.2977e-07\n", "Epoch 44/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0083 - val_loss: 0.0082\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 1.5824e-06 - val_loss: 3.2917e-07\n", "Epoch 45/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0091 - val_loss: 0.0135\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 1.0676e-06 - val_loss: 3.2717e-07\n", "Epoch 46/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0081 - val_loss: 0.0065\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 1.4321e-06 - val_loss: 3.2660e-07\n", "Epoch 47/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0076 - val_loss: 0.0100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 1.4732e-06 - val_loss: 3.2621e-07\n", "Epoch 48/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0091 - val_loss: 0.0064\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 1.1202e-06 - val_loss: 3.2509e-07\n", "Epoch 49/50\n", - "\u001b[1m886/886\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 2ms/step - loss: 0.0079 - val_loss: 0.0070\n", - "Training took 79.01837086677551 seconds\n" + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 9ms/step - loss: 1.2688e-06 - val_loss: 3.2409e-07\n", + "Epoch 50/50\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 1.2193e-06 - val_loss: 3.2360e-07\n", + "Training took 821.0099844932556 seconds\n" ] } ], "source": [ - "model_training(model_simple)" + "model_training(model_large)" ] }, { @@ -921,7 +866,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 55, "metadata": {}, "outputs": [], "source": [ @@ -947,14 +892,67 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 65, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m3938/3938\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 311us/step\n" + "\u001b[1m 1/3938\u001b[0m \u001b[37m━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[1m1:58\u001b[0m 30ms/step" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m3938/3938\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 2ms/step\n" + ] + }, + { + "data": { + "text/plain": [ + "array([[-1.06938938e-02, 4.13956866e-02, 2.79493211e-03, ...,\n", + " 3.49314094e-01, -2.77905501e-02, -1.75736845e-03],\n", + " [-2.60199383e-02, 1.21183231e-01, 1.03316315e-01, ...,\n", + " 9.01593208e-01, -1.07098348e-01, -3.44314128e-02],\n", + " [-6.70573022e-03, 3.49318655e-03, -2.75319908e-04, ...,\n", + " 8.38631839e-02, 2.93988874e-03, 5.30265123e-02],\n", + " ...,\n", + " [-1.60861928e-02, 6.71150684e-02, 5.86529588e-03, ...,\n", + " 5.75501978e-01, -5.87367304e-02, -2.30707154e-02],\n", + " [-9.72283073e-03, 8.33255332e-03, -5.69229014e-05, ...,\n", + " 1.05915517e-01, 8.14233907e-04, 4.98460531e-02],\n", + " [-1.26683740e-02, 5.05815037e-02, 3.94532410e-03, ...,\n", + " 4.28284466e-01, -3.94552983e-02, -9.58428532e-03]], dtype=float32)" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model_large.predict(X_test.loc[:, X_test.columns != \"Class\"]) " + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m 1/3938\u001b[0m \u001b[37m━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[1m1:42\u001b[0m 26ms/step" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m3938/3938\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 286us/step\n" ] } ], @@ -964,7 +962,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 63, "metadata": {}, "outputs": [ { @@ -973,18 +971,18 @@ "0.0" ] }, - "execution_count": 21, + "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "len(mass_balance_results[mass_balance_results < 1e-2]) / len(mass_balance_results)" + "len(mass_balance_results[mass_balance_results < 1e-5]) / len(mass_balance_results)" ] }, { "cell_type": "code", - "execution_count": 99, + "execution_count": 58, "metadata": {}, "outputs": [ { @@ -993,7 +991,7 @@ "Series([], dtype: float64)" ] }, - "execution_count": 99, + "execution_count": 58, "metadata": {}, "output_type": "execute_result" } @@ -1514,19 +1512,19 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 70, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m8/8\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step \n" + "\u001b[1m8/8\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step \n" ] }, { "data": { - "image/png": "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", + "image/png": "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4Dpyc9ddd7Fq1aocV4B+/vnneHh43NJUAyaTiWbNmvHOO+/g6+tr88lje/fuzeHDh60u1rhRcXw2hREWFkajRo1wdnbmrbfeIiQkhL/97W/Fuo/ySj1LUmz27t1LRkYGYO4+X7x4MStWrODee++lRo0aAPTp04e3336bRx55hBEjRnD+/Hn+85//5Po/78KoVasW7u7ufPnllzRo0AAvLy9CQkIICQnho48+onfv3vTs2ZMhQ4ZQpUoV4uPjOXDgANu3b+e///1vntt1dHTk+++/JyIigg4dOjBq1Ci6deuGp6cnf/31F99++y0//vgjFy5cAGDq1Kn06NGDbt268eKLL+Li4sKsWbPYu3cvCxcuLHTvQVhYGP/617947bXXuHLliuVy//379xMXF2eZIPO9995j8ODBxMfH88ADDxAQEMC5c+fYtWsX586dyzds5aVJkyasWbOGH3/8keDgYCpUqHDTf7z79u3LvHnzqF+/Pk2bNmXbtm383//9X44eofw+rxvVq1ePESNG8N577+Hg4EDv3r0tV8NVq1aN559/vtDvLTc9evSgZ8+evPTSSyQmJtKxY0fL1XAtWrRg0KBBVu0ffvhhxowZw8MPP0xqamqOsU4dO3ZkxIgRDB06lK1bt9K5c2c8PT2Jjo5m/fr1NGnShFGjRhVL7WD+vBYvXszs2bNp1aoVDg4OtG7dmoceeogvv/ySu+++m+eee462bdvi7OzMqVOnWL16Nf379+fee++96bFxcXHh4YcfZuzYsaSkpDB79mzL974gdeRm4sSJLF26lG7duvHqq69SqVIlvvzyS3766SemT59e6Ilely5dyqxZsxgwYAA1a9bEMAwWL17MxYsX6dGjR6G2datGjx7NokWL6N+/Py+//DJt27blypUrrF27lr59+9KtW7di+WwKYvz48TRp0oTg4GCioqKYO3cumzdv5qeffiq2ObTKPfuNLZfyIrer4Xx8fIzmzZsbb7/9do4ryebOnWvUq1fPcHV1NWrWrGlMnTrV+PTTTw3AOH78uKVdaGio0adPn1z3eePVcIZhvrKkfv36hrOzc46rRHbt2mU8+OCDRkBAgOHs7GwEBQUZd955p/Hhhx8W6D1evHjReO2114yWLVsaXl5ehrOzs1G9enXjscceM/744w+rtuvWrTPuvPNOw9PT03B3dzfat29v/Pjjj7kes8jISKv12Vf9rF692mr9559/brRp08Zwc3MzvLy8jBYtWuS4kmzt2rVGnz59jEqVKhnOzs5GlSpVjD59+hj//e9/LW1yu4rq+nquP/47d+40OnbsaHh4eBiA5UqcvGo3DMO4cOGC8cQTTxgBAQGGh4eHcccddxjr1q3L9UqevD6vG6+GMwzz1VfTpk0z6tatazg7Oxt+fn7GY489Zpw8edKqXZcuXYxGjRrlqCu3K51yc+XKFeOll14yQkNDDWdnZyM4ONgYNWqUceHChVzbP/LIIwZgdOzYMc9tzp0712jXrp3l+1CrVi3j8ccfN7Zu3XrTuvOS2+cYHx9vPPDAA4avr69hMpmsjmF6errxn//8x2jWrJnlO1S/fn3jH//4h3HkyBFLu/z+zv3444+W11epUsX45z//afz88885vq/51XHj30vDMIw9e/YY/fr1M3x8fAwXFxejWbNmOb7b2X8vrv8uG4ZhHD9+3OqqyoMHDxoPP/ywUatWLcPd3d3w8fEx2rZta8ybN++mxzSvq+GeeuqpHG1z+/cnNxcuXDCee+45o3r16oazs7MREBBg9OnTxzh48KClTUE/m6JeDWcYhjFq1CijevXqhouLi+Hn52fcf//9xu7du2/6OrnGZBg3zAQoIiIiIhYasyQiIiKSD4UlERERkXwoLImIiIjkQ2FJREREJB8KSyIiIiL5UFgSERERyYcmpSwGWVlZnDlzhgoVKpTYLQtERESkeBmGQVJSEiEhIfneVFhhqRicOXMmz/t2iYiISOl28uTJfG98rLBUDLLvLXby5Em8vb3tXI2IiIgURGJiItWqVbvpTYsVlopB9qk3b29vhSUREZEy5mZDaDTAW0RERCQfZS4szZo1ixo1auDm5karVq1Yt25dnm2jo6N55JFHqFevHg4ODowePTpHm3nz5mEymXIsKSkpJfguREREpKwoU2Fp0aJFjB49mvHjx7Njxw46depE7969iYqKyrV9amoq/v7+jB8/nmbNmuW5XW9vb6Kjo60WNze3knobIiIiUoaUqTFLb7/9Nk888QR///vfAZgxYwa//vors2fPZurUqTnah4WF8e677wIwd+7cPLdrMpkICgoqmaKvk5mZSXp6eonvR0qes7Mzjo6O9i5DRERsoMyEpbS0NLZt28bLL79stT4iIoINGzbc0rYvXbpEaGgo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gZODidDKnnatRWFJRERESp3DV8crhfl54uJk37iisCQiIiKlzpGzV6+EC7DveCVQWBIREZFS6NrM3fa9Eg4UlkRERKQUslwJp54lEREREWuGYVw7DWfnaQNAYUlERERKmXNJqSSmZOBgghp+9r0SDhSWREREpJTJPgUXVtkTV6fC39e0uCksiYiISKly+OopuNqlYLwSKCxJKTBp0iSaN29u+XnIkCEMGDDglrZZHNsQERH7KC23OcmmsCR5GjJkCCaTCZPJhLOzMzVr1uTFF1/k8uXLJbrfd999l3nz5hWo7YkTJzCZTOzcubPI2xARkdLlz6sTUtYtBdMGADjZuwAp3Xr16sVnn31Geno669at4+9//zuXL19m9uzZVu3S09NxdnYuln36+PiUim2IiIjtGYbB4VidhpMyxNXVlaCgIKpVq8YjjzzCo48+ypIlSyynzubOnUvNmjVxdXXFMAwSEhIYMWIEAQEBeHt7c+edd7Jr1y6rbb755psEBgZSoUIFnnjiCVJSUqyev/EUWlZWFtOmTaN27dq4urpSvXp1Xn/9dQBq1KgBQIsWLTCZTHTt2jXXbaSmpvLss88SEBCAm5sbd9xxB5GRkZbn16xZg8lk4rfffqN169Z4eHgQHh7OoUOHivFoiojIzZy/nMbF5HRMJqjlr7B0ezIMSLtsn8Uwbrl8d3d30tPTAfjzzz/55ptv+O677yynwfr06UNMTAzLli1j27ZttGzZkrvuuov4+HgAvvnmGyZOnMjrr7/O1q1bCQ4OZtasWfnuc9y4cUybNo0JEyawf/9+vvrqKwIDAwHYsmULACtXriQ6OprFixfnuo2xY8fy3XffMX/+fLZv307t2rXp2bOnpa5s48eP56233mLr1q04OTkxbNiwIh8rEREpvCNXT8FVr+SBm7P9r4QDnYazvfRkeCPEPvv+1xlwKfp8FVu2bOGrr77irrvuAiAtLY0FCxbg7+8PwKpVq9izZw+xsbG4uroC8J///IclS5bw7bffMmLECGbMmMGwYcP4+9//DsC///1vVq5cmaN3KVtSUhLvvvsu77//PoMHDwagVq1a3HHHHQCWfVeuXJmgoKBct5F92nDevHn07t0bgDlz5rBixQo+/fRT/vnPf1ravv7663Tp0gWAl19+mT59+pCSkoKbm1uRj5uIiBTcwZhEAOoElI7xSqCe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z+OsAd4iIiIi+VDPkoiIiEg+FJZERERE8qGwJCIiIpIPhSURERGRfCgslWKzZs2iRo0auLm50apVK9atW2fvksq0SZMmYTKZrJagoCDL84ZhMGnSJEJCQnB3d6dr167s27fPjhWXHb///jv9+vUjJCQEk8nEkiVLrJ4vyLFNTU3lmWeewc/PD09PT+655x5OnTplw3dR+t3sOA8ZMiTHd7x9+/ZWbXScb27q1Km0adOGChUqEBAQwIABAzh06JBVG32ni0dBjnVp+F4rLJVSixYtYvTo0YwfP54dO3bQqVMnevfuTVRUlL1LK9MaNWpEdHS0ZdmzZ4/luenTp/P222/z/vvvExkZSVBQED169LDc+0/ydvnyZZo1a8b777+f6/MFObajR4/m+++/5+uvv2b9+vVcunSJvn37kpmZaau3Uerd7DgD9OrVy+o7vmzZMqvndZxvbu3atTz11FNs2rSJFStWkJGRQUREBJcvX7a00Xe6eBTkWEMp+F4bUiq1bdvWGDlypNW6+vXrGy+//LKdKir7Jk6caDRr1izX57KysoygoCDjzTfftKxLSUkxfHx8jA8//NBGFZYPgPH9999bfi7Isb148aLh7OxsfP3115Y2p0+fNhwcHIxffvnFZrWXJTceZ8MwjMGDBxv9+/fP8zU6zkUTGxtrAMbatWsNw9B3uiTdeKwNo3R8r9WzVAqlpaWxbds2IiIirNZHRESwYcMGO1VVPhw5coSQkBBq1KjBQw89xLFjxwA4fvw4MTExVsfc1dWVLl266JjfooIc223btpGenm7VJiQkhMaNG+v4F9KaNWsICAigbt26DB8+nNjYWMtzOs5Fk5CQAEClSpUAfadL0o3HOpu9v9cKS6VQXFwcmZmZBAYGWq0PDAwkJibGTlWVfe3atePzzz/n119/Zc6cOcTExBAeHs758+ctx1XHvPgV5NjGxMTg4uJCxYoV82wjN9e7d2++/PJLVq1axVtvvUVkZCR33nknqampgI5zURiGwZgxY7jjjjto3LgxoO90ScntWEPp+F47FctWpESYTCarnw3DyLFOCq53796Wx02aNKFDhw7UqlWL+fPnWwYL6piXnKIcWx3/whk4cKDlcePGjWndujWhoaH89NNP3HfffXm+Tsc5b08//TS7d+9m/fr1OZ7Td7p45XWsS8P3Wj1LpZCfnx+Ojo45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", "text/plain": [ "
" ] @@ -1536,7 +1534,7 @@ }, { "data": { - "image/png": "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EREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDbjkWLVqE4OBgqNVqtGnTBnv27Cm3/OrVq9GiRQvY29vDx8cHo0aNQnp6ehXVloiIiIgABlyT1q5di4kTJ2LKlCmIj49H586d0a9fPyQmJhotv3fvXkRERGDMmDE4ceIEfvzxR8TFxeG5556r4poTERERPdwYcE2YN28exowZg+eeew4hISGYP38+AgICsHjxYqPlDx48iKCgIEyYMAHBwcHo1KkTXnjhBRw+fLiKa05ERET0cGPANaKoqAhHjhxBeHi4wfDw8HDs37/f6DhhYWG4dOkSYmJiIITA1atX8dNPP2HAgAFVUWUiIiIiuokB14i0tDRotVp4eXkZDPfy8kJKSorRccLCwrB69WoMGzYMSqUS3t7ecHFxwaeffmpyPoWFhcjOzjZ4EBEREdH9YcAth0KhMHgthCgzTO/kyZOYMGECpk6diiNHjmDz5s24cOECoqKiTE4/Ojoazs7O0iMgIKBS609ERET0MFIIIYSlK1HdFBUVwd7eHj/++CMef/xxafgrr7yCo0ePYteuXWXGGTFiBAoKCvDjjz9Kw/bu3YvOnTvjypUr8PHxKTNOYWEhCgsLpdfZ2dkICAhAVlYWnJycKvlTERER0YOQnZ0NZ2dn7r+rER7BNUKpVKJNmzaIjY01GB4bG4uwsDCj4+Tn58PKyrA5ra2tAZQe+TVGpVLBycnJ4EFERERE94cB14RJkybhq6++wvLly3Hq1Cm8+uqrSExMlLocTJ48GREREVL5QYMGYd26dVi8eDHOnz+Pffv2YcKECXjkkUfg6+trqY9BRERE9NCxsXQFqqthw4YhPT0dM2fORHJyMpo2bYqYmBgEBgYCAJKTkw2uiRsZGYmcnBx89tlneO211+Di4oIePXpg9uzZlvoI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cPnyZXzzzTewsrJC06ZNDcb39PSEWq0uM5yIiIiIHiwGXBOGDRuG9PR0zJw5E8nJyWjatCliYmIQGBgIAEhOTr7rNXGJiIiIqOrxOrjVCK+jR0REVPNw/139sA8uEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgNuORYtWoTg4GCo1Wq0adMGe/bsMVl23bp16N27Nzw8PODk5IQOHTrgjz/+qMLaEhERERHAgGvS2rVrMXHiREyZMgXx8fHo3Lkz+vXrh8TERKPld+/ejd69eyMmJgZHjhxB9+7dMWjQIMTHx1dxzYmIiIgebgohhLB0Jaqjdu3aoXXr1li8eLE0LCQkBIMHD0Z0dLRZ02jSpAmGDRuGqVOnmlU+Ozsbzs7OyMrKgpOT0z3Vm4iIiKoW99/VD4/gGlFUVIQjR44gPDzcYHh4eDj2799v1jR0Oh1ycnLg6upqskxhYSGys7MNHkRERER0fxhwjUhLS4NWq4WXl5fBcC8vL6SkpJg1jY8//hh5eXkYOnSoyTLR0dFwdnaWHgEBAfdVbyIiIiJiwC2XQqEweC2EKDPMmDVr1mD69OlYu3YtPD09TZabPHkysrKypEdSUtJ915mIiIjoYWdj6QpUR+7u7rC2ti5ztDY1NbXMUd07rV27FmPGjMGPP/6IXr16lVtWpVJBpVLdd32JiIiI6BYewTVCqVSiTZs2iI2NNRgeGxuLsLAwk+OtWbMGkZGR+O677zBgwIAHXU0iIiIiMoJHcE2YNGkSRowYgdDQUHTo0AFffPEFEhMTERUVBaC0e8Hly5fxzTffACgNtxEREViwYAHat28vHf21s7ODs7OzxT4HERER0cOGAdeEYcOGIT09HTNnzkRycjKaNm2KmJgYBAYGAgCSk5MNrom7dOlSlJSU4KWXXsJLL70kDR85ciRWrlxZ1dUnIiIiemjxOrjVCK+jR0REVPNw/139sA8uEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgMuEREREckKAy4RERERyQoDLhERERHJCgNuORYtWoTg4GCo1Wq0adMGe/bsKbf8rl270KZNG6jVatSpUwdLliypopoSERERkR4Drglr167FxIkTMWXKFMTHx6Nz587o168fEhMTjZa/cOEC+vfvj86dOyM+Ph5vv/02JkyYgJ9//rmKa05ERET0cFMIIYSlK1EdtWvXDq1bt8bixYulYSEhIRg8eDCio6PLlP/f//6HDRs24NSpU9KwqKgoHDt2DAcOHDBrntnZ2XB2dkbWlStwcnIqW8DaGlCrb73OyzM9MSsrwM7u3srm5wOmFguFArC3v7eyN24AOp3pemg091a2oADQaiunrL19ab0BoLAQKCmpnLJ2dqXtDABFRUBxceWUVatLl4uKli0uLi1vikoF2NhUvGxJSWlbmKJUAra2FS+r1ZZ+d6bY2paWr2hZna50WauMsjY2pW0BlK4T+fmVU7Yi6z23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", + "image/png": "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+y6cnJzw/PPP49NPPy2vt0BERERE+eAY5QqGY5yIiIgqHm6/KyYOvSAiIiIiksGgTEREREQkg0GZiIiIiEgGgzIRERERkQwGZSIiIiIiGQzKREREREQyGJSJiIiIiGQwKBMRERERyWBQJiIiIiKSwaBMRERERCSDQZmIiIiISAaDMhERERGRDAZlIiIiIiIZDMpERERERDIYlImIiIiIZDAoExERERHJYFAmIiIiIpLBoExEREREJINBmYiIiIhIBoMyEREREZEMBmUiIiIiIhkMykREREREMhiUiYiIiIhkMCgTEREREclgUCYiIiIiksGgTEREREQkg0GZiIiIiEgGgzIRERERkQwGZSIiIiIiGQzKREREREQyGJSJiIiIiGQwKBMRERERybAu7wYQERGVJYPBgJycnPJuBj2D1Go1lErug3yWMCgTEVGlIIRAbGws7t+/X95NoWeUUqmEv78/1Gp1eTeFSgmDMhERVQrGkOzm5gZbW1soFIrybhI9Q3Jzc3H79m3ExMSgevXqXL6eEQzKRET0zDMYDFJIdnFxKe/m0DPK1dUVt2/fhl6vh0qlKu/mUCngQBoiInrmGcck29ralnNL6FlmHHJhMBjKuSVUWhiUiYio0uDhcHqSuHw9eyp1UM7OzsbFixeh1+vLuylERERE9JSplEE5PT0do0ePhq2tLRo0aICoqCgAwKRJkzBv3rxybh0REdHTY//+/VAoFLxaCFVKlTIoT5s2DX///Tf2798PrVYrlXfp0gUbNmwox5YRERGZGjFiBBQKBRQKBaytrVG9enW89dZbuHfvXrm0Z/Xq1XByciqX1yYqa5XyqhdbtmzBhg0b0KZNG5PxRPXr18c///xTji0jIiIy16NHD6xatQp6vR7nz5/HqFGjcP/+faxfv768m0b0TKuUe5Tv3r0LNzc3s/K0tDQOxCcioqeORqOBh4cHqlWrhm7dumHw4MHYuXOn9PyqVatQr149aLVa1K1bF0uWLJGey87OxoQJE+Dp6QmtVgs/Pz+EhoYCAK5fvw6FQoHIyEip/v3796FQKLB//36zduzfvx8jR45EUlKStJd71qxZAIAlS5agVq1a0Gq1cHd3x8CBA59IXxCVpUq5R7lly5bYvn07Jk6cCODhWarffvstgoKCyrNpRERURoQQyMgpn8t42aisir1j5urVq/jjjz+k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FQuDcgls2LABkydPxvTp0xEREYF27dqhZ8+eiIqKKnC6pKQkDB8+HJ07dy6jlhIRERFRUSmEEKK8G1FRtW7dGs2aNcPSpUulsnr16qF///4IDQ3Nd7ohQ4agVq1asLKywpYtWxAZGWnxayYnJ0On0yEpKQmOjo4laT4RERGVEW6/KybuUS6m7OxsnDx5Et26dTMp79atG44ePZrvdKtWrcI///yDmTNnPukmEhEREVEJWJd3Ayqq+Ph4GAwGuLu7m5S7u7sjNjZWdprLly/j/fffx6FDh2BtbVnXZ2VlISsrS3qcnJxc/EYTERERkcW4R7mEFAqFyWMhhFkZABgMBgwdOhSzZ89G7dq1LZ5/aGgodDqddPPx8Slxm4mIiIiocAzKxVS1alVYWVmZ7T2Oi4sz28sMACkpKThx4gQmTJgAa2trWFtbY86cOfj7779hbW2NvXv3yr7OtGnTkJSUJN2io6OfyPshIiIiIlMcelFMarUazZs3x65duzBgwACpfNeuXejXr59ZfUdHR5w5c8akbMmSJdi7dy9+/vln+Pv7y76ORqOBRqMp3cYTERERUaEYlEtgypQpGDZsGFq0aIGgoCB88803iIqKwtixYwHk7Q2+desWvv/+eyiVSjRs2NBkejc3N2i1WrNyIiIiIip/DMolMHjwYCQkJGDOnDmIiYlBw4YNERYWBl9fXwBATExModdUJiIiIqKnE6+jXMHwOoxEREQVD7ffFRNP5iMiIiIiksGgTEREREQkg0GZiIiIiEgGgzIRERERkQwGZSIiIiIiGQzKREREREQyGJSJiIiIiGQwKBMRERERyWBQJiIiIiKSwaBMRERERCSDQZmIiIiISAaDMhERERGRDAZlIiIiIiIZDMpERERERDIYlImIiIiIZDAoExERERHJYFAmIiIiIpLBoExEREREJINBmYiIiIhIBoMyEREREZEMBmUiIiIiIhkMykREREREMhiUiYiIiIhkMCgTEREREclgUCYiIiIiksGgTEREREQkg0GZiIiIiEgGgzIRERERkQwGZSIiIiIiGQzKREREREQyGJSJiIiIiGQwKBMRERERyWBQJiIiIiKSwaBMRERERCSDQZmIiIiISAaDMhERERGRDAZlIiIiIiIZDMpERERERDIYlImIiIiIZDAoExERERHJYFAmIiIiIpLBoExEREREJINBmYiIiIhIBoMyEREREZEMBmUiIiIiIhkMykREREREMhiUiYiIiIhkMCiX0JIlS+Dv7w+tVovmzZvj0KFD+dbdvHkzunbtCldXVzg6OiIoKAg7duwow9YSERERkaUYlEtgw4YNmDx5MqZPn46IiAi0a9cOPXv2RFRUlGz9gwcPomvXrggLC8PJkyfRqVMn9O3bFxEREWXcciIiIiIqjEIIIcq7ERVV69at0axZMyxdulQqq1evHvr374/Q0FCL5tGgQQMMHjwYM2bMsKh+cnIydDodkpKS4OjoWKx2ExERUdni9rti4h7lYsrOzsbJkyfRrVs3k/Ju3brh6NGjFs0jNzcXKSkpcHZ2zrdOVlYWkpOTTW5ERERE9OQxKBdTfHw8DAYD3N3dTcrd3d0RGxtr0TwWLFiAtLQ0DBo0KN86oaGh0Ol00s3Hx6dE7SYiIiIiyzAol5BCoTB5LIQwK5Ozfv16zJo1Cxs2bICbm1u+9aZNm4akpCTpFh0dXeI2ExEREVHhrMu7ARVV1apVYWVlZbb3OC4uzmwv8+M2bNiA0aNHY9OmTejSpUuBdTUaDTQaTYnbS0RERERFwz3KxaRWq9G8eXPs2rXLpHzXrl0IDg7Od7r169djxIgR+PHHH9G7d+8n3UwiIiIiKibuUS6BKVOmYNiwYWjRogWCgoLwzTffICoqCmPHjgWQN2zi1q1b+P777wHkheThw4dj0aJFaNOmjbQ32sbGBjqdrtzeBxERERGZY1AugcGDByMhIQFz5sxBTEwMGjZsiLCwMPj6+gIAYmJiTK6pvHz5cuj1eowfPx7jx4+XykNCQrB69eqybj4RERERFYDXUa5geB1GIiKiiofb74qJY5SJiIiIiGQwKBMRERERyWBQJiIiIiKSwaBMRERERCSDQZmIiIiISAaDMhERERGRDAZlIiIiIiIZDMpERERERDIYlImIiIiIZDAoExERERHJYFAmIiIiIpLBoExEREREJINBmYiIiIhIBoMyEREREZEMBmUiIiIiIhkMykREREREMhiUiYiIiIhkMCgTEREREclgUCYiIiIiksGgTEREREQkg0GZiIiIiEgGgzIRERERkQwGZSIiIiIiGQzKREREREQyGJSJiIiIiGQwKBMRERERyWBQJiIiIiKSwaBMRERERCSDQZmIiIiISAaDMhERERGRDAZlIiIiIiIZDMpERERERDIYlImIiIiIZDAoExERERHJYFAmIiIiIpLBoExEREREJINBmYiIiIhIBoMyEREREZEMBmUiIiIiIhkMykREREREMhiUiYiIiIhkMCgTEREREclgUCYiIiIiksGgTEREREQkg0GZiIiIiEgGgzIRERERkQwGZSIiIiIiGQzKJbRkyRL4+/tDq9WiefPmOHToUIH1Dxw4gObNm0Or1aJGjRpYtmxZGbWUiIiIiIqCQbkENmzYgMmTJ2P69OmIiIhAu3bt0LNnT0RFRcnWv3btGnr16oV27dohIiICH3zwASZNmoRffvmljFtORERERIVRCCFEeTeiomrdujWaNWuGpUuXSmX16tVD//79ERoaalb/3//+N7Zu3YoLFy5IZWPHjsXff/+N8PBwi14zOTkZOp0OSbdvw9HR0byClRWg1T58nJaW/8yUSsDGpnh109OB/BYdhQKwtS1e3YwMIDc3/3bY2RWvbmYmYDCUTl1b27x2A0BWFqDXl05dG5u8fgaA7GwgJ6d06mq1ectFUevm5OTVz49GA1hbF72uXp/XF/lRqwGVquh1DYa8zy4/KlVe/aLWzc3NW9ZKo661dV5fAHnfifT00qlblO891xHydbmOKHpdriPy7lu4jpC230lJ8ttvejoJKpasrCxhZWUlNm/ebFI+adIk0b59e9lp2rVrJyZNmmRStnnzZmFtbS2ys7Nlp8nMzBRJSUnSLTo6WgAQSXmbFfNbr16mM7C1la8HCNGhg2ndqlXzr9uihWldX9/869avb1q3fv386/r6mtZt0SL/ulWrmtbt0CH/ura2pnV79cq/7uNfg4EDC66bmvqwbkhIwXXj4h7WHTeu4LrXrj2sO3VqwXXPnn1Yd+bMguseO/aw7vz5Bdfdt+9h3cWLC667bdvDuqtWFVx348aHdTduLLjuqlUP627bVnDdxYsf1t23r+C68+c/rHvsWMF1Z858WPfs2YLrTp36sO61awXXHTfuYd24uILrhoQ8rJuaWnDdgQOFiYLqch2Rd+M64uGN64i82xNeRyQlJQkAIikpSVDFwaEXxRQfHw+DwQB3d3eTcnd3d8TGxspOExsbK1tfr9cjPj5edprQ0FDodDrp5uPjUzpvgIiIiIgKxKEXxXT79m14e3vj6NGjCAoKkso//vhjrF27Fv/73//MpqlduzZGjhyJadOm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6NnAoRdERBbQ6XRQq9WwtbWFh4eHVL506VI0a9YMn3zyiVS2cuVK+Pj44NKlS6hduzYAoGbNmpg/f77JPB8d7+zv74+PPvoIb731FpYsWQK1Wg2dTgeFQmHyeo/bvXs3Tp8+jWvXrsHHxwcAsHbtWjRo0ADHjx9Hy5YtAQC5ublYvXo1HBwcAADDhg3Dnj178PHHH5esY4iInmHco0xEVAInT57Evn37YG9vL93q1q0LIG8vrlGLFi3Mpt23bx+6du0Kb29vODg4YPjw4UhISEBaWprFr3/hwgX4+PhIIRkA6tevDycnJ1y4cEEq8/Pzk0IyAHh6eiIuLq5I75WIqLLhHmUiohLIzc1F37598emnn5o95+npKd23s7Mzee7GjRvo1asXxo4di48++gjOzs44fPgwRo8ejZycHItfXwgBhUJRaLlKpTJ5XqFQIDc31+LXISKqjBiUiYgspFarYTAYTMqaNWuGX375BX5+frC2tnyVeuLECej1eixYsABKZd7BvY0bNxb6eo+rX78+oqKiEB0dLe1VPn/+PJKSklCvXj2L20NEROY49IKIyEJ+fn7466+/cP36dcTHxyM3Nxfjx49HYmIiXnnlFRw7dgxXr17Fzp07MWrUqAJDbkBAAPR6Pb766itcvXoVa9euxbJly8xeLzU1FXv27EF8fDzS09PN5tOlSxc0btwYr776Kk6dOoVjx45h+PDh6NChg+xwDyIishyDMhGRhaZOnQorKyvUr18frq6uiIqKgpeXF44cOQKDwYDu3bujYcOGePvtt6HT6aQ9xXKaNGmChQsX4tNPP0XDhg2xbt06hIaGmtQJDg7G2LFjMXjwYLi6upqdDAjkDaHYsmULqlSpgvbt26NLly6oUaMGNmzYUOrvn4ioslEIIUR5N4KIiIiI6GnDPcpERERERDIYlImIiIiIZDAoExERERHJYFAmIiIiIpLBoExEREREJINBmYiIiIhIBoMyEREREZEMBmUiIiIiIhkMykREREREMhiUiYiIiIhkMCgTEREREclgUCYiIiIikvH/tW8dvhaw7foAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -1548,9 +1546,9 @@ "source": [ "import matplotlib.pyplot as plt\n", "\n", - "species = \"Ba\"\n", + "species = \"Barite\"\n", "iterations = 250\n", - "cell_offset = 11\n", + "cell_offset = 9\n", "y_design = []\n", "y_results = []\n", "y_differences = []\n", @@ -1569,7 +1567,7 @@ "y_design = pd.DataFrame(y_design)\n", "y_results = pd.DataFrame(y_results)\n", "\n", - "prediction = model_simple.predict(y_design.iloc[:, y_design.columns != \"Class\"])\n", + "prediction = model_large.predict(y_design.iloc[:, y_design.columns != \"Class\"])\n", "prediction = pd.DataFrame(prediction, columns = y_results.columns)\n", "\n", "# y_results_back, prediction = preprocess.funcInverse(y_results, prediction)\n", @@ -1875,23 +1873,23 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m15641/15641\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 351us/step - loss: 5.1847e-07\n" + "\u001b[1m3938/3938\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 827us/step - loss: 70.7642\n" ] }, { "data": { "text/plain": [ - "3.571243496480747e-07" + "70.69287872314453" ] }, - "execution_count": 48, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" } @@ -1903,23 +1901,23 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m15452/15452\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 385us/step - loss: 5.2313e-07\n" + "\u001b[1m3747/3747\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 733us/step - loss: 67.2305\n" ] }, { "data": { "text/plain": [ - "3.601293485644419e-07" + "67.27115631103516" ] }, - "execution_count": 49, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -1931,40 +1929,30 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 36, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m94/94\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - loss: 4.0710e-05\n" + "\u001b[1m 1/192\u001b[0m \u001b[37m━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[1m2s\u001b[0m 12ms/step - loss: 148.6424" ] - } - ], - "source": [ - "mass_balance = mass_balance(model_simple, X_test, scaler_X, func_dict_in, func_dict_out)" - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "metadata": {}, - "outputs": [ + }, { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m189/189\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 393us/step - loss: 1.2226e-07\n" + "\u001b[1m192/192\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 749us/step - loss: 139.3093\n" ] }, { "data": { "text/plain": [ - "1.1114495634956256e-07" + "137.7884521484375" ] }, - "execution_count": 50, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } @@ -1994,7 +1982,7 @@ ], "metadata": { "kernelspec": { - "display_name": "ai", + "display_name": "model-training", "language": "python", "name": "python3" }, @@ -2008,7 +1996,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.8" + "version": "3.12.2" } }, "nbformat": 4, diff --git a/optuna_runs.py b/optuna_runs.py new file mode 100644 index 0000000..0df7b3f --- /dev/null +++ b/optuna_runs.py @@ -0,0 +1,225 @@ +import keras +from keras.layers import Dense, Dropout, Input,BatchNormalization +import tensorflow as tf +import h5py +import numpy as np +import pandas as pd +import time +import sklearn.model_selection as sk +import matplotlib.pyplot as plt +from sklearn.cluster import KMeans +from sklearn.pipeline import Pipeline, make_pipeline +from sklearn.preprocessing import StandardScaler, MinMaxScaler +from imblearn.over_sampling import SMOTE +from imblearn.under_sampling import RandomUnderSampler +from imblearn.over_sampling import RandomOverSampler +from collections import Counter +import os +from preprocessing import * +from sklearn import set_config +from importlib import reload +set_config(transform_output = "pandas") + +dtype = "float32" +activation = "relu" + +lr = 0.001 +batch_size = 512 +epochs = 50 # default 400 epochs + +lr_schedule = keras.optimizers.schedules.ExponentialDecay( + initial_learning_rate=lr, + decay_steps=2000, + decay_rate=0.9, + staircase=True +) + +optimizer_simple = keras.optimizers.Adam(learning_rate=lr_schedule) +optimizer_large = keras.optimizers.Adam(learning_rate=lr_schedule) +optimizer_paper = keras.optimizers.Adam(learning_rate=lr_schedule) + +sample_fraction = 0.8 + +# small model +model_simple = keras.Sequential( + [ + keras.Input(shape = (9,), dtype = "float32"), + keras.layers.Dense(units = 128, activation = "linear", dtype = "float32"), + # Dropout(0.2), + keras.layers.Dense(units = 128, activation = "elu", dtype = "float32"), + keras.layers.Dense(units = 9, dtype = "float32") + ] +) + +def Safelog(val): + # get range of vector + if val > 0: + return np.log10(val) + elif val < 0: + return -np.log10(-val) + else: + return 0 + +def Safeexp(val): + if val > 0: + return -10 ** -val + elif val < 0: + return 10 ** val + else: + return 0 + +# ? Why does the charge is using another logarithm than the other species + +func_dict_in = { + "H" : np.log1p, + "O" : np.log1p, + "Charge" : Safelog, + "H_0_" : np.log1p, + "O_0_" : np.log1p, + "Ba" : np.log1p, + "Cl" : np.log1p, + "S_2_" : np.log1p, + "S_6_" : np.log1p, + "Sr" : np.log1p, + "Barite" : np.log1p, + "Celestite" : np.log1p, +} + +func_dict_out = { + "H" : np.expm1, + "O" : np.expm1, + "Charge" : Safeexp, + "H_0_" : np.expm1, + "O_0_" : np.expm1, + "Ba" : np.expm1, + "Cl" : np.expm1, + "S_2_" : np.expm1, + "S_6_" : np.expm1, + "Sr" : np.expm1, + "Barite" : np.expm1, + "Celestite" : np.expm1, +} + +# os.chdir('/mnt/beegfs/home/signer/projects/model-training') +data_file = h5py.File("barite_50_4_corner.h5") + +design = data_file["design"] +results = data_file["result"] + +df_design = pd.DataFrame(np.array(design["data"]).transpose(), columns = np.array(design["names"].asstr())) +df_results = pd.DataFrame(np.array(results["data"]).transpose(), columns = np.array(results["names"].asstr())) + +data_file.close() + +species_columns = ['H', 'O', 'Charge', 'Ba', 'Cl', 'S', 'Sr', 'Barite', 'Celestite'] + +preprocess = preprocessing(func_dict_in=func_dict_in, func_dict_out=func_dict_out) +X, y = preprocess.cluster(df_design[species_columns], df_results[species_columns]) +# X, y = preprocess.funcTranform(X, y) + +X_train, X_test, y_train, y_test = preprocess.split(X, y, ratio = 0.2) +X_train, y_train = preprocess.balancer(X_train, y_train, strategy = "over") +preprocess.scale_fit(X_train, y_train, scaling = "individual") +X_train, X_test, y_train, y_test = preprocess.scale_transform(X_train, X_test, y_train, y_test) +X_train, X_val, y_train, y_val = preprocess.split(X_train, y_train, ratio = 0.1) + +column_dict = {"Ba": X.columns.get_loc("Ba"), "Barite":X.columns.get_loc("Barite"), "Sr":X.columns.get_loc("Sr"), "Celestite":X.columns.get_loc("Celestite"), "H":X.columns.get_loc("H"), "H":X.columns.get_loc("H"), "O":X.columns.get_loc("O")} + +def custom_loss(preprocess, column_dict, h1, h2, h3, h4): + # extract the scaling parameters + scale_X = tf.convert_to_tensor(preprocess.scaler_X.scale_, dtype=tf.float32) + min_X = tf.convert_to_tensor(preprocess.scaler_X.min_, dtype=tf.float32) + scale_y = tf.convert_to_tensor(preprocess.scaler_y.scale_, dtype=tf.float32) + min_y = tf.convert_to_tensor(preprocess.scaler_y.min_, dtype=tf.float32) + + def loss(results, predicted): + # inverse min/max scaling + predicted_inverse = predicted * scale_X + min_X + results_inverse = results * scale_y + min_y + + # mass balance + dBa = tf.keras.backend.abs( + (predicted_inverse[:, column_dict["Ba"]] + predicted_inverse[:, column_dict["Barite"]]) - + (results_inverse[:, column_dict["Ba"]] + results_inverse[:, column_dict["Barite"]]) + ) + dSr = tf.keras.backend.abs( + (predicted_inverse[:, column_dict["Sr"]] + predicted_inverse[:, column_dict["Celestite"]]) - + (results_inverse[:, column_dict["Sr"]] + results_inverse[:, column_dict["Celestite"]]) + ) + + # H/O ratio has to be 2 + h2o_ratio = tf.keras.backend.abs( + (predicted_inverse[:, column_dict["H"]] / predicted_inverse[:, column_dict["O"]]) - 2 + ) + + # huber loss + huber_loss = tf.keras.losses.Huber()(results, predicted) + + # total loss + total_loss = h1 * huber_loss + h2 * dBa**2 + h3 * dSr**2 #+ h4 * h2o_ratio**2 + + return total_loss + + return loss + +def mass_balance(model, X, preprocess): + + # predict the chemistry + columns = X.iloc[:, X.columns != "Class"].columns + prediction = pd.DataFrame(model.predict(X[columns]), columns=columns) + + # backtransform min/max + X = pd.DataFrame(preprocess.scaler_X.inverse_transform(X.iloc[:, X.columns != "Class"]), columns=columns) + prediction = pd.DataFrame(preprocess.scaler_y.inverse_transform(prediction), columns=columns) + + # calculate mass balance dBa = np.abs((prediction["Ba"] + prediction["Barite"]) - (X["Ba"] + X["Barite"])) + dSr = np.abs((prediction["Sr"] + prediction["Celestite"]) - (X["Sr"] + X["Celestite"])) + + return dBa + dSr + +import optuna + +def create_model(model, preprocess, h1, h2, h3, h4): + + model.compile(optimizer=optimizer_simple, loss=custom_loss(preprocess, column_dict, h1, h2, h3, h4)) + + return model + + +def objective(trial, preprocess, X_train, y_train, X_val, y_val, X_test, y_test): + h1 = trial.suggest_float("h1", 0.1, 10) + h2 = trial.suggest_float("h2", 0.1, 10) + h3 = trial.suggest_float("h3", 0.1, 10) + h4 = trial.suggest_float("h4", 0.1, 10) + + model = create_model(model_simple, preprocess, h1, h2, h3, h4) + + callback = keras.callbacks.EarlyStopping(monitor='loss', patience=3) + history = model.fit(X_train.loc[:, X_train.columns != "Class"], + y_train.loc[:, y_train.columns != "Class"], + batch_size=batch_size, + epochs=50, + validation_data=(X_val.loc[:, X_val.columns != "Class"], y_val.loc[:, y_val.columns != "Class"]), + callbacks=[callback]) + + prediction_loss = model.evaluate(X_test.loc[:, X_test.columns != "Class"], y_test.loc[:, y_test.columns != "Class"]) + mass_balance_results = mass_balance(model, X_test, preprocess) + + mass_balance_ratio = len(mass_balance_results[mass_balance_results < 1e-5]) / len(mass_balance_results) + + return prediction_loss, mass_balance_ratio + +if __name__ == "__main__": + study = optuna.create_study(storage="sqlite:///model_optimization.db", study_name="model_optimization", directions=["minimize", "maximize"]) + study.optimize(lambda trial: objective(trial, preprocess, X_train, y_train, X_val, y_val, X_test, y_test), n_trials=1000) + + print("Number of finished trials: ", len(study.trials)) + + print("Best trial:") + trial = study.best_trial + + print(" Value: ", trial.value) + + print(" Params: ") + for key, value in trial.params.items(): + print(" {}: {}".format(key, value)) \ No newline at end of file