diff --git a/POET_Training.ipynb b/POET_Training.ipynb index ffb8abb..56fe545 100644 --- a/POET_Training.ipynb +++ b/POET_Training.ipynb @@ -30,15 +30,6 @@ "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", @@ -230,17 +221,17 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ - "
Model: \"sequential_5\"\n", + "Model: \"sequential_1\"\n", "\n" ], "text/plain": [ - "\u001b[1mModel: \"sequential_5\"\u001b[0m\n" + "\u001b[1mModel: \"sequential_1\"\u001b[0m\n" ] }, "metadata": {}, @@ -252,13 +243,13 @@ "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n", "┃ Layer (type) ┃ Output Shape ┃ Param # ┃\n", "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n", - "│ dense_21 (Dense) │ (None, 512) │ 4,608 │\n", + "│ dense_3 (Dense) │ (None, 512) │ 4,608 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dense_22 (Dense) │ (None, 1024) │ 525,312 │\n", + "│ dense_4 (Dense) │ (None, 1024) │ 525,312 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dense_23 (Dense) │ (None, 512) │ 524,800 │\n", + "│ dense_5 (Dense) │ (None, 512) │ 524,800 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dense_24 (Dense) │ (None, 8) │ 4,104 │\n", + "│ dense_6 (Dense) │ (None, 8) │ 4,104 │\n", "└─────────────────────────────────┴────────────────────────┴───────────────┘\n", "\n" ], @@ -266,13 +257,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_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", + "│ dense_3 (\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_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", + "│ 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", "├─────────────────────────────────┼────────────────────────┼───────────────┤\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", + "│ 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", "├─────────────────────────────────┼────────────────────────┼───────────────┤\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", + "│ dense_6 (\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" ] }, @@ -335,17 +326,17 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ - "Model: \"sequential_4\"\n", + "Model: \"sequential_2\"\n", "\n" ], "text/plain": [ - "\u001b[1mModel: \"sequential_4\"\u001b[0m\n" + "\u001b[1mModel: \"sequential_2\"\u001b[0m\n" ] }, "metadata": {}, @@ -357,15 +348,15 @@ "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n", "┃ Layer (type) ┃ Output Shape ┃ Param # ┃\n", "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n", - "│ dense_16 (Dense) │ (None, 128) │ 1,152 │\n", + "│ dense_7 (Dense) │ (None, 128) │ 1,152 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dense_17 (Dense) │ (None, 256) │ 33,024 │\n", + "│ dense_8 (Dense) │ (None, 256) │ 33,024 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dense_18 (Dense) │ (None, 512) │ 131,584 │\n", + "│ dense_9 (Dense) │ (None, 512) │ 131,584 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dense_19 (Dense) │ (None, 256) │ 131,328 │\n", + "│ dense_10 (Dense) │ (None, 256) │ 131,328 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", - "│ dense_20 (Dense) │ (None, 8) │ 2,056 │\n", + "│ dense_11 (Dense) │ (None, 8) │ 2,056 │\n", "└─────────────────────────────────┴────────────────────────┴───────────────┘\n", "\n" ], @@ -373,15 +364,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_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", + "│ dense_7 (\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_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", + "│ 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", "├─────────────────────────────────┼────────────────────────┼───────────────┤\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", + "│ 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", "├─────────────────────────────────┼────────────────────────┼───────────────┤\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", + "│ 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", "├─────────────────────────────────┼────────────────────────┼───────────────┤\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", + "│ dense_11 (\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" ] }, @@ -528,6 +519,7 @@ "outputs": [], "source": [ "# os.chdir('/mnt/beegfs/home/signer/projects/model-training')\n", + "# data_file = h5py.File(\"barite_50_ai_20k.h5\")\n", "data_file = h5py.File(\"barite_50_4_corner.h5\")\n", "\n", "design = data_file[\"design\"]\n", @@ -566,14 +558,14 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "/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", + "/Users/hannessigner/miniconda3/envs/ai/lib/python3.11/site-packages/sklearn/base.py:1473: 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" ] }, @@ -596,29 +588,29 @@ "\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", + "preprocess.scale_fit(X_train, y_train, scaling = \"global\")\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": 12, + "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + " " ] }, - "execution_count": 12, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaEAAAGdCAYAAAC7EMwUAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAI0dJREFUeJzt3X94VPWB7/HPSSaZJDAZiEKGSLSxpP5isVewFtoKVUnlcS3WbdeKj8Vq96qAS8rtoui9V+zeJUhXqm4Ua+2qbVdx24K6vdVL7qOE9nJ9NiBZKaystCnmImlAYWb4kcmP+d4/bEZiZs5kkpl8Zybv1/PMH5xzZvLtoZy3J/M95zjGGCMAACwosD0AAMDYRYQAANYQIQCANUQIAGANEQIAWEOEAADWECEAgDVECABgjcf2AD4uGo3qvffek8/nk+M4tocDAEiRMUbhcFhVVVUqKHA/18m6CL333nuqrq62PQwAwAi1t7dr6tSprttkXYR8Pp8k6Xc7q+UbP7q/LSxyChOu6zF9GfmZ/3apR58J/c51m7/UnyvixPmr4o5LwOhz+Q2N8+nz4y6v6A7pH/c87vqxfdeNU++DZw5rSDaOXW7Cx6P65Mz22PHcTdZFqP9XcL7xBSr3jXaEEv+8ngwd8Mc5hSpPsk2RU6S+eBESEQJGnVuECr1xlxcVepP+O+8rctQ7zGOejWPXUAzlKxUmJgAArCFCAABriBAAwJqs+04okwrk/vtJty/w3N4bTfLdzGPHPhl/hTH6yslW1/f2b8f3P0CWcPmOpfCPx+Iv7z2e9GOdAz2u692OQcM9dknJj1+ZxpmQLcZo7rp3VNPzvutm7RqviBLPfAGQ/YKFpXq/YJzrNgX/GlHhQ0dHaUTZgwjZ8KcAzXz2XdfNPnBK9d/0ORku2gVyWq9TqP8+aaG6fO6/fPI8dGzMhYgIjbYUArSy8ms66CSfZw8g+/2+eJJ+9sxMQvQxRGg0pRqgoomjNDAAo+HwBT5C9DFEaLQQIAAiRB9HhEYDAQJwGkL0ESI0Cr6wfj8BAjBASiH6h2OjMygLHGOy6y6YoVBIfr9fnfvOSfu949xu8idJEZN4nr7HZZq06zz7UFSeC95Voctu/kAl+k7p1TpYMPjuUtGTJxN/NoCsUlBW5rr+ne/OGLTsgoMH9fxjj6s8Ekn4PuN11PvOJyRP/JmyvUp8nZDXKXIdUyZucBoKRzX5vAMKBoMqL3e/ax5nQpnWbVwDJEn/VhiIGyAA+e/fzzpLb9Z8wnUbJ2Kk6OiMZ7QRIQCANUQIAGANEQIAWEOEAADWECEAgDU59yiHZLclL3R5zO3JaLfre8sKihOuc5vGeKTvVMJ13taIvPrwQQyJRh7tiyp6KvFnAMgNyf4dT9sY/5EOZYeST5M2b0dkZsR/fLjbNOyRHPf6jPuUvHQ8BoIzoQwq3tmtijuOSUocIEna7lSNyngAZKf/O+H8pNsU3dAhZ697UHIREcqQ4p3dOmPRURWcdP8vhcedi7XNqR6lUQHIRv9z8iyFvu3+vCEnGFXRXxzKuxARoQwYaoA2VH9Jm51PjdKoAGSz8ArfmAwREUqzlAIUmD1KowKQC8ZiiIhQGhEgACM11kJEhNKEAAFIl7EUIiKUBgQIQLqlEiLtSXwH7myXtdcJFTmFKopzzU+y2473ujyOwW0+/FA+Ox5nR5fGfe24CnrcA/RE0Uy9eGSSnCP7ByzPsidpABiJJP+end/uT7ju6u+vjPMG6c7Pvqolb2xJ/JnBqPQXB9XziykyFw4+xiU77rk9wqYgyXlKosfjFDnu13MO/BkYNmdHl4q+3qGyHvfT4SeKZmqz54JRGhWAfLJhztV6/LN1rtvk8q/miNAw9QfISfIruAfnLSRAAEZkw5yr1btigus2uRoiIjQMqQTop5fMHaVRAchnfd+ZmJchIkIpIkAAbMnHEBGhFBAgALblW4iI0BARIADZIpUQZfv07aydot1j+tQTZ7pjskc5FCj+lMH+zxwOZ0eXer76voq7k0zDHjdbr+8J6Kw9+wYs7+vqGtbPBZBfoi7HgrN+si/hOkm6MLBs4IKA9NdX/S8t/99DmL7984DMRfEfA+FxOWYmk+iY2pPkERCn40woif4zoHHdSaZhj5utF8tmjNKoAEB6tO5LeuSqIUzf/mr2PgaCCLkY6q/gCBAAWx6t+1JOf0dEhBIYaoD+9tqFBAiAVbk8WYEIxZFKgJ75wuWjNCoASCxXQ0SEPoYAAchVuRgiInQaAgQg1+VaiByTZbdxDoVC8vv96tx3jsp9aWykMQruDqvgSPypg54/9Kn4ga7kNyONMwmh78j7aRsmAMRTeOYZCdcdvPm8Qcvu3O5+921Jivod9f3XM2TOSjBNO+CROd/9LtzxhMJRTT7vgILBoMrLy123zdrrhNLKGBWu/kCTfxga0ccwCw5Artgw52pJcg1RQdCo4G+OuH5O73cmqG/FxLSObcAYMvbJ2eJPAfIQIABjzIY5Vyd9MF4ynr8/psKHjqZpRHE+P2OfnA3SFKAH5y3U63sCaRoUAIye8AqfJKn8+yeG/Rmeh45Jkvr+S/rPiPL3TCiNAeJecABy2VAeFZ6M56HMnBHlZ4TSFKB1cwkQgPyQrSHKvwilMUA/mUmAAOSPbAxRfkWIAAGAq2wLUc5dJ/TjPVW64Rs74763JNij4pPDe1xDvyeKZmqz54JBy91uwQ4ANhWUlCRcZ6ZPi7v85oOv6+b3mkf0c82EAmnc4MfrhKJGEw5F8/M6ofEdXSo/NLwgfOAp0+bAbJkEzyR6p9OotXDKSIYHADnhJ2d9UfvGnSXfp47FXV8YNVr2myaVhHsTfoZzLCrFebv7U98GyrkIOX3DO3E7PH68VtbcooMlZyb+7Pf3D3dYAJBz/nXCp7T/ivEJ11d+6wN97ZadriEaqZz7Tsikktg/OTx+vL6+bKlrgAAAAx2+wKefPTNTXb7Mna/kXIRSbVB/gNomTcrIeAAgn2U6RDkXoVQQIAAYuUyGKG8jRIAAIH0yFaKsnaL9xf90jzyF3kHrp7+7R+s7f+76GR+oRN8pvVoHCwZODYyeOuX+w7NrVwDAyDnuX2IUlJYmXlcx+F5x53Yf1trOn8tnEj/2JiTJL+XnFO0jhT4d9PgTrj8cLdWj3s8OChAAYOR+XzxJd0/+qpYc3aqJTvzLZcLGSN1Du5g15yJ02FOub025JeH66AeZu+U4AEBqK56kv6n8mvoqJ8Rd39sXkXatHdJn5e13QgCA7EeEAADWECEAgDVECABgDRECAFgzotlxDQ0Nuvfee7V8+XI9/PDDkiRjjB544AE9+eSTOnr0qC677DI99thjuuiii1L6bNP6toxTNGh5L9fyAMDQJTlmRk+eHNY6SdLB9xL8yJ6kw+o37DOhlpYWPfnkk5oxY8aA5evWrdP69evV2NiolpYWBQIBzZ8/X+FweLg/CgCQp4YVoePHj+umm27SD3/4Q02c+NEVtcYYPfzww7rvvvt0/fXXa/r06Xr22Wd18uRJPffcc2kbNAAgPwwrQkuXLtU111yjq666asDytrY2dXR0qK6uLrbM6/Vq7ty52r59e9zPikQiCoVCA14AgLEh5e+ENm7cqDfffFMtLS2D1nV0dEiSKisrByyvrKzUgQMH4n5eQ0ODHnjggVSHAQDIAymdCbW3t2v58uX66U9/qhKXZ5o7H7thnjFm0LJ+q1atUjAYjL3a29tTGRIAIIeldCa0c+dOdXZ2aubMmbFlfX192rZtmxobG7Vv3z5JH54RTZkyJbZNZ2fnoLOjfl6vV17v4LtlAwDyX0pnQldeeaV2796t1tbW2GvWrFm66aab1NraqnPPPVeBQEBNTU2x93R3d6u5uVlz5sxJbWTGxH8BALJDouN0CsfqlM6EfD6fpk+fPmDZuHHjdMYZZ8SW19fXa82aNaqtrVVtba3WrFmjsrIyLVq0KJUfBQAYA9L+KIeVK1fq1KlTWrJkSexi1S1btsjn86X7RwEAclzWPll1nhbKE+eOCQCA7NZrerRVLw3pyarcOw4AYA0RAgBYQ4QAANYQIQCANUQIAGANEQIAWEOEAADWECEAgDVECABgDRECAFhDhAAA1hAhAIA1RAgAYA0RAgBYQ4QAANYQIQCANUQIAGANEQIAWEOEAADWECEAgDVECABgDRECAFhDhAAA1hAhAIA1RAgAYA0RAgBYQ4QAANYQIQCANUQIAGANEQIAWEOEAADWECEAgDVECABgDRECAFhDhAAA1hAhAIA1RAgAYA0RAgBYQ4QAANYQIQCANUQIAGANEQIAWEOEAADWECEAgDVECABgDRECAFhDhAAA1hAhAIA1RAgAYA0RAgBYQ4QAANYQIQCANUQIAGANEQIAWEOEAADWECEAgDVECABgDRECAFhDhAAA1hAhAIA1RAgAYA0RAgBYQ4QAANakFKENGzZoxowZKi8vV3l5uWbPnq1XXnkltt4Yo9WrV6uqqkqlpaWaN2+e9uzZk/ZBAwDyQ0oRmjp1qtauXasdO3Zox44duuKKK7Rw4cJYaNatW6f169ersbFRLS0tCgQCmj9/vsLhcEYGDwDIbY4xxozkAyoqKvS9731Pt956q6qqqlRfX6+7775bkhSJRFRZWakHH3xQt99++5A+LxQKye/3a54WyuMUjWRoAAALek2PtuolBYNBlZeXu2477O+E+vr6tHHjRp04cUKzZ89WW1ubOjo6VFdXF9vG6/Vq7ty52r59e8LPiUQiCoVCA14AgLEh5Qjt3r1b48ePl9fr1R133KHNmzfrwgsvVEdHhySpsrJywPaVlZWxdfE0NDTI7/fHXtXV1akOCQCQo1KO0HnnnafW1la98cYbuvPOO7V48WLt3bs3tt5xnAHbG2MGLTvdqlWrFAwGY6/29vZUhwQAyFGeVN9QXFysadOmSZJmzZqllpYWPfLII7HvgTo6OjRlypTY9p2dnYPOjk7n9Xrl9XpTHQYAIA+M+DohY4wikYhqamoUCATU1NQUW9fd3a3m5mbNmTNnpD8GAJCHUjoTuvfee7VgwQJVV1crHA5r48aN2rp1q1599VU5jqP6+nqtWbNGtbW1qq2t1Zo1a1RWVqZFixZlavwAgByWUoT++Mc/6uabb9ahQ4fk9/s1Y8YMvfrqq5o/f74kaeXKlTp16pSWLFmio0eP6rLLLtOWLVvk8/kyMngAQG4b8XVC6cZ1QgCQ20blOiEAAEaKCAEArCFCAABriBAAwBoiBACwhggBAKwhQgAAa4gQAMAaIgQAsIYIAQCsIUIAAGuIEADAGiIEALCGCAEArCFCAABriBAAwBoiBACwhggBAKwhQgAAa4gQAMAaIgQAsIYIAQCsIUIAAGuIEADAGiIEALCGCAEArCFCAABriBAAwBoiBACwhggBAKwhQgAAa4gQAMAaIgQAsIYIAQCsIUIAAGuIEADAGiIEALCGCAEArCFCAABriBAAwBoiBACwhggBAKwhQgAAa4gQAMAaIgQAsIYIAQCsIUIAAGuIEADAGiIEALCGCAEArCFCAABriBAAwBoiBACwhggBAKwhQgAAa4gQAMAaIgQAsIYIAQCsIUIAAGuIEADAGiIEALCGCAEArCFCAABrUopQQ0ODLr30Uvl8Pk2ePFnXXXed9u3bN2AbY4xWr16tqqoqlZaWat68edqzZ09aBw0AyA8pRai5uVlLly7VG2+8oaamJvX29qqurk4nTpyIbbNu3TqtX79ejY2NamlpUSAQ0Pz58xUOh9M+eABAbnOMMWa4bz58+LAmT56s5uZmXX755TLGqKqqSvX19br77rslSZFIRJWVlXrwwQd1++23J/3MUCgkv9+veVooj1M03KEBACzpNT3aqpcUDAZVXl7uuu2IvhMKBoOSpIqKCklSW1ubOjo6VFdXF9vG6/Vq7ty52r59e9zPiEQiCoVCA14AgLFh2BEyxmjFihX6/Oc/r+nTp0uSOjo6JEmVlZUDtq2srIyt+7iGhgb5/f7Yq7q6erhDAgDkmGFHaNmyZXrrrbf0/PPPD1rnOM6APxtjBi3rt2rVKgWDwdirvb19uEMCAOQYz3DedNddd+nll1/Wtm3bNHXq1NjyQCAg6cMzoilTpsSWd3Z2Djo76uf1euX1eoczDABAjkvpTMgYo2XLlmnTpk167bXXVFNTM2B9TU2NAoGAmpqaYsu6u7vV3NysOXPmpGfEAIC8kdKZ0NKlS/Xcc8/ppZdeks/ni33P4/f7VVpaKsdxVF9frzVr1qi2tla1tbVas2aNysrKtGjRooz8DwAA5K6UIrRhwwZJ0rx58wYsf/rpp3XLLbdIklauXKlTp05pyZIlOnr0qC677DJt2bJFPp8vLQMGAOSPEV0nlAlcJwQAuW3UrhMCAGAkiBAAwBoiBACwhggBAKwhQgAAa4gQAMAaIgQAsIYIAQCsIUIAAGuIEADAGiIEALCGCAEArCFCAABriBAAwBoiBACwhggBAKwhQgAAa4gQAMAaIgQAsIYIAQCsIUIAAGuIEADAGiIEALCGCAEArCFCAABriBAAwBoiBACwhggBAKwhQgAAa4gQAMAaIgQAsIYIAQCsIUIAAGuIEADAGiIEALCGCAEArCFCAABriBAAwBoiBACwhggBAKwhQgAAa4gQAMAaIgQAsIYIAQCsIUIAAGuIEADAGiIEALCGCAEArCFCAABriBAAwBoiBACwhggBAKwhQgAAa4gQAMAaIgQAsIYIAQCsIUIAAGuIEADAGiIEALCGCAEArCFCAABriBAAwJqUI7Rt2zZde+21qqqqkuM4evHFFwesN8Zo9erVqqqqUmlpqebNm6c9e/aka7wAgDyScoROnDihiy++WI2NjXHXr1u3TuvXr1djY6NaWloUCAQ0f/58hcPhEQ8WAJBfPKm+YcGCBVqwYEHcdcYYPfzww7rvvvt0/fXXS5KeffZZVVZW6rnnntPtt98+stECAPJKWr8TamtrU0dHh+rq6mLLvF6v5s6dq+3bt6fzRwEA8kDKZ0JuOjo6JEmVlZUDlldWVurAgQNx3xOJRBSJRGJ/DoVC6RwSACCLZWR2nOM4A/5sjBm0rF9DQ4P8fn/sVV1dnYkhAQCyUFojFAgEJH10RtSvs7Nz0NlRv1WrVikYDMZe7e3t6RwSACCLpTVCNTU1CgQCampqii3r7u5Wc3Oz5syZE/c9Xq9X5eXlA14AgLEh5e+Ejh8/rv3798f+3NbWptbWVlVUVOjss89WfX291qxZo9raWtXW1mrNmjUqKyvTokWLUvtBjvPh6+OMSXXIAIBMSPA1i+RIQzxUpxyhHTt26Itf/GLszytWrJAkLV68WM8884xWrlypU6dOacmSJTp69Kguu+wybdmyRT6fL9UfBQDIc44x2XVqEQqF5Pf7Nc+5Th6naPAG2TVcABi7EpwJ9ZoebTUvKhgMJv2KhXvHAQCsIUIAAGuIEADAmrTeMWE0lJhezdDhhOsPq1RtzoTRGxAAjDXGqFbHNFGRuKsjpldbh/hRWRsh59Pnyyn0Dlo+5f/9Tn/X8aLre5/xfFrPF88YtDx66pT7D2XSA4B8k3Aa9YcKSksTr6uYOHihMbot+Bt9NfxmwmnYIUkPDXF4OffruPLeJCGRdEtPq27sfmsURgMAY8jpAUqTnItQkqjHECIASKMMBEjKwQgVDPUyXBEiAEiLDAVIysEI9aW4PSECgBHIYICkLJ6YkNgQfx93mlt6WiVJ/6TaNI8FAPJYhgMk5eCZ0HDnr93S06pF5t/TOhYAyFujECApB8+EThYMnrY9VN80v9WXzf6E6/9DE/U9XaqwUzzsnwEAuaDCnNJK06JPnIz/NOsCYzRRXRkfR9bewLRz3zkq9w0+UXvq3bN10ab34r63JNijP3v6PY3r7o673ij5L/P2a4LuKZmvsDMwdtGuzP9lAMBwFJSUJFxnpk8btKyiO6y/f/sfNTVydNg/s6vcI89fjZfGDz5OhyJGZ6w9OqQbmObcmVCkvEhv3nJOwvV/V3ad/mnDEyqPE42hfJs0Tce0tqspbogAINelI0AnKor0zz+epUWXdMRd3xeOSmuH9vk5951QMnumTtVNd96hkMt/GSTTHyKfiX9LCgDIRekM0NFzx6VlTHkXIYkQAcDHZWOApDyNkESIAKBftgZIyuMISekOUfzJDgCQzbI5QFKeR0hKX4jWqZkQAcgpFeZkVgdIysEp2sPl7I7I3H9YBe9H464vPBhVwUn3XfG7wjN094Q/1/GCgUHrO/J+2sYJAPEUnnlGwnUHbz5v0LIzj4f09D836hPHjrh+rvE5MoEEE6UDher9H2fI1KZ27WQoHNXk8w7k5xTt4TJ/5tWRnyX+S1TEaP/8Cs1tS3xXhU/2va8Hj/0ybogAIFsMNUAnv+xVYeMUyZP67dDSJe9/HTdkXkffvvabaq65wHWz/hCNj3LxKoDsk0qAjj4ywWqAJCI0QI/HQ4gA5KxcC5BEhAYhRAByUS4GSCJCcaUaImbNAbApVwMkEaGEUgkR07cB2FLRdyJnAyQRIVdDDdE0BQkRgFFX0XdC6479S84GSMrB64QKhvFk1X7R4T4SL2L0fxaU6oq33R+Kx3VEAIbL7TogSXrnbz414M+TQiE9t6FR577vfnzpWzhOvf8wKWGAMnFMTeU6Ic6EhsLraOk3btFr5zNZAYB96QpQNiBCQ9Tt8RAiANblU4AkIpQSQgTApnwLkESEUkaIANiQjwGSiNCwpBoiZs0BGImKvhN5GSCJCA1bKiFi+jaA4eqfhp2PAZKyeIr20f84N+4U7R7T5/r+qOI/qkGSvE6R63uTfXZcEaM3rih1vfu2JO3XBN1TMl9hxztgebSLX9cBY0WBy3PN3rvzkkHLhnonBLcAFTmFru+NmJ6E6wqSnKck+uxQOKqJn/o9U7RHxRDvvs2jwgGkIh0BygVEKA2GfmcFQgQgubESIIkIpQ0hApAOYylAEhFKK0IEYCTGWoAkIpR2qYeIWXMAxmaAJCKUEamEiOnbACrMyTEZIEny2B5AIj2mTz1xZo8nu+Nrkcs07JNR94N9WUGx63gSefXb6+Kv+GujrtuKVdKc+OdOU1Bf19v6oXNx/A2yawY9ADeO+/HJTJ8Wd/nitpf0iSNJAnRt2bCmYY/kuNdnEl/yIiU+LvYked/pOBPKJK+jY+v8STc7U6dGYTAAstUZPeGk2/R+P7/OgPoRoQwzif8jAwCGLg8DJBEhAIBFRAgAYA0RAgBYQ4QAANYQoSxQpl7bQwBgizEq6xu7d0/J2uuEEonK/bqZqMv1PG7z4SX3W5p7lHge/pmFpYk/tMKoozyiQCiUcJPP6pBuKnxHzxfPGLQuevJk4s8GkFUKSl2OBZLe+fr4gQuM0T2//KUuOt7u+r7ouUUqKHKkBNdJuh27kh33hvUImzTiTCjTihz91W23KuTyHBFJuqWnVTd2vzVKgwJg3Z8C9J+3NrtvdkaBep+enPRC2FxFhEbBnqlTddOddxAiAB9KIUA9m6bI1ObvBYdEaJQQIgCSCNDHEKFRRIiAMY4ADUKERhkhAsYoAhQXEbIglRDdYN4epVEByKRv9uwiQHHk3BTtkUh2W/KCDDV52YJX4y5/+XMzdONXW1ToMu38G9qrTaZWPS63ageQHQoqJsZdPr6vS3/53m9d32tKnGEHyO3Yley4ZxtnQhZ1XliuN0vOdt2mWFHXSAHIfl7Tm/RgG726bEydAfUjQpb18VcAQJKK8vM6oGQ4AgIArCFCAABriBAAwBoiBACwJmMRevzxx1VTU6OSkhLNnDlTv/71rzP1o3JaqLBUJ50idcmjLsejLnkUUaG6VaBeFahTpcyNA3Jc1HF0uHC8ooWO+ooc9RY76vEWqKekQN0lBYqM98hMGJvnBI4xJu3HuBdeeEE333yzHn/8cX3uc5/TD37wAz311FPau3evzj7bfUpyKBSS3+9X575zVO4b3b+UIpdrcTJ1u/Nrv/wN1/Xmzb0uK8kTMOpc7mbtXHKh61v/5eUfp3s0kuwcu9yEwlFNPu+AgsGgysvLXbfNyFF+/fr1uu222/Stb31LF1xwgR5++GFVV1drw4YNmfhxAIAclfYIdXd3a+fOnaqrqxuwvK6uTtu3b0/3jwMA5LC037bnyJEj6uvrU2Vl5YDllZWV6ujoGLR9JBJRJPLRo21DLk8gBQDkl4x96eJ87PemxphByySpoaFBfr8/9qqurs7UkAAAWSbtETrzzDNVWFg46Kyns7Nz0NmRJK1atUrBYDD2am93f9Y6ACB/pP3XccXFxZo5c6aampr0la98Jba8qalJCxcuHLS91+uV1+uN/bl/sl74+Ojf+bXIZdZLT4buRNvbF3Fdb0yP28o0jwZAci6z45L8ew6FM3McsXHsctN//B7S5GuTARs3bjRFRUXmRz/6kdm7d6+pr68348aNM3/4wx+Svre9vd1I4sWLFy9eOf5qb29PeszPyPOEbrjhBr3//vv67ne/q0OHDmn69On61a9+pXPOOSfpe6uqqtTe3i6fzyfHcRQKhVRdXa329vak883HMvbT0LCfhob9NDTsp/iMMQqHw6qqqkq6bUYuVk2n/otXh3LR01jGfhoa9tPQsJ+Ghv00cmPzPhEAgKxAhAAA1mR9hLxer+6///4BM+gwGPtpaNhPQ8N+Ghr208hl/XdCAID8lfVnQgCA/EWEAADWECEAgDVECABgTdZHiMeED7Rt2zZde+21qqqqkuM4evHFFwesN8Zo9erVqqqqUmlpqebNm6c9e/bYGawlDQ0NuvTSS+Xz+TR58mRdd9112rdv34Bt2E/Shg0bNGPGDJWXl6u8vFyzZ8/WK6+8ElvPPoqvoaFBjuOovr4+tox9NXxZHaEXXnhB9fX1uu+++7Rr1y594Qtf0IIFC/Tuu+/aHpo1J06c0MUXX6zGxsa469etW6f169ersbFRLS0tCgQCmj9/vsLh8CiP1J7m5mYtXbpUb7zxhpqamtTb26u6ujqdOHEitg37SZo6darWrl2rHTt2aMeOHbriiiu0cOHC2MGTfTRYS0uLnnzySc2YMWPAcvbVCIzgPqUZ95nPfMbccccdA5adf/755p577rE0ouwiyWzevDn252g0agKBgFm7dm1sWVdXl/H7/eaJJ56wMMLs0NnZaSSZ5uZmYwz7yc3EiRPNU089xT6KIxwOm9raWtPU1GTmzp1rli9fbozh/08jlbVnQjwmPHVtbW3q6OgYsM+8Xq/mzp07pvdZMBiUJFVUVEhiP8XT19enjRs36sSJE5o9ezb7KI6lS5fqmmuu0VVXXTVgOftqZDJyF+10SPUx4VBsv8TbZwcOHLAxJOuMMVqxYoU+//nPa/r06ZLYT6fbvXu3Zs+era6uLo0fP16bN2/WhRdeGDt4so8+tHHjRr355ptqaWkZtI7/P41M1kao31AfE46PsM8+smzZMr311lv6zW9+M2gd+0k677zz1NraqmPHjukXv/iFFi9erObm5th69pHU3t6u5cuXa8uWLSopKUm4HftqeLL213GpPiYcUiAQkCT22Z/cddddevnll/X6669r6tSpseXsp48UFxdr2rRpmjVrlhoaGnTxxRfrkUceYR+dZufOners7NTMmTPl8Xjk8XjU3NysRx99VB6PJ7Y/2FfDk7UROv0x4adramrSnDlzLI0qu9XU1CgQCAzYZ93d3Wpubh5T+8wYo2XLlmnTpk167bXXVFNTM2A9+ykxY4wikQj76DRXXnmldu/erdbW1thr1qxZuummm9Ta2qpzzz2XfTUS9uZEJDeSx4Tnq3A4bHbt2mV27dplJJn169ebXbt2mQMHDhhjjFm7dq3x+/1m06ZNZvfu3ebGG280U6ZMMaFQyPLIR8+dd95p/H6/2bp1qzl06FDsdfLkydg27CdjVq1aZbZt22ba2trMW2+9Ze69915TUFBgtmzZYoxhH7k5fXacMeyrkcjqCBljzGOPPWbOOeccU1xcbC655JLYNNux6vXXX4/7LPfFixcbYz6cLnr//febQCBgvF6vufzyy83u3bvtDnqUxds/kszTTz8d24b9ZMytt94a+7c1adIkc+WVV8YCZAz7yM3HI8S+Gj4e5QAAsCZrvxMCAOQ/IgQAsIYIAQCsIUIAAGuIEADAGiIEALCGCAEArCFCAABriBAAwBoiBACwhggBAKwhQgAAa/4/IyQBww8ZPt0AAAAASUVORK5CYII=", "text/plain": [ " " ] @@ -642,7 +634,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 27, "metadata": {}, "outputs": [], "source": [ @@ -651,7 +643,7 @@ }, { "cell_type": "code", - "execution_count": 71, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -665,8 +657,8 @@ " 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", + " predicted_inverse = predicted #* scale_y + min_y\n", + " results_inverse = results #* scale_X + min_X\n", "\n", " # mass balance\n", " dBa = tf.keras.backend.abs(\n", @@ -687,8 +679,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", - " total_loss = huber_loss\n", + " total_loss = h1 * huber_loss + h2 * dBa + h3 * dSr #+ h4 * h2o_ratio**2\n", + " # total_loss = huber_loss\n", " return total_loss\n", "\n", " return loss" @@ -696,7 +688,7 @@ }, { "cell_type": "code", - "execution_count": 72, + "execution_count": 29, "metadata": {}, "outputs": [], "source": [ @@ -713,7 +705,7 @@ }, { "cell_type": "code", - "execution_count": 73, + "execution_count": 30, "metadata": {}, "outputs": [], "source": [ @@ -724,7 +716,7 @@ " history = model.fit(X_train.loc[:, X_train.columns != \"Class\"], \n", " y_train.loc[:, y_train.columns != \"Class\"], \n", " batch_size=batch_size, \n", - " epochs=50, \n", + " epochs=100, \n", " validation_data=(X_val.loc[:, X_val.columns != \"Class\"], y_val.loc[:, y_val.columns != \"Class\"]),\n", " callbacks=[callback])\n", " \n", @@ -736,120 +728,214 @@ }, { "cell_type": "code", - "execution_count": 74, + "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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" + "Epoch 1/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 0.0073 - val_loss: 0.0025\n", + "Epoch 2/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m19s\u001b[0m 11ms/step - loss: 0.0043 - val_loss: 0.0035\n", + "Epoch 3/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 0.0035 - val_loss: 0.0029\n", + "Epoch 4/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 0.0031 - val_loss: 0.0030\n", + "Epoch 5/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 0.0031 - val_loss: 0.0017\n", + "Epoch 6/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 0.0025 - val_loss: 0.0019\n", + "Epoch 7/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 0.0024 - val_loss: 0.0018\n", + "Epoch 8/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 0.0021 - val_loss: 0.0013\n", + "Epoch 9/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 0.0020 - val_loss: 0.0023\n", + "Epoch 10/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 0.0019 - val_loss: 0.0012\n", + "Epoch 11/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 0.0017 - val_loss: 0.0010\n", + "Epoch 12/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 0.0016 - val_loss: 0.0011\n", + "Epoch 13/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 0.0014 - val_loss: 0.0024\n", + "Epoch 14/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 0.0013 - val_loss: 0.0010\n", + "Epoch 15/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 0.0013 - val_loss: 0.0013\n", + "Epoch 16/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 0.0011 - val_loss: 7.8773e-04\n", + "Epoch 17/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 9.8307e-04 - val_loss: 9.4317e-04\n", + "Epoch 18/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 0.0011 - val_loss: 7.2556e-04\n", + "Epoch 19/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 8.6145e-04 - val_loss: 0.0012\n", + "Epoch 20/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 8.7931e-04 - val_loss: 7.9255e-04\n", + "Epoch 21/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 8.1421e-04 - val_loss: 8.6545e-04\n", + "Epoch 22/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m19s\u001b[0m 11ms/step - loss: 8.0980e-04 - val_loss: 8.0041e-04\n", + "Epoch 23/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 7.0201e-04 - val_loss: 7.4177e-04\n", + "Epoch 24/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m19s\u001b[0m 11ms/step - loss: 7.1057e-04 - val_loss: 8.0948e-04\n", + "Epoch 25/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 6.5622e-04 - val_loss: 7.4124e-04\n", + "Epoch 26/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 6.3500e-04 - val_loss: 5.9376e-04\n", + "Epoch 27/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 5.9934e-04 - val_loss: 6.4478e-04\n", + "Epoch 28/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 5.8949e-04 - val_loss: 7.3300e-04\n", + "Epoch 29/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 5.7806e-04 - val_loss: 6.7011e-04\n", + "Epoch 30/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 5.6589e-04 - val_loss: 5.5847e-04\n", + "Epoch 31/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 5.3306e-04 - val_loss: 5.4670e-04\n", + "Epoch 32/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 5.2881e-04 - val_loss: 6.1837e-04\n", + "Epoch 33/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 5.1513e-04 - val_loss: 4.9995e-04\n", + "Epoch 34/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 5.0624e-04 - val_loss: 5.4048e-04\n", + "Epoch 35/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 5.0185e-04 - val_loss: 5.5650e-04\n", + "Epoch 36/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 4.9359e-04 - val_loss: 4.8311e-04\n", + "Epoch 37/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 4.7914e-04 - val_loss: 4.7833e-04\n", + "Epoch 38/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 4.7096e-04 - val_loss: 4.5319e-04\n", + "Epoch 39/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m19s\u001b[0m 11ms/step - loss: 4.6474e-04 - val_loss: 5.0544e-04\n", + "Epoch 40/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 4.6506e-04 - val_loss: 4.3838e-04\n", + "Epoch 41/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 4.5502e-04 - val_loss: 4.6796e-04\n", + "Epoch 42/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 4.5163e-04 - val_loss: 4.4342e-04\n", + "Epoch 43/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m19s\u001b[0m 11ms/step - loss: 4.4623e-04 - val_loss: 4.4409e-04\n", + "Epoch 44/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 4.4326e-04 - val_loss: 4.6563e-04\n", + "Epoch 45/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m16s\u001b[0m 10ms/step - loss: 4.3963e-04 - val_loss: 4.4313e-04\n", + "Epoch 46/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 10ms/step - loss: 4.3694e-04 - val_loss: 4.4041e-04\n", + "Epoch 47/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 4.3481e-04 - val_loss: 4.6735e-04\n", + "Epoch 48/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m21s\u001b[0m 12ms/step - loss: 4.3270e-04 - val_loss: 4.5155e-04\n", + "Epoch 49/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m20s\u001b[0m 12ms/step - loss: 4.2641e-04 - val_loss: 4.2664e-04\n", + "Epoch 50/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 4.2606e-04 - val_loss: 4.1384e-04\n", + "Epoch 51/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m980s\u001b[0m 581ms/step - loss: 4.2314e-04 - val_loss: 4.3865e-04\n", + "Epoch 52/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 4.2277e-04 - val_loss: 4.4696e-04\n", + "Epoch 53/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 4.2034e-04 - val_loss: 4.1750e-04\n", + "Epoch 54/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m65s\u001b[0m 39ms/step - loss: 4.1834e-04 - val_loss: 4.2273e-04\n", + "Epoch 55/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m19s\u001b[0m 11ms/step - loss: 4.1589e-04 - val_loss: 4.1261e-04\n", + "Epoch 56/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m21s\u001b[0m 13ms/step - loss: 4.1487e-04 - val_loss: 4.4959e-04\n", + "Epoch 57/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m21s\u001b[0m 13ms/step - loss: 4.1586e-04 - val_loss: 4.1003e-04\n", + "Epoch 58/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m157s\u001b[0m 93ms/step - loss: 4.1412e-04 - val_loss: 4.1569e-04\n", + "Epoch 59/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m20s\u001b[0m 12ms/step - loss: 4.1268e-04 - val_loss: 4.0756e-04\n", + "Epoch 60/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m21s\u001b[0m 12ms/step - loss: 4.1062e-04 - val_loss: 4.1501e-04\n", + "Epoch 61/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 14ms/step - loss: 4.0971e-04 - val_loss: 4.1436e-04\n", + "Epoch 62/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m25s\u001b[0m 15ms/step - loss: 4.0963e-04 - val_loss: 4.0847e-04\n", + "Epoch 63/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m29s\u001b[0m 17ms/step - loss: 4.0908e-04 - val_loss: 4.1114e-04\n", + "Epoch 64/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m32s\u001b[0m 19ms/step - loss: 4.0847e-04 - val_loss: 4.0660e-04\n", + "Epoch 65/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m36s\u001b[0m 21ms/step - loss: 4.0808e-04 - val_loss: 4.0996e-04\n", + "Epoch 66/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m38s\u001b[0m 22ms/step - loss: 4.0698e-04 - val_loss: 4.0384e-04\n", + "Epoch 67/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m38s\u001b[0m 23ms/step - loss: 4.0676e-04 - val_loss: 4.0728e-04\n", + "Epoch 68/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m39s\u001b[0m 23ms/step - loss: 4.0539e-04 - val_loss: 4.0679e-04\n", + "Epoch 69/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m39s\u001b[0m 23ms/step - loss: 4.0455e-04 - val_loss: 4.0366e-04\n", + "Epoch 70/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m39s\u001b[0m 23ms/step - loss: 4.0342e-04 - val_loss: 4.0677e-04\n", + "Epoch 71/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m39s\u001b[0m 23ms/step - loss: 4.0365e-04 - val_loss: 4.0675e-04\n", + "Epoch 72/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m48s\u001b[0m 28ms/step - loss: 4.0370e-04 - val_loss: 4.0298e-04\n", + "Epoch 73/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m67s\u001b[0m 40ms/step - loss: 4.0327e-04 - val_loss: 4.0212e-04\n", + "Epoch 74/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m66s\u001b[0m 39ms/step - loss: 4.0230e-04 - val_loss: 4.0181e-04\n", + "Epoch 75/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m66s\u001b[0m 39ms/step - loss: 4.0186e-04 - val_loss: 4.0174e-04\n", + "Epoch 76/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m66s\u001b[0m 39ms/step - loss: 4.0194e-04 - val_loss: 4.0180e-04\n", + "Epoch 77/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m66s\u001b[0m 39ms/step - loss: 4.0250e-04 - val_loss: 4.0450e-04\n", + "Epoch 78/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m64s\u001b[0m 38ms/step - loss: 4.0166e-04 - val_loss: 4.0060e-04\n", + "Epoch 79/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m66s\u001b[0m 39ms/step - loss: 4.0279e-04 - val_loss: 4.0026e-04\n", + "Epoch 80/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m65s\u001b[0m 38ms/step - loss: 4.0156e-04 - val_loss: 4.0022e-04\n", + "Epoch 81/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m66s\u001b[0m 39ms/step - loss: 4.0187e-04 - val_loss: 4.0012e-04\n", + "Epoch 82/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m66s\u001b[0m 39ms/step - loss: 4.0070e-04 - val_loss: 4.0000e-04\n", + "Epoch 83/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m70s\u001b[0m 42ms/step - loss: 3.9981e-04 - val_loss: 3.9985e-04\n", + "Epoch 84/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m50s\u001b[0m 30ms/step - loss: 4.0303e-04 - val_loss: 4.0034e-04\n", + "Epoch 85/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 3.9996e-04 - val_loss: 3.9949e-04\n", + "Epoch 86/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 10ms/step - loss: 4.0223e-04 - val_loss: 3.9965e-04\n", + "Epoch 87/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 4.0010e-04 - val_loss: 4.0027e-04\n", + "Epoch 88/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 3.9915e-04 - val_loss: 3.9899e-04\n", + "Epoch 89/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 10ms/step - loss: 4.0031e-04 - val_loss: 3.9913e-04\n", + "Epoch 90/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 4.0037e-04 - val_loss: 3.9903e-04\n", + "Epoch 91/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 10ms/step - loss: 4.0011e-04 - val_loss: 3.9930e-04\n", + "Epoch 92/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 3.9916e-04 - val_loss: 3.9924e-04\n", + "Epoch 93/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 3.9930e-04 - val_loss: 3.9885e-04\n", + "Epoch 94/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 10ms/step - loss: 4.0009e-04 - val_loss: 3.9866e-04\n", + "Epoch 95/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 3.9961e-04 - val_loss: 3.9870e-04\n", + "Epoch 96/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 4.0012e-04 - val_loss: 3.9863e-04\n", + "Epoch 97/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 11ms/step - loss: 4.0073e-04 - val_loss: 3.9872e-04\n", + "Epoch 98/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 4.0112e-04 - val_loss: 3.9862e-04\n", + "Epoch 99/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m17s\u001b[0m 10ms/step - loss: 3.9970e-04 - val_loss: 3.9864e-04\n", + "Epoch 100/100\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m18s\u001b[0m 10ms/step - loss: 4.0060e-04 - val_loss: 3.9856e-04\n", + "Training took 3712.1917679309845 seconds\n" ] } ], @@ -866,7 +952,7 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 32, "metadata": {}, "outputs": [], "source": [ @@ -878,100 +964,55 @@ " # backtransform min/max\n", " X = pd.DataFrame(preprocess.scaler_X.inverse_transform(X.iloc[:, X.columns != \"Class\"]), columns=columns)\n", " prediction = pd.DataFrame(preprocess.scaler_y.inverse_transform(prediction), columns=columns)\n", - " \n", - " # backtransform log\n", - " if(preprocess.state['log'] == True):\n", - " X, prediction = preprocess.funcInverse(X, prediction)\n", " \n", " # calculate mass balance\n", " dBa = np.abs((prediction[\"Ba\"] + prediction[\"Barite\"]) - (X[\"Ba\"] + X[\"Barite\"]))\n", + " print(dBa.min())\n", " dSr = np.abs((prediction[\"Sr\"] + prediction[\"Celestite\"]) - (X[\"Sr\"] + X[\"Celestite\"]))\n", - " \n", - " return dBa + dSr" + " print(dSr.min())\n", + " return dBa, dSr" ] }, { "cell_type": "code", - "execution_count": 65, + "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m 1/3938\u001b[0m \u001b[37m━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[1m1:58\u001b[0m 30ms/step" + "\u001b[1m3938/3938\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 664us/step\n", + "1.1719081515317378e-08\n", + "4.366040862180398e-11\n" ] - }, - { - "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\"]) " + "dBa, dSr = mass_balance(model_large, X_test, preprocess)" ] }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 34, "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" - ] - } - ], + "outputs": [], "source": [ - "mass_balance_results = mass_balance(model_simple, X_test, preprocess)" + "mass_balance_results = dBa + dSr" ] }, { "cell_type": "code", - "execution_count": 63, + "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "0.0" + "0.0004126984126984127" ] }, - "execution_count": 63, + "execution_count": 43, "metadata": {}, "output_type": "execute_result" } @@ -982,16 +1023,68 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Series([], dtype: float64)" + "1571 9.777670e-06\n", + "4804 6.682305e-06\n", + "9522 5.360124e-06\n", + "19062 7.792255e-06\n", + "20931 7.635390e-06\n", + "25699 8.067375e-06\n", + "26621 9.558936e-06\n", + "27291 3.264182e-06\n", + "28758 9.788952e-06\n", + "30798 9.144786e-06\n", + "30868 8.206085e-06\n", + "33577 5.763282e-06\n", + "35603 7.277309e-06\n", + "36166 8.139519e-07\n", + "37063 7.179245e-06\n", + "43690 9.914585e-06\n", + "43815 9.545191e-06\n", + "44262 6.470130e-06\n", + "44943 6.567906e-06\n", + "52627 8.729186e-06\n", + "55763 4.385958e-06\n", + "57566 3.628730e-06\n", + "60090 9.793098e-06\n", + "62479 4.789578e-06\n", + "63477 7.146393e-06\n", + "64471 7.182930e-06\n", + "66959 6.616205e-06\n", + "67640 8.551544e-06\n", + "68503 9.501419e-06\n", + "70704 9.920509e-06\n", + "75976 5.456992e-06\n", + "76018 5.254534e-06\n", + "78582 4.474446e-06\n", + "81150 7.195583e-06\n", + "87159 5.605938e-06\n", + "89481 5.571020e-06\n", + "91118 8.934794e-06\n", + "91502 9.652786e-06\n", + "92207 9.917967e-06\n", + "94182 9.915878e-06\n", + "94506 4.791335e-06\n", + "95973 6.741278e-06\n", + "99816 7.449719e-06\n", + "101503 5.096865e-06\n", + "105575 3.955416e-06\n", + "107682 5.253287e-06\n", + "107940 5.935249e-06\n", + "115812 9.169740e-06\n", + "116353 5.333948e-06\n", + "120035 9.495618e-06\n", + "120275 5.560308e-06\n", + "124877 8.157624e-06\n", + "dtype: float64" ] }, - "execution_count": 58, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" } @@ -1982,7 +2075,7 @@ ], "metadata": { "kernelspec": { - "display_name": "model-training", + "display_name": "ai", "language": "python", "name": "python3" }, @@ -1996,7 +2089,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.2" + "version": "3.11.11" } }, "nbformat": 4,