From df7cabfb3194feb644980898126fc57d9d3f35a6 Mon Sep 17 00:00:00 2001 From: Hannes Signer Date: Tue, 18 Feb 2025 20:47:24 +0100 Subject: [PATCH] update notebook to new training structure --- src/POET_Training.ipynb | 922 ++++------------------------------------ 1 file changed, 73 insertions(+), 849 deletions(-) diff --git a/src/POET_Training.ipynb b/src/POET_Training.ipynb index 5091c02..1071888 100644 --- a/src/POET_Training.ipynb +++ b/src/POET_Training.ipynb @@ -29,17 +29,7 @@ "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-02-18 16:48:16.636424: 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-18 16:48:16.655319: 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" - ] - } - ], + "outputs": [], "source": [ "import keras\n", "from keras.layers import Dense, Dropout, Input,BatchNormalization, LeakyReLU\n", @@ -571,7 +561,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -606,7 +596,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -615,14 +605,14 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "/home/signer/bin/miniconda3/envs/training/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", + "/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" ] }, @@ -636,28 +626,16 @@ "Amount class 0 after: 0.5\n", "Amount class 1 after: 0.5\n" ] - }, - { - "ename": "Exception", - "evalue": "No valid scaler type found", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mException\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[11], line 7\u001b[0m\n\u001b[1;32m 5\u001b[0m X_train, X_test, y_train, y_test \u001b[38;5;241m=\u001b[39m preprocess\u001b[38;5;241m.\u001b[39msplit(X, y, ratio \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m0.2\u001b[39m)\n\u001b[1;32m 6\u001b[0m X_train, y_train \u001b[38;5;241m=\u001b[39m preprocess\u001b[38;5;241m.\u001b[39mbalancer(X_train, y_train, strategy \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mover\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m----> 7\u001b[0m preprocess\u001b[38;5;241m.\u001b[39mscale_fit(X_train, y_train, scaling \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mglobal\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28mtype\u001b[39m\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mMinMax\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 8\u001b[0m X_train, X_test, y_train, y_test \u001b[38;5;241m=\u001b[39m preprocess\u001b[38;5;241m.\u001b[39mscale_transform(X_train, X_test, y_train, y_test)\n\u001b[1;32m 9\u001b[0m X_train, X_val, y_train, y_val \u001b[38;5;241m=\u001b[39m preprocess\u001b[38;5;241m.\u001b[39msplit(X_train, y_train, ratio \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m0.1\u001b[39m)\n", - "File \u001b[0;32m~/Documents/model-training/src/preprocessing.py:341\u001b[0m, in \u001b[0;36mpreprocessing.scale_fit\u001b[0;34m(self, X, y, scaling, type)\u001b[0m\n\u001b[1;32m 338\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mscaler_y \u001b[38;5;241m=\u001b[39m StandardScaler()\n\u001b[1;32m 340\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 341\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo valid scaler type found\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 343\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m scaling \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mindividual\u001b[39m\u001b[38;5;124m'\u001b[39m:\n\u001b[1;32m 344\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mscaler_X\u001b[38;5;241m.\u001b[39mfit(X\u001b[38;5;241m.\u001b[39miloc[:, X\u001b[38;5;241m.\u001b[39mcolumns \u001b[38;5;241m!=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mClass\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n", - "\u001b[0;31mException\u001b[0m: No valid scaler type found" - ] } ], "source": [ - "preprocess = preprocessing(func_dict_in=func_dict_in, func_dict_out=func_dict_out)\n", + "preprocess = preprocessing()\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 = \"global\", type=\"MinMax\")\n", + "preprocess.scale_fit(X_train, y_train, scaling = \"global\", type=\"standard\")\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)" ] @@ -703,7 +681,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -835,7 +813,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -845,7 +823,7 @@ " callback = keras.callbacks.EarlyStopping(monitor='loss', patience=3)\n", " history = model.fit(X_train.loc[:, X_train.columns != \"Class\"], \n", " y_train.loc[:, y_train.columns != \"Class\"], \n", - " batch_size=batch_size, \n", + " batch_size=512, \n", " epochs=100, \n", " validation_data=(X_val.loc[:, X_val.columns != \"Class\"], y_val.loc[:, y_val.columns != \"Class\"]),\n", " callbacks=[callback])\n", @@ -860,7 +838,35 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "model = model_definition(\"large\")\n", + "\n", + "lr_schedule = keras.optimizers.schedules.ExponentialDecay(\n", + " initial_learning_rate=0.001,\n", + " decay_steps=2000,\n", + " decay_rate=0.9,\n", + " staircase=True\n", + ")\n", + "\n", + "h1 = 1\n", + "h2 = 1\n", + "h3 = 1\n", + "\n", + "scaler_type = \"standard\"\n", + "loss_variant = \"huber_mass_balance\"\n", + "delta = 1.0\n", + "\n", + "\n", + "optimizer = keras.optimizers.Adam(learning_rate=lr_schedule)\n", + "model.compile(optimizer=optimizer, loss=custom_loss(preprocess, column_dict, 1, 1, 1, scaler_type, loss_variant, delta), metrics=[huber_metric(preprocess, scaler_type, delta), mass_balance_metric(preprocess, column_dict, scaler_type)])" + ] + }, + { + "cell_type": "code", + "execution_count": 19, "metadata": {}, "outputs": [ { @@ -868,830 +874,48 @@ "output_type": "stream", "text": [ "Epoch 1/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 13ms/step - huber: 0.0280 - loss: 0.5766 - mass_balance: 0.5486 - val_huber: 0.0052 - val_loss: 0.3554 - val_mass_balance: 0.3502\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m24s\u001b[0m 14ms/step - huber: 0.0074 - loss: 0.0408 - mass_balance: 0.0334 - val_huber: 3.3606e-04 - val_loss: 0.0145 - val_mass_balance: 0.0142\n", "Epoch 2/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 14ms/step - huber: 0.0038 - loss: 0.1885 - mass_balance: 0.1847 - val_huber: 0.0013 - val_loss: 0.1407 - val_mass_balance: 0.1394\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 13ms/step - huber: 1.9324e-04 - loss: 0.0116 - mass_balance: 0.0114 - val_huber: 9.2832e-05 - val_loss: 0.0099 - val_mass_balance: 0.0099\n", "Epoch 3/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 17ms/step - huber: 9.8317e-04 - loss: 0.1252 - mass_balance: 0.1242 - val_huber: 6.6276e-04 - val_loss: 0.1825 - val_mass_balance: 0.1818\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 13ms/step - huber: 1.3864e-04 - loss: 0.0091 - mass_balance: 0.0089 - val_huber: 8.4605e-05 - val_loss: 0.0061 - val_mass_balance: 0.0060\n", "Epoch 4/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m47s\u001b[0m 28ms/step - huber: 5.5962e-04 - loss: 0.1058 - mass_balance: 0.1052 - val_huber: 4.2667e-04 - val_loss: 0.1063 - val_mass_balance: 0.1058\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 14ms/step - huber: 1.1021e-04 - loss: 0.0069 - mass_balance: 0.0068 - val_huber: 6.8588e-05 - val_loss: 0.0056 - val_mass_balance: 0.0055\n", "Epoch 5/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m34s\u001b[0m 20ms/step - huber: 4.1409e-04 - loss: 0.0987 - mass_balance: 0.0983 - val_huber: 2.7614e-04 - val_loss: 0.0551 - val_mass_balance: 0.0548\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m21s\u001b[0m 13ms/step - huber: 9.6181e-05 - loss: 0.0059 - mass_balance: 0.0058 - val_huber: 6.1424e-05 - val_loss: 0.0052 - val_mass_balance: 0.0051\n", "Epoch 6/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 13ms/step - huber: 2.9547e-04 - loss: 0.0840 - mass_balance: 0.0837 - val_huber: 2.2160e-04 - val_loss: 0.0798 - val_mass_balance: 0.0796\n", + "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 13ms/step - huber: 8.5980e-05 - loss: 0.0048 - mass_balance: 0.0047 - val_huber: 7.2775e-05 - val_loss: 0.0048 - val_mass_balance: 0.0047\n", "Epoch 7/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m21s\u001b[0m 13ms/step - huber: 2.2008e-04 - loss: 0.0703 - mass_balance: 0.0701 - val_huber: 1.5488e-04 - val_loss: 0.0621 - val_mass_balance: 0.0620\n", - "Epoch 8/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m26s\u001b[0m 15ms/step - huber: 1.5455e-04 - loss: 0.0563 - mass_balance: 0.0562 - val_huber: 1.4596e-04 - val_loss: 0.0520 - val_mass_balance: 0.0519\n", - "Epoch 9/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m34s\u001b[0m 20ms/step - huber: 1.3447e-04 - loss: 0.0548 - mass_balance: 0.0547 - val_huber: 9.0868e-05 - val_loss: 0.0258 - val_mass_balance: 0.0257\n", - "Epoch 10/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m29s\u001b[0m 17ms/step - huber: 1.0780e-04 - loss: 0.0512 - mass_balance: 0.0511 - val_huber: 1.0800e-04 - val_loss: 0.0882 - val_mass_balance: 0.0880\n", - "Epoch 11/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 13ms/step - huber: 9.2014e-05 - loss: 0.0469 - mass_balance: 0.0468 - val_huber: 6.0724e-05 - val_loss: 0.0343 - val_mass_balance: 0.0343\n", - "Epoch 12/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m24s\u001b[0m 14ms/step - huber: 7.2128e-05 - loss: 0.0386 - mass_balance: 0.0386 - val_huber: 5.6025e-05 - val_loss: 0.0444 - val_mass_balance: 0.0444\n", - "Epoch 13/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m35s\u001b[0m 21ms/step - huber: 6.2327e-05 - loss: 0.0383 - mass_balance: 0.0382 - val_huber: 4.8252e-05 - val_loss: 0.0264 - val_mass_balance: 0.0263\n", - "Epoch 14/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m32s\u001b[0m 19ms/step - huber: 5.0254e-05 - loss: 0.0289 - mass_balance: 0.0289 - val_huber: 4.7942e-05 - val_loss: 0.0367 - val_mass_balance: 0.0366\n", - "Epoch 15/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m24s\u001b[0m 14ms/step - huber: 4.9434e-05 - loss: 0.0317 - mass_balance: 0.0316 - val_huber: 3.9466e-05 - val_loss: 0.0483 - val_mass_balance: 0.0483\n", - "Epoch 16/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m37s\u001b[0m 22ms/step - huber: 4.1831e-05 - loss: 0.0292 - mass_balance: 0.0292 - val_huber: 3.3752e-05 - val_loss: 0.0254 - val_mass_balance: 0.0254\n", - "Epoch 17/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m38s\u001b[0m 22ms/step - huber: 3.5998e-05 - loss: 0.0254 - mass_balance: 0.0254 - val_huber: 3.6478e-05 - val_loss: 0.0198 - val_mass_balance: 0.0197\n", - "Epoch 18/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m25s\u001b[0m 15ms/step - huber: 3.1113e-05 - loss: 0.0216 - mass_balance: 0.0216 - val_huber: 2.5108e-05 - val_loss: 0.0183 - val_mass_balance: 0.0183\n", - "Epoch 19/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m30s\u001b[0m 18ms/step - huber: 2.6720e-05 - loss: 0.0199 - mass_balance: 0.0198 - val_huber: 2.1269e-05 - val_loss: 0.0195 - val_mass_balance: 0.0195\n", - "Epoch 20/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m40s\u001b[0m 24ms/step - huber: 2.2666e-05 - loss: 0.0166 - mass_balance: 0.0166 - val_huber: 2.1749e-05 - val_loss: 0.0166 - val_mass_balance: 0.0166\n", - "Epoch 21/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m35s\u001b[0m 21ms/step - huber: 1.9886e-05 - loss: 0.0147 - mass_balance: 0.0147 - val_huber: 2.0177e-05 - val_loss: 0.0258 - val_mass_balance: 0.0258\n", - "Epoch 22/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 14ms/step - huber: 1.7967e-05 - loss: 0.0145 - mass_balance: 0.0145 - val_huber: 1.5768e-05 - val_loss: 0.0225 - val_mass_balance: 0.0225\n", - "Epoch 23/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m30s\u001b[0m 18ms/step - huber: 1.6283e-05 - loss: 0.0129 - mass_balance: 0.0129 - val_huber: 1.3621e-05 - val_loss: 0.0099 - val_mass_balance: 0.0099\n", - "Epoch 24/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m41s\u001b[0m 25ms/step - huber: 1.4158e-05 - loss: 0.0120 - mass_balance: 0.0120 - val_huber: 1.2725e-05 - val_loss: 0.0219 - val_mass_balance: 0.0219\n", - "Epoch 25/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m39s\u001b[0m 23ms/step - huber: 1.3349e-05 - loss: 0.0122 - mass_balance: 0.0122 - val_huber: 1.1089e-05 - val_loss: 0.0058 - val_mass_balance: 0.0058\n", - "Epoch 26/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 14ms/step - huber: 1.1305e-05 - loss: 0.0094 - mass_balance: 0.0094 - val_huber: 1.0137e-05 - val_loss: 0.0094 - val_mass_balance: 0.0094\n", - "Epoch 27/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m30s\u001b[0m 18ms/step - huber: 1.0401e-05 - loss: 0.0087 - mass_balance: 0.0087 - val_huber: 8.7671e-06 - val_loss: 0.0097 - val_mass_balance: 0.0097\n", - "Epoch 28/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m41s\u001b[0m 25ms/step - huber: 9.2662e-06 - loss: 0.0084 - mass_balance: 0.0084 - val_huber: 7.9543e-06 - val_loss: 0.0042 - val_mass_balance: 0.0042\n", - "Epoch 29/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m34s\u001b[0m 20ms/step - huber: 8.7411e-06 - loss: 0.0083 - mass_balance: 0.0083 - val_huber: 7.5361e-06 - val_loss: 0.0047 - val_mass_balance: 0.0047\n", - "Epoch 30/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 13ms/step - huber: 8.3025e-06 - loss: 0.0069 - mass_balance: 0.0069 - val_huber: 7.4451e-06 - val_loss: 0.0094 - val_mass_balance: 0.0094\n", - "Epoch 31/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 17ms/step - huber: 7.6382e-06 - loss: 0.0057 - mass_balance: 0.0057 - val_huber: 6.9163e-06 - val_loss: 0.0050 - val_mass_balance: 0.0050\n", - "Epoch 32/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m38s\u001b[0m 23ms/step - huber: 7.3375e-06 - loss: 0.0056 - mass_balance: 0.0056 - val_huber: 6.7540e-06 - val_loss: 0.0046 - val_mass_balance: 0.0046\n", - "Epoch 33/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m33s\u001b[0m 20ms/step - huber: 7.0753e-06 - loss: 0.0051 - mass_balance: 0.0051 - val_huber: 6.2671e-06 - val_loss: 0.0072 - val_mass_balance: 0.0072\n", - "Epoch 34/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 14ms/step - huber: 6.7945e-06 - loss: 0.0048 - mass_balance: 0.0048 - val_huber: 6.2241e-06 - val_loss: 0.0072 - val_mass_balance: 0.0072\n", - "Epoch 35/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m31s\u001b[0m 19ms/step - huber: 6.5585e-06 - loss: 0.0045 - mass_balance: 0.0045 - val_huber: 6.1400e-06 - val_loss: 0.0036 - val_mass_balance: 0.0036\n", - "Epoch 36/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m37s\u001b[0m 22ms/step - huber: 6.4420e-06 - loss: 0.0038 - mass_balance: 0.0038 - val_huber: 5.8129e-06 - val_loss: 0.0028 - val_mass_balance: 0.0027\n", - "Epoch 37/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m31s\u001b[0m 18ms/step - huber: 6.0778e-06 - loss: 0.0034 - mass_balance: 0.0034 - val_huber: 5.7370e-06 - val_loss: 0.0020 - val_mass_balance: 0.0020\n", - "Epoch 38/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 13ms/step - huber: 6.0100e-06 - loss: 0.0030 - mass_balance: 0.0030 - val_huber: 5.4983e-06 - val_loss: 0.0026 - val_mass_balance: 0.0026\n", - "Epoch 39/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m32s\u001b[0m 19ms/step - huber: 5.8758e-06 - loss: 0.0032 - mass_balance: 0.0032 - val_huber: 5.4214e-06 - val_loss: 0.0016 - val_mass_balance: 0.0016\n", - "Epoch 40/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m38s\u001b[0m 22ms/step - huber: 5.6621e-06 - loss: 0.0026 - mass_balance: 0.0026 - val_huber: 5.2990e-06 - val_loss: 0.0034 - val_mass_balance: 0.0034\n", - "Epoch 41/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m34s\u001b[0m 20ms/step - huber: 5.5953e-06 - loss: 0.0026 - mass_balance: 0.0026 - val_huber: 5.1084e-06 - val_loss: 0.0017 - val_mass_balance: 0.0016\n", - "Epoch 42/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 14ms/step - huber: 5.4874e-06 - loss: 0.0027 - mass_balance: 0.0027 - val_huber: 5.0405e-06 - val_loss: 0.0015 - val_mass_balance: 0.0015\n", - "Epoch 43/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m30s\u001b[0m 18ms/step - huber: 5.3323e-06 - loss: 0.0022 - mass_balance: 0.0022 - val_huber: 4.9327e-06 - val_loss: 0.0017 - val_mass_balance: 0.0017\n", - "Epoch 44/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m37s\u001b[0m 22ms/step - huber: 5.1880e-06 - loss: 0.0022 - mass_balance: 0.0022 - val_huber: 4.8816e-06 - val_loss: 0.0023 - val_mass_balance: 0.0023\n", - "Epoch 45/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m34s\u001b[0m 20ms/step - huber: 5.2677e-06 - loss: 0.0019 - mass_balance: 0.0019 - val_huber: 4.8684e-06 - val_loss: 0.0030 - val_mass_balance: 0.0030\n", - "Epoch 46/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 13ms/step - huber: 5.0820e-06 - loss: 0.0016 - mass_balance: 0.0016 - val_huber: 4.7764e-06 - val_loss: 0.0017 - val_mass_balance: 0.0017\n", - "Epoch 47/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m32s\u001b[0m 19ms/step - huber: 5.1720e-06 - loss: 0.0017 - mass_balance: 0.0017 - val_huber: 4.6949e-06 - val_loss: 0.0014 - val_mass_balance: 0.0014\n", - "Epoch 48/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m37s\u001b[0m 22ms/step - huber: 4.9894e-06 - loss: 0.0015 - mass_balance: 0.0015 - val_huber: 4.6528e-06 - val_loss: 0.0013 - val_mass_balance: 0.0013\n", - "Epoch 49/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m30s\u001b[0m 18ms/step - huber: 5.0818e-06 - loss: 0.0014 - mass_balance: 0.0014 - val_huber: 4.6386e-06 - val_loss: 0.0013 - val_mass_balance: 0.0013\n", - "Epoch 50/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 13ms/step - huber: 4.9151e-06 - loss: 0.0014 - mass_balance: 0.0014 - val_huber: 4.5971e-06 - val_loss: 0.0017 - val_mass_balance: 0.0017\n", - "Epoch 51/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m37s\u001b[0m 22ms/step - huber: 5.1078e-06 - loss: 0.0013 - mass_balance: 0.0013 - val_huber: 4.5822e-06 - val_loss: 0.0012 - val_mass_balance: 0.0012\n", - "Epoch 52/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m38s\u001b[0m 22ms/step - huber: 4.8951e-06 - loss: 0.0012 - mass_balance: 0.0012 - val_huber: 4.5595e-06 - val_loss: 0.0012 - val_mass_balance: 0.0012\n", - "Epoch 53/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m32s\u001b[0m 19ms/step - huber: 4.7999e-06 - loss: 0.0012 - mass_balance: 0.0011 - val_huber: 4.5535e-06 - val_loss: 0.0011 - val_mass_balance: 0.0011\n", - "Epoch 54/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 14ms/step - huber: 5.0074e-06 - loss: 0.0010 - mass_balance: 0.0010 - val_huber: 4.5312e-06 - val_loss: 0.0011 - val_mass_balance: 0.0011\n", - "Epoch 55/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m36s\u001b[0m 21ms/step - huber: 4.7403e-06 - loss: 0.0011 - mass_balance: 0.0010 - val_huber: 4.5230e-06 - val_loss: 0.0011 - val_mass_balance: 0.0011\n", - "Epoch 56/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m36s\u001b[0m 22ms/step - huber: 4.8505e-06 - loss: 0.0010 - mass_balance: 0.0010 - val_huber: 4.4992e-06 - val_loss: 9.9706e-04 - val_mass_balance: 9.9211e-04\n", - "Epoch 57/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 16ms/step - huber: 4.7829e-06 - loss: 0.0010 - mass_balance: 0.0010 - val_huber: 4.4840e-06 - val_loss: 0.0011 - val_mass_balance: 0.0011\n", - "Epoch 58/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 13ms/step - huber: 4.6865e-06 - loss: 9.4714e-04 - mass_balance: 9.4245e-04 - val_huber: 4.4743e-06 - val_loss: 0.0010 - val_mass_balance: 0.0010\n", - "Epoch 59/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m36s\u001b[0m 21ms/step - huber: 4.7369e-06 - loss: 9.1854e-04 - mass_balance: 9.1381e-04 - val_huber: 4.4658e-06 - val_loss: 9.0883e-04 - val_mass_balance: 9.0412e-04\n", - "Epoch 60/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m36s\u001b[0m 21ms/step - huber: 4.7842e-06 - loss: 8.9714e-04 - mass_balance: 8.9235e-04 - val_huber: 4.4619e-06 - val_loss: 0.0011 - val_mass_balance: 0.0010\n", - "Epoch 61/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m32s\u001b[0m 19ms/step - huber: 4.7509e-06 - loss: 9.0488e-04 - mass_balance: 9.0013e-04 - val_huber: 4.4496e-06 - val_loss: 8.7976e-04 - val_mass_balance: 8.7495e-04\n", - "Epoch 62/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m24s\u001b[0m 14ms/step - huber: 4.7354e-06 - loss: 8.7100e-04 - mass_balance: 8.6626e-04 - val_huber: 4.4387e-06 - val_loss: 8.0406e-04 - val_mass_balance: 7.9931e-04\n", - "Epoch 63/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m37s\u001b[0m 22ms/step - huber: 4.7464e-06 - loss: 8.3838e-04 - mass_balance: 8.3364e-04 - val_huber: 4.4327e-06 - val_loss: 7.9101e-04 - val_mass_balance: 7.8626e-04\n", - "Epoch 64/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m38s\u001b[0m 23ms/step - huber: 4.6876e-06 - loss: 8.1951e-04 - mass_balance: 8.1482e-04 - val_huber: 4.4294e-06 - val_loss: 8.9929e-04 - val_mass_balance: 8.9460e-04\n", - "Epoch 65/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m31s\u001b[0m 18ms/step - huber: 4.6590e-06 - loss: 8.0697e-04 - mass_balance: 8.0231e-04 - val_huber: 4.4291e-06 - val_loss: 8.6386e-04 - val_mass_balance: 8.5926e-04\n", - "Epoch 66/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m24s\u001b[0m 14ms/step - huber: 4.7361e-06 - loss: 8.0089e-04 - mass_balance: 7.9615e-04 - val_huber: 4.4201e-06 - val_loss: 9.0955e-04 - val_mass_balance: 9.0501e-04\n", - "Epoch 67/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m40s\u001b[0m 23ms/step - huber: 4.6704e-06 - loss: 7.8888e-04 - mass_balance: 7.8421e-04 - val_huber: 4.4193e-06 - val_loss: 8.9738e-04 - val_mass_balance: 8.9274e-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 - huber: 4.6470e-06 - loss: 7.7605e-04 - mass_balance: 7.7141e-04 - val_huber: 4.4142e-06 - val_loss: 8.5801e-04 - val_mass_balance: 8.5335e-04\n", - "Epoch 69/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 16ms/step - huber: 4.7550e-06 - loss: 7.7262e-04 - mass_balance: 7.6787e-04 - val_huber: 4.4084e-06 - val_loss: 7.9255e-04 - val_mass_balance: 7.8781e-04\n", - "Epoch 70/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m29s\u001b[0m 17ms/step - huber: 4.7623e-06 - loss: 7.5767e-04 - mass_balance: 7.5291e-04 - val_huber: 4.4077e-06 - val_loss: 7.4866e-04 - val_mass_balance: 7.4407e-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 - huber: 4.7104e-06 - loss: 7.4709e-04 - mass_balance: 7.4238e-04 - val_huber: 4.4048e-06 - val_loss: 7.6893e-04 - val_mass_balance: 7.6434e-04\n", - "Epoch 72/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m36s\u001b[0m 22ms/step - huber: 4.7597e-06 - loss: 7.4175e-04 - mass_balance: 7.3699e-04 - val_huber: 4.4023e-06 - val_loss: 7.5106e-04 - val_mass_balance: 7.4639e-04\n", - "Epoch 73/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 13ms/step - huber: 4.6848e-06 - loss: 7.3518e-04 - mass_balance: 7.3050e-04 - val_huber: 4.3981e-06 - val_loss: 8.2756e-04 - val_mass_balance: 8.2306e-04\n", - "Epoch 74/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m32s\u001b[0m 19ms/step - huber: 4.6485e-06 - loss: 7.3155e-04 - mass_balance: 7.2690e-04 - val_huber: 4.3989e-06 - val_loss: 8.4362e-04 - val_mass_balance: 8.3890e-04\n", - "Epoch 75/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m37s\u001b[0m 22ms/step - huber: 4.7278e-06 - loss: 7.2393e-04 - mass_balance: 7.1920e-04 - val_huber: 4.3956e-06 - val_loss: 7.3810e-04 - val_mass_balance: 7.3353e-04\n", - "Epoch 76/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m35s\u001b[0m 21ms/step - huber: 4.7837e-06 - loss: 7.2246e-04 - mass_balance: 7.1768e-04 - val_huber: 4.3947e-06 - val_loss: 7.2104e-04 - val_mass_balance: 7.1644e-04\n", - "Epoch 77/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 17ms/step - huber: 4.7795e-06 - loss: 7.1239e-04 - mass_balance: 7.0761e-04 - val_huber: 4.3899e-06 - val_loss: 7.5226e-04 - val_mass_balance: 7.4761e-04\n", - "Epoch 78/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m35s\u001b[0m 21ms/step - huber: 4.5890e-06 - loss: 7.1344e-04 - mass_balance: 7.0885e-04 - val_huber: 4.3891e-06 - val_loss: 7.4826e-04 - val_mass_balance: 7.4358e-04\n", - "Epoch 79/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m31s\u001b[0m 18ms/step - huber: 4.8303e-06 - loss: 7.1237e-04 - mass_balance: 7.0754e-04 - val_huber: 4.3876e-06 - val_loss: 7.2122e-04 - val_mass_balance: 7.1660e-04\n", - "Epoch 80/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 14ms/step - huber: 4.7512e-06 - loss: 7.0720e-04 - mass_balance: 7.0245e-04 - val_huber: 4.3860e-06 - val_loss: 7.8552e-04 - val_mass_balance: 7.8102e-04\n", - "Epoch 81/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m33s\u001b[0m 19ms/step - huber: 4.9366e-06 - loss: 7.0371e-04 - mass_balance: 6.9877e-04 - val_huber: 4.3859e-06 - val_loss: 7.4151e-04 - val_mass_balance: 7.3684e-04\n", - "Epoch 82/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m41s\u001b[0m 24ms/step - huber: 4.5501e-06 - loss: 6.9870e-04 - mass_balance: 6.9415e-04 - val_huber: 4.3839e-06 - val_loss: 7.2937e-04 - val_mass_balance: 7.2469e-04\n", - "Epoch 83/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m33s\u001b[0m 19ms/step - huber: 4.7512e-06 - loss: 6.9658e-04 - mass_balance: 6.9183e-04 - val_huber: 4.3828e-06 - val_loss: 6.9935e-04 - val_mass_balance: 6.9476e-04\n", - "Epoch 84/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 14ms/step - huber: 4.9666e-06 - loss: 6.9299e-04 - mass_balance: 6.8802e-04 - val_huber: 4.3836e-06 - val_loss: 6.9820e-04 - val_mass_balance: 6.9360e-04\n", - "Epoch 85/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m37s\u001b[0m 22ms/step - huber: 4.7241e-06 - loss: 6.8971e-04 - mass_balance: 6.8498e-04 - val_huber: 4.3817e-06 - val_loss: 7.0906e-04 - val_mass_balance: 7.0448e-04\n", - "Epoch 86/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m40s\u001b[0m 24ms/step - huber: 4.6853e-06 - loss: 6.8834e-04 - mass_balance: 6.8366e-04 - val_huber: 4.3801e-06 - val_loss: 6.9305e-04 - val_mass_balance: 6.8842e-04\n", - "Epoch 87/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m39s\u001b[0m 23ms/step - huber: 4.7930e-06 - loss: 6.8417e-04 - mass_balance: 6.7938e-04 - val_huber: 4.3793e-06 - val_loss: 6.8721e-04 - val_mass_balance: 6.8261e-04\n", - "Epoch 88/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m27s\u001b[0m 16ms/step - huber: 4.6025e-06 - loss: 6.8556e-04 - mass_balance: 6.8096e-04 - val_huber: 4.3797e-06 - val_loss: 6.9921e-04 - val_mass_balance: 6.9457e-04\n", - "Epoch 89/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m41s\u001b[0m 24ms/step - huber: 4.6096e-06 - loss: 6.8345e-04 - mass_balance: 6.7884e-04 - val_huber: 4.3777e-06 - val_loss: 7.1012e-04 - val_mass_balance: 7.0556e-04\n", - "Epoch 90/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m39s\u001b[0m 23ms/step - huber: 4.7352e-06 - loss: 6.8032e-04 - mass_balance: 6.7559e-04 - val_huber: 4.3785e-06 - val_loss: 6.8198e-04 - val_mass_balance: 6.7735e-04\n", - "Epoch 91/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m29s\u001b[0m 17ms/step - huber: 4.9625e-06 - loss: 6.7876e-04 - mass_balance: 6.7380e-04 - val_huber: 4.3782e-06 - val_loss: 6.8370e-04 - val_mass_balance: 6.7908e-04\n", - "Epoch 92/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m38s\u001b[0m 23ms/step - huber: 4.6216e-06 - loss: 6.7679e-04 - mass_balance: 6.7217e-04 - val_huber: 4.3776e-06 - val_loss: 6.9870e-04 - val_mass_balance: 6.9412e-04\n", - "Epoch 93/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m32s\u001b[0m 19ms/step - huber: 4.5977e-06 - loss: 6.8038e-04 - mass_balance: 6.7579e-04 - val_huber: 4.3780e-06 - val_loss: 6.7655e-04 - val_mass_balance: 6.7195e-04\n", - "Epoch 94/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 17ms/step - huber: 4.7114e-06 - loss: 6.7618e-04 - mass_balance: 6.7147e-04 - val_huber: 4.3773e-06 - val_loss: 6.8676e-04 - val_mass_balance: 6.8217e-04\n", - "Epoch 95/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m39s\u001b[0m 23ms/step - huber: 4.8114e-06 - loss: 6.7424e-04 - mass_balance: 6.6943e-04 - val_huber: 4.3775e-06 - val_loss: 6.7735e-04 - val_mass_balance: 6.7271e-04\n", - "Epoch 96/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m31s\u001b[0m 18ms/step - huber: 4.6262e-06 - loss: 6.7161e-04 - mass_balance: 6.6699e-04 - val_huber: 4.3762e-06 - val_loss: 6.8181e-04 - val_mass_balance: 6.7717e-04\n", - "Epoch 97/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 14ms/step - huber: 4.6763e-06 - loss: 6.7315e-04 - mass_balance: 6.6847e-04 - val_huber: 4.3764e-06 - val_loss: 6.7627e-04 - val_mass_balance: 6.7167e-04\n", - "Epoch 98/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m35s\u001b[0m 20ms/step - huber: 4.4961e-06 - loss: 6.7211e-04 - mass_balance: 6.6761e-04 - val_huber: 4.3764e-06 - val_loss: 6.7528e-04 - val_mass_balance: 6.7067e-04\n", - "Epoch 99/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m35s\u001b[0m 21ms/step - huber: 4.6732e-06 - loss: 6.6925e-04 - mass_balance: 6.6458e-04 - val_huber: 4.3758e-06 - val_loss: 6.7478e-04 - val_mass_balance: 6.7018e-04\n", - "Epoch 100/100\n", - "\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m25s\u001b[0m 15ms/step - huber: 4.8459e-06 - loss: 6.6713e-04 - mass_balance: 6.6228e-04 - val_huber: 4.3756e-06 - val_loss: 6.7381e-04 - val_mass_balance: 6.6918e-04\n", - "Training took 3161.1680614948273 seconds\n" + "\u001b[1m1307/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━\u001b[0m\u001b[37m━━━━━\u001b[0m \u001b[1m5s\u001b[0m 13ms/step - huber: 7.4528e-05 - loss: 0.0047 - mass_balance: 0.0046" + ] + }, + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[19], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m history \u001b[38;5;241m=\u001b[39m \u001b[43mmodel_training\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmodel\u001b[49m\u001b[43m)\u001b[49m\n", + "Cell \u001b[0;32mIn[17], line 5\u001b[0m, in \u001b[0;36mmodel_training\u001b[0;34m(model)\u001b[0m\n\u001b[1;32m 3\u001b[0m start \u001b[38;5;241m=\u001b[39m time\u001b[38;5;241m.\u001b[39mtime()\n\u001b[1;32m 4\u001b[0m callback \u001b[38;5;241m=\u001b[39m keras\u001b[38;5;241m.\u001b[39mcallbacks\u001b[38;5;241m.\u001b[39mEarlyStopping(monitor\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mloss\u001b[39m\u001b[38;5;124m'\u001b[39m, patience\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m3\u001b[39m)\n\u001b[0;32m----> 5\u001b[0m history \u001b[38;5;241m=\u001b[39m \u001b[43mmodel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfit\u001b[49m\u001b[43m(\u001b[49m\u001b[43mX_train\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mloc\u001b[49m\u001b[43m[\u001b[49m\u001b[43m:\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mX_train\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcolumns\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m!=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mClass\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\n\u001b[1;32m 6\u001b[0m \u001b[43m \u001b[49m\u001b[43my_train\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mloc\u001b[49m\u001b[43m[\u001b[49m\u001b[43m:\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my_train\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcolumns\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m!=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mClass\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\n\u001b[1;32m 7\u001b[0m \u001b[43m \u001b[49m\u001b[43mbatch_size\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m512\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\n\u001b[1;32m 8\u001b[0m \u001b[43m \u001b[49m\u001b[43mepochs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m100\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\n\u001b[1;32m 9\u001b[0m \u001b[43m \u001b[49m\u001b[43mvalidation_data\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mX_val\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mloc\u001b[49m\u001b[43m[\u001b[49m\u001b[43m:\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mX_val\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcolumns\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m!=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mClass\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my_val\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mloc\u001b[49m\u001b[43m[\u001b[49m\u001b[43m:\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my_val\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcolumns\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m!=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mClass\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10\u001b[0m \u001b[43m \u001b[49m\u001b[43mcallbacks\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\u001b[43mcallback\u001b[49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 13\u001b[0m end \u001b[38;5;241m=\u001b[39m time\u001b[38;5;241m.\u001b[39mtime()\n\u001b[1;32m 15\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTraining took \u001b[39m\u001b[38;5;132;01m{}\u001b[39;00m\u001b[38;5;124m seconds\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mformat(end \u001b[38;5;241m-\u001b[39m start))\n", + "File \u001b[0;32m~/miniforge3/envs/ai/lib/python3.12/site-packages/keras/src/utils/traceback_utils.py:117\u001b[0m, in \u001b[0;36mfilter_traceback..error_handler\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 115\u001b[0m filtered_tb \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 116\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 117\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 118\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 119\u001b[0m filtered_tb \u001b[38;5;241m=\u001b[39m _process_traceback_frames(e\u001b[38;5;241m.\u001b[39m__traceback__)\n", + "File \u001b[0;32m~/miniforge3/envs/ai/lib/python3.12/site-packages/keras/src/backend/tensorflow/trainer.py:371\u001b[0m, in \u001b[0;36mTensorFlowTrainer.fit\u001b[0;34m(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_batch_size, validation_freq)\u001b[0m\n\u001b[1;32m 369\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m step, iterator \u001b[38;5;129;01min\u001b[39;00m epoch_iterator:\n\u001b[1;32m 370\u001b[0m callbacks\u001b[38;5;241m.\u001b[39mon_train_batch_begin(step)\n\u001b[0;32m--> 371\u001b[0m logs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrain_function\u001b[49m\u001b[43m(\u001b[49m\u001b[43miterator\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 372\u001b[0m callbacks\u001b[38;5;241m.\u001b[39mon_train_batch_end(step, logs)\n\u001b[1;32m 373\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstop_training:\n", + "File \u001b[0;32m~/miniforge3/envs/ai/lib/python3.12/site-packages/keras/src/backend/tensorflow/trainer.py:219\u001b[0m, in \u001b[0;36mTensorFlowTrainer._make_function..function\u001b[0;34m(iterator)\u001b[0m\n\u001b[1;32m 215\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mfunction\u001b[39m(iterator):\n\u001b[1;32m 216\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(\n\u001b[1;32m 217\u001b[0m iterator, (tf\u001b[38;5;241m.\u001b[39mdata\u001b[38;5;241m.\u001b[39mIterator, tf\u001b[38;5;241m.\u001b[39mdistribute\u001b[38;5;241m.\u001b[39mDistributedIterator)\n\u001b[1;32m 218\u001b[0m ):\n\u001b[0;32m--> 219\u001b[0m opt_outputs \u001b[38;5;241m=\u001b[39m \u001b[43mmulti_step_on_iterator\u001b[49m\u001b[43m(\u001b[49m\u001b[43miterator\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 220\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m opt_outputs\u001b[38;5;241m.\u001b[39mhas_value():\n\u001b[1;32m 221\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mStopIteration\u001b[39;00m\n", + "File \u001b[0;32m~/miniforge3/envs/ai/lib/python3.12/site-packages/tensorflow/python/util/traceback_utils.py:150\u001b[0m, in \u001b[0;36mfilter_traceback..error_handler\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 148\u001b[0m filtered_tb \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 149\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 150\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 151\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 152\u001b[0m filtered_tb \u001b[38;5;241m=\u001b[39m _process_traceback_frames(e\u001b[38;5;241m.\u001b[39m__traceback__)\n", + "File \u001b[0;32m~/miniforge3/envs/ai/lib/python3.12/site-packages/tensorflow/python/eager/polymorphic_function/polymorphic_function.py:833\u001b[0m, in \u001b[0;36mFunction.__call__\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m 830\u001b[0m compiler \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mxla\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_jit_compile \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mnonXla\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 832\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m OptionalXlaContext(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_jit_compile):\n\u001b[0;32m--> 833\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 835\u001b[0m new_tracing_count \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mexperimental_get_tracing_count()\n\u001b[1;32m 836\u001b[0m without_tracing \u001b[38;5;241m=\u001b[39m (tracing_count \u001b[38;5;241m==\u001b[39m new_tracing_count)\n", + "File \u001b[0;32m~/miniforge3/envs/ai/lib/python3.12/site-packages/tensorflow/python/eager/polymorphic_function/polymorphic_function.py:878\u001b[0m, in \u001b[0;36mFunction._call\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m 875\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lock\u001b[38;5;241m.\u001b[39mrelease()\n\u001b[1;32m 876\u001b[0m \u001b[38;5;66;03m# In this case we have not created variables on the first call. So we can\u001b[39;00m\n\u001b[1;32m 877\u001b[0m \u001b[38;5;66;03m# run the first trace but we should fail if variables are created.\u001b[39;00m\n\u001b[0;32m--> 878\u001b[0m results \u001b[38;5;241m=\u001b[39m \u001b[43mtracing_compilation\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcall_function\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 879\u001b[0m \u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkwds\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_variable_creation_config\u001b[49m\n\u001b[1;32m 880\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 881\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_created_variables:\n\u001b[1;32m 882\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCreating variables on a non-first call to a function\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 883\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m decorated with tf.function.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", + "File \u001b[0;32m~/miniforge3/envs/ai/lib/python3.12/site-packages/tensorflow/python/eager/polymorphic_function/tracing_compilation.py:139\u001b[0m, in \u001b[0;36mcall_function\u001b[0;34m(args, kwargs, tracing_options)\u001b[0m\n\u001b[1;32m 137\u001b[0m bound_args \u001b[38;5;241m=\u001b[39m function\u001b[38;5;241m.\u001b[39mfunction_type\u001b[38;5;241m.\u001b[39mbind(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[1;32m 138\u001b[0m flat_inputs \u001b[38;5;241m=\u001b[39m function\u001b[38;5;241m.\u001b[39mfunction_type\u001b[38;5;241m.\u001b[39munpack_inputs(bound_args)\n\u001b[0;32m--> 139\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunction\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_flat\u001b[49m\u001b[43m(\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;66;43;03m# pylint: disable=protected-access\u001b[39;49;00m\n\u001b[1;32m 140\u001b[0m \u001b[43m \u001b[49m\u001b[43mflat_inputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcaptured_inputs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfunction\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcaptured_inputs\u001b[49m\n\u001b[1;32m 141\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/ai/lib/python3.12/site-packages/tensorflow/python/eager/polymorphic_function/concrete_function.py:1322\u001b[0m, in \u001b[0;36mConcreteFunction._call_flat\u001b[0;34m(self, tensor_inputs, captured_inputs)\u001b[0m\n\u001b[1;32m 1318\u001b[0m possible_gradient_type \u001b[38;5;241m=\u001b[39m gradients_util\u001b[38;5;241m.\u001b[39mPossibleTapeGradientTypes(args)\n\u001b[1;32m 1319\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (possible_gradient_type \u001b[38;5;241m==\u001b[39m gradients_util\u001b[38;5;241m.\u001b[39mPOSSIBLE_GRADIENT_TYPES_NONE\n\u001b[1;32m 1320\u001b[0m \u001b[38;5;129;01mand\u001b[39;00m executing_eagerly):\n\u001b[1;32m 1321\u001b[0m \u001b[38;5;66;03m# No tape is watching; skip to running the function.\u001b[39;00m\n\u001b[0;32m-> 1322\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[43m_inference_function\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcall_preflattened\u001b[49m\u001b[43m(\u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1323\u001b[0m forward_backward \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_select_forward_and_backward_functions(\n\u001b[1;32m 1324\u001b[0m args,\n\u001b[1;32m 1325\u001b[0m possible_gradient_type,\n\u001b[1;32m 1326\u001b[0m executing_eagerly)\n\u001b[1;32m 1327\u001b[0m forward_function, args_with_tangents \u001b[38;5;241m=\u001b[39m forward_backward\u001b[38;5;241m.\u001b[39mforward()\n", + "File \u001b[0;32m~/miniforge3/envs/ai/lib/python3.12/site-packages/tensorflow/python/eager/polymorphic_function/atomic_function.py:216\u001b[0m, in \u001b[0;36mAtomicFunction.call_preflattened\u001b[0;34m(self, args)\u001b[0m\n\u001b[1;32m 214\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mcall_preflattened\u001b[39m(\u001b[38;5;28mself\u001b[39m, args: Sequence[core\u001b[38;5;241m.\u001b[39mTensor]) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Any:\n\u001b[1;32m 215\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Calls with flattened tensor inputs and returns the structured output.\"\"\"\u001b[39;00m\n\u001b[0;32m--> 216\u001b[0m flat_outputs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcall_flat\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 217\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfunction_type\u001b[38;5;241m.\u001b[39mpack_output(flat_outputs)\n", + "File \u001b[0;32m~/miniforge3/envs/ai/lib/python3.12/site-packages/tensorflow/python/eager/polymorphic_function/atomic_function.py:251\u001b[0m, in \u001b[0;36mAtomicFunction.call_flat\u001b[0;34m(self, *args)\u001b[0m\n\u001b[1;32m 249\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m record\u001b[38;5;241m.\u001b[39mstop_recording():\n\u001b[1;32m 250\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_bound_context\u001b[38;5;241m.\u001b[39mexecuting_eagerly():\n\u001b[0;32m--> 251\u001b[0m outputs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_bound_context\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcall_function\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 252\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 253\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mlist\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 254\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mlen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfunction_type\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mflat_outputs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 255\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 256\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 257\u001b[0m outputs \u001b[38;5;241m=\u001b[39m make_call_op_in_graph(\n\u001b[1;32m 258\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 259\u001b[0m \u001b[38;5;28mlist\u001b[39m(args),\n\u001b[1;32m 260\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_bound_context\u001b[38;5;241m.\u001b[39mfunction_call_options\u001b[38;5;241m.\u001b[39mas_attrs(),\n\u001b[1;32m 261\u001b[0m )\n", + "File \u001b[0;32m~/miniforge3/envs/ai/lib/python3.12/site-packages/tensorflow/python/eager/context.py:1552\u001b[0m, in \u001b[0;36mContext.call_function\u001b[0;34m(self, name, tensor_inputs, num_outputs)\u001b[0m\n\u001b[1;32m 1550\u001b[0m cancellation_context \u001b[38;5;241m=\u001b[39m cancellation\u001b[38;5;241m.\u001b[39mcontext()\n\u001b[1;32m 1551\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m cancellation_context \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 1552\u001b[0m outputs \u001b[38;5;241m=\u001b[39m \u001b[43mexecute\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mexecute\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1553\u001b[0m \u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdecode\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mutf-8\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1554\u001b[0m \u001b[43m \u001b[49m\u001b[43mnum_outputs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_outputs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1555\u001b[0m \u001b[43m \u001b[49m\u001b[43minputs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtensor_inputs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1556\u001b[0m \u001b[43m \u001b[49m\u001b[43mattrs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mattrs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1557\u001b[0m \u001b[43m \u001b[49m\u001b[43mctx\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1558\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1559\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1560\u001b[0m outputs \u001b[38;5;241m=\u001b[39m execute\u001b[38;5;241m.\u001b[39mexecute_with_cancellation(\n\u001b[1;32m 1561\u001b[0m name\u001b[38;5;241m.\u001b[39mdecode(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mutf-8\u001b[39m\u001b[38;5;124m\"\u001b[39m),\n\u001b[1;32m 1562\u001b[0m num_outputs\u001b[38;5;241m=\u001b[39mnum_outputs,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1566\u001b[0m cancellation_manager\u001b[38;5;241m=\u001b[39mcancellation_context,\n\u001b[1;32m 1567\u001b[0m )\n", + "File \u001b[0;32m~/miniforge3/envs/ai/lib/python3.12/site-packages/tensorflow/python/eager/execute.py:53\u001b[0m, in \u001b[0;36mquick_execute\u001b[0;34m(op_name, num_outputs, inputs, attrs, ctx, name)\u001b[0m\n\u001b[1;32m 51\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 52\u001b[0m ctx\u001b[38;5;241m.\u001b[39mensure_initialized()\n\u001b[0;32m---> 53\u001b[0m tensors \u001b[38;5;241m=\u001b[39m \u001b[43mpywrap_tfe\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mTFE_Py_Execute\u001b[49m\u001b[43m(\u001b[49m\u001b[43mctx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_handle\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdevice_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mop_name\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 54\u001b[0m \u001b[43m \u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mattrs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnum_outputs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 55\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m core\u001b[38;5;241m.\u001b[39m_NotOkStatusException \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 56\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " ] } ], "source": [ - "history = model_training(model_large)" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'huber': [0.016467243432998657,\n", - " 0.0026575098745524883,\n", - " 0.0008205742342397571,\n", - " 0.0005093477666378021,\n", - " 0.0003787624591495842,\n", - " 0.0002784435637295246,\n", - " 0.00020736613078042865,\n", - " 0.00014805630780756474,\n", - " 0.0001245995081262663,\n", - " 0.0001012101347441785,\n", - " 8.732335845706984e-05,\n", - " 7.07938161212951e-05,\n", - " 6.000046414555982e-05,\n", - " 4.9258629587711766e-05,\n", - " 4.5853365008952096e-05,\n", - " 3.878949792124331e-05,\n", - " 3.496679710224271e-05,\n", - " 3.024175384780392e-05,\n", - " 2.5801549782045186e-05,\n", - " 2.228489756816998e-05,\n", - " 1.9326878827996552e-05,\n", - " 1.720393993309699e-05,\n", - " 1.545708619232755e-05,\n", - " 1.3873431271349546e-05,\n", - " 1.2577706002048217e-05,\n", - " 1.1043644917663187e-05,\n", - " 1.0004349860537332e-05,\n", - " 9.15171312954044e-06,\n", - " 8.605407856521197e-06,\n", - " 8.079078725131694e-06,\n", - " 7.523737622250337e-06,\n", - " 7.217747679533204e-06,\n", - " 6.9549328145512845e-06,\n", - " 6.68665734337992e-06,\n", - " 6.558057521033334e-06,\n", - " 6.348819169943454e-06,\n", - " 6.18170042798738e-06,\n", - " 5.973774477752158e-06,\n", - " 5.812943072669441e-06,\n", - " 5.673456598742632e-06,\n", - " 5.545334715861827e-06,\n", - " 5.442475867312169e-06,\n", - " 5.3044891501485836e-06,\n", - " 5.23393055118504e-06,\n", - " 5.18664319315576e-06,\n", - " 5.130440968059702e-06,\n", - " 5.0675025704549626e-06,\n", - " 5.022430286771851e-06,\n", - " 4.986327894584974e-06,\n", - " 4.958836598234484e-06,\n", - " 4.92672143082018e-06,\n", - " 4.920212177239591e-06,\n", - " 4.895785878034076e-06,\n", - " 4.880493179371115e-06,\n", - " 4.865618393523619e-06,\n", - " 4.846592673857231e-06,\n", - " 4.830980287806597e-06,\n", - " 4.8156484808714595e-06,\n", - " 4.8047577365650795e-06,\n", - " 4.800085662282072e-06,\n", - " 4.7918410928105e-06,\n", - " 4.782257747137919e-06,\n", - " 4.775091383635299e-06,\n", - " 4.770627583638998e-06,\n", - " 4.764243385579903e-06,\n", - " 4.759195689985063e-06,\n", - " 4.757103852170985e-06,\n", - " 4.750551852339413e-06,\n", - " 4.747769253299339e-06,\n", - " 4.743907993542962e-06,\n", - " 4.7424591684830375e-06,\n", - " 4.740706572192721e-06,\n", - " 4.737036761071067e-06,\n", - " 4.734663889394142e-06,\n", - " 4.732184152089758e-06,\n", - " 4.729894044430694e-06,\n", - " 4.728701242129318e-06,\n", - " 4.726135557575617e-06,\n", - " 4.7255007302737795e-06,\n", - " 4.723358870251104e-06,\n", - " 4.722523044620175e-06,\n", - " 4.721841378341196e-06,\n", - " 4.720112428913126e-06,\n", - " 4.719278877018951e-06,\n", - " 4.718392574432073e-06,\n", - " 4.7173257371468935e-06,\n", - " 4.716040621133288e-06,\n", - " 4.71549265057547e-06,\n", - " 4.71482553621172e-06,\n", - " 4.71395878776093e-06,\n", - " 4.714067017630441e-06,\n", - " 4.71353814646136e-06,\n", - " 4.712836471298942e-06,\n", - " 4.7125276978476904e-06,\n", - " 4.712316240329528e-06,\n", - " 4.712058398581576e-06,\n", - " 4.711535893875407e-06,\n", - " 4.711482688435353e-06,\n", - " 4.711087512987433e-06,\n", - " 4.711544988822425e-06],\n", - " 'loss': [0.30648601055145264,\n", - " 0.17231327295303345,\n", - " 0.12539470195770264,\n", - " 0.10020893812179565,\n", - " 0.09178448468446732,\n", - " 0.08137709647417068,\n", - " 0.07206308841705322,\n", - " 0.057256944477558136,\n", - " 0.05294961482286453,\n", - " 0.04877038672566414,\n", - " 0.04524555802345276,\n", - " 0.040079012513160706,\n", - " 0.03670475631952286,\n", - " 0.03016498312354088,\n", - " 0.029404371976852417,\n", - " 0.02616339921951294,\n", - " 0.02604585886001587,\n", - " 0.02159888669848442,\n", - " 0.01955566182732582,\n", - " 0.017443886026740074,\n", - " 0.015240314416587353,\n", - " 0.013656704686582088,\n", - " 0.012432842515408993,\n", - " 0.011758713982999325,\n", - " 0.011179047636687756,\n", - " 0.009406129829585552,\n", - " 0.008792762644588947,\n", - " 0.00785292312502861,\n", - " 0.00764220766723156,\n", - " 0.0069798934273421764,\n", - " 0.005929442122578621,\n", - " 0.00583580182865262,\n", - " 0.005070519633591175,\n", - " 0.004584070760756731,\n", - " 0.004380729515105486,\n", - " 0.0039043554570525885,\n", - " 0.0036823840346187353,\n", - " 0.003121868474408984,\n", - " 0.0029378121253103018,\n", - " 0.0027718590572476387,\n", - " 0.002403492806479335,\n", - " 0.002596942475065589,\n", - " 0.002093954710289836,\n", - " 0.002055332064628601,\n", - " 0.0019100041827186942,\n", - " 0.001678098109550774,\n", - " 0.0015641257632523775,\n", - " 0.0015202162321656942,\n", - " 0.001371403457596898,\n", - " 0.001403785077854991,\n", - " 0.0012853954685851932,\n", - " 0.0012285530101507902,\n", - " 0.0011501156259328127,\n", - " 0.0010609555756673217,\n", - " 0.001058138906955719,\n", - " 0.0009922973113134503,\n", - " 0.0010090821888297796,\n", - " 0.0009523544576950371,\n", - " 0.0009076613350771368,\n", - " 0.0008950438932515681,\n", - " 0.0008835873450152576,\n", - " 0.0008577112457714975,\n", - " 0.0008402072708122432,\n", - " 0.0008168538333848119,\n", - " 0.000813478312920779,\n", - " 0.0007976202177815139,\n", - " 0.0007844835636205971,\n", - " 0.0007707226905040443,\n", - " 0.000765060365665704,\n", - " 0.0007560566300526261,\n", - " 0.0007469917181879282,\n", - " 0.0007387903751805425,\n", - " 0.0007344671757891774,\n", - " 0.0007288424530997872,\n", - " 0.0007215943187475204,\n", - " 0.0007187195005826652,\n", - " 0.0007133104954846203,\n", - " 0.0007089162245392799,\n", - " 0.0007070220308378339,\n", - " 0.0007033782312646508,\n", - " 0.0007000636542215943,\n", - " 0.0006962578627280891,\n", - " 0.0006947630899958313,\n", - " 0.0006916335551068187,\n", - " 0.0006891160737723112,\n", - " 0.0006869803764857352,\n", - " 0.0006848273333162069,\n", - " 0.0006834670784883201,\n", - " 0.0006819777772761881,\n", - " 0.0006801678682677448,\n", - " 0.0006790790939703584,\n", - " 0.0006776662194170058,\n", - " 0.0006763586425222456,\n", - " 0.0006750965840183198,\n", - " 0.0006742294644936919,\n", - " 0.0006733413320034742,\n", - " 0.000672198599204421,\n", - " 0.0006714383489452302,\n", - " 0.0006705404375679791,\n", - " 0.000669809291139245],\n", - " 'mass_balance': [0.28992345929145813,\n", - " 0.1696203649044037,\n", - " 0.1245775818824768,\n", - " 0.09968571364879608,\n", - " 0.09139259904623032,\n", - " 0.08108312636613846,\n", - " 0.07183856517076492,\n", - " 0.05711941421031952,\n", - " 0.052825648337602615,\n", - " 0.048665404319763184,\n", - " 0.04515230283141136,\n", - " 0.04000015929341316,\n", - " 0.03663957118988037,\n", - " 0.030117226764559746,\n", - " 0.029365424066781998,\n", - " 0.026129310950636864,\n", - " 0.02601895108819008,\n", - " 0.021564332768321037,\n", - " 0.01952822133898735,\n", - " 0.017421750351786613,\n", - " 0.015222830697894096,\n", - " 0.013639131560921669,\n", - " 0.012420604936778545,\n", - " 0.011748346500098705,\n", - " 0.011165905743837357,\n", - " 0.009393330663442612,\n", - " 0.00878295861184597,\n", - " 0.007845276035368443,\n", - " 0.007633090019226074,\n", - " 0.006970338989049196,\n", - " 0.0059210676699876785,\n", - " 0.005827996879816055,\n", - " 0.005064042750746012,\n", - " 0.00457689817994833,\n", - " 0.004373996052891016,\n", - " 0.0038968229200690985,\n", - " 0.0036758396308869123,\n", - " 0.003116681706160307,\n", - " 0.002932669362053275,\n", - " 0.00276594003662467,\n", - " 0.002398006385192275,\n", - " 0.0025909102987498045,\n", - " 0.0020891136955469847,\n", - " 0.002050071721896529,\n", - " 0.0019051755079999566,\n", - " 0.0016737208934500813,\n", - " 0.0015591479605063796,\n", - " 0.0015149891842156649,\n", - " 0.0013664665166288614,\n", - " 0.001398497261106968,\n", - " 0.0012803340796381235,\n", - " 0.0012235511094331741,\n", - " 0.0011449819430708885,\n", - " 0.0010562300449237227,\n", - " 0.0010532340966165066,\n", - " 0.0009873538510873914,\n", - " 0.0010040433844551444,\n", - " 0.0009474873077124357,\n", - " 0.0009026402258314192,\n", - " 0.0008902117260731757,\n", - " 0.0008786250837147236,\n", - " 0.0008528471225872636,\n", - " 0.0008353753364644945,\n", - " 0.0008118956466205418,\n", - " 0.0008086940506473184,\n", - " 0.000793011044152081,\n", - " 0.0007796218851581216,\n", - " 0.0007659022230654955,\n", - " 0.0007601975230500102,\n", - " 0.0007513085147365928,\n", - " 0.0007420866750180721,\n", - " 0.0007340752054005861,\n", - " 0.0007296513067558408,\n", - " 0.0007241083076223731,\n", - " 0.0007167430012486875,\n", - " 0.0007139622466638684,\n", - " 0.000708507839590311,\n", - " 0.0007042676443234086,\n", - " 0.0007021916680969298,\n", - " 0.0006986657972447574,\n", - " 0.0006952557014301419,\n", - " 0.0006915002595633268,\n", - " 0.0006899730069562793,\n", - " 0.0006869392236694694,\n", - " 0.0006842977018095553,\n", - " 0.0006822088616900146,\n", - " 0.0006800602423027158,\n", - " 0.0006787151214666665,\n", - " 0.0006773100467398763,\n", - " 0.0006753901834599674,\n", - " 0.0006744506536051631,\n", - " 0.0006728798034600914,\n", - " 0.000671558256726712,\n", - " 0.0006704204715788364,\n", - " 0.0006694469484500587,\n", - " 0.000668513064738363,\n", - " 0.0006674117757938802,\n", - " 0.0006666934350505471,\n", - " 0.0006657900521531701,\n", - " 0.0006664929678663611],\n", - " 'val_huber': [0.005201284773647785,\n", - " 0.0012923928443342447,\n", - " 0.0006627636030316353,\n", - " 0.00042667306843213737,\n", - " 0.00027613641577772796,\n", - " 0.0002216041466454044,\n", - " 0.00015488243661820889,\n", - " 0.00014596043911296874,\n", - " 9.086774662137032e-05,\n", - " 0.00010800284508150071,\n", - " 6.072385804145597e-05,\n", - " 5.602455712505616e-05,\n", - " 4.8251691623590887e-05,\n", - " 4.7942019591573626e-05,\n", - " 3.946639844798483e-05,\n", - " 3.375155574758537e-05,\n", - " 3.647833364084363e-05,\n", - " 2.510796366550494e-05,\n", - " 2.126926301571075e-05,\n", - " 2.1749185179942288e-05,\n", - " 2.0177141777821817e-05,\n", - " 1.5768278899486177e-05,\n", - " 1.3621114703710191e-05,\n", - " 1.2724695807264652e-05,\n", - " 1.1089017789345235e-05,\n", - " 1.0136632226931397e-05,\n", - " 8.767069630266633e-06,\n", - " 7.954341526783537e-06,\n", - " 7.5360685514169745e-06,\n", - " 7.445102255587699e-06,\n", - " 6.916348866070621e-06,\n", - " 6.754000423825346e-06,\n", - " 6.267141998250736e-06,\n", - " 6.224123353604227e-06,\n", - " 6.1399505284498446e-06,\n", - " 5.812878498545615e-06,\n", - " 5.73702027395484e-06,\n", - " 5.498338396137115e-06,\n", - " 5.421410605777055e-06,\n", - " 5.299044914863771e-06,\n", - " 5.108431196276797e-06,\n", - " 5.040476480644429e-06,\n", - " 4.9326554290018976e-06,\n", - " 4.881565018877154e-06,\n", - " 4.868429186899448e-06,\n", - " 4.776351488544606e-06,\n", - " 4.694877134170383e-06,\n", - " 4.6527843551302794e-06,\n", - " 4.6385612222366035e-06,\n", - " 4.597116003424162e-06,\n", - " 4.5821902858733665e-06,\n", - " 4.559493390843272e-06,\n", - " 4.553502549242694e-06,\n", - " 4.531224476522766e-06,\n", - " 4.522975359577686e-06,\n", - " 4.499182068684604e-06,\n", - " 4.484040800889488e-06,\n", - " 4.474295565159991e-06,\n", - " 4.4657635953626595e-06,\n", - " 4.46186004410265e-06,\n", - " 4.449606876733014e-06,\n", - " 4.4387397792888805e-06,\n", - " 4.432703462953214e-06,\n", - " 4.42938244304969e-06,\n", - " 4.429067757882876e-06,\n", - " 4.420137429406168e-06,\n", - " 4.419258402776904e-06,\n", - " 4.414219802129082e-06,\n", - " 4.4083758439228404e-06,\n", - " 4.4077228267269675e-06,\n", - " 4.404752871778328e-06,\n", - " 4.402321337693138e-06,\n", - " 4.398110377223929e-06,\n", - " 4.3989152800349984e-06,\n", - " 4.395626092446037e-06,\n", - " 4.394668849272421e-06,\n", - " 4.389917194203008e-06,\n", - " 4.389116384118097e-06,\n", - " 4.387592525745276e-06,\n", - " 4.385979536891682e-06,\n", - " 4.385893134895014e-06,\n", - " 4.383934083307395e-06,\n", - " 4.382837232697057e-06,\n", - " 4.383563464216422e-06,\n", - " 4.381744929560227e-06,\n", - " 4.380144673632458e-06,\n", - " 4.379347501526354e-06,\n", - " 4.379693109513028e-06,\n", - " 4.377741788630374e-06,\n", - " 4.37848348155967e-06,\n", - " 4.378244284453103e-06,\n", - " 4.37762719229795e-06,\n", - " 4.3779509724117815e-06,\n", - " 4.377348432171857e-06,\n", - " 4.377521236165194e-06,\n", - " 4.376238848635694e-06,\n", - " 4.376393917482346e-06,\n", - " 4.376391643745592e-06,\n", - " 4.375826847535791e-06,\n", - " 4.375569005787838e-06],\n", - " 'val_loss': [0.3554118573665619,\n", - " 0.14072169363498688,\n", - " 0.18250100314617157,\n", - " 0.10625234246253967,\n", - " 0.0550912544131279,\n", - " 0.07982474565505981,\n", - " 0.06212713196873665,\n", - " 0.052029162645339966,\n", - " 0.025773700326681137,\n", - " 0.08815066516399384,\n", - " 0.034315552562475204,\n", - " 0.04443306848406792,\n", - " 0.026383033022284508,\n", - " 0.036652978509664536,\n", - " 0.048315778374671936,\n", - " 0.02544834092259407,\n", - " 0.019760675728321075,\n", - " 0.018324358388781548,\n", - " 0.019503841176629066,\n", - " 0.016593070700764656,\n", - " 0.025827599689364433,\n", - " 0.02246992290019989,\n", - " 0.009874003008008003,\n", - " 0.02192152850329876,\n", - " 0.005770025309175253,\n", - " 0.009400702081620693,\n", - " 0.009708519093692303,\n", - " 0.004203513730317354,\n", - " 0.00473543256521225,\n", - " 0.009447645395994186,\n", - " 0.005036721937358379,\n", - " 0.004580398090183735,\n", - " 0.00723404623568058,\n", - " 0.007191700395196676,\n", - " 0.0035864152014255524,\n", - " 0.0027530172374099493,\n", - " 0.001993797719478607,\n", - " 0.002578657353296876,\n", - " 0.0016335397958755493,\n", - " 0.0034430362284183502,\n", - " 0.0016514776507392526,\n", - " 0.00154941959772259,\n", - " 0.001672835205681622,\n", - " 0.0022707339376211166,\n", - " 0.003024233039468527,\n", - " 0.0017011138843372464,\n", - " 0.00135646085254848,\n", - " 0.0013078938936814666,\n", - " 0.0013143954565748572,\n", - " 0.00168643519282341,\n", - " 0.0012276587076485157,\n", - " 0.0012025146279484034,\n", - " 0.0011409894796088338,\n", - " 0.0011019987286999822,\n", - " 0.0010852228151634336,\n", - " 0.0009970556711778045,\n", - " 0.001057568471878767,\n", - " 0.0010358155705034733,\n", - " 0.0009088307269848883,\n", - " 0.0010502993827685714,\n", - " 0.0008797580958344042,\n", - " 0.0008040553657338023,\n", - " 0.0007910137064754963,\n", - " 0.000899291830137372,\n", - " 0.0008638582658022642,\n", - " 0.0009095508721657097,\n", - " 0.0008973782532848418,\n", - " 0.0008580106659792364,\n", - " 0.0007925477693788707,\n", - " 0.0007486609974876046,\n", - " 0.0007689266931265593,\n", - " 0.0007510561845265329,\n", - " 0.000827563984785229,\n", - " 0.0008436156203970313,\n", - " 0.0007380963070318103,\n", - " 0.0007210447802208364,\n", - " 0.000752260850276798,\n", - " 0.0007482616929337382,\n", - " 0.000721216609235853,\n", - " 0.0007855220464989543,\n", - " 0.0007415070431306958,\n", - " 0.0007293731905519962,\n", - " 0.0006993496208451688,\n", - " 0.0006982010090723634,\n", - " 0.0007090615690685809,\n", - " 0.0006930531817488372,\n", - " 0.0006872066296637058,\n", - " 0.0006992127164267004,\n", - " 0.0007101157680153847,\n", - " 0.0006819805130362511,\n", - " 0.0006836954271420836,\n", - " 0.0006987039814703166,\n", - " 0.0006765545695088804,\n", - " 0.0006867556949146092,\n", - " 0.0006773460190743208,\n", - " 0.0006818092078901827,\n", - " 0.0006762673147022724,\n", - " 0.0006752805784344673,\n", - " 0.0006747819716110826,\n", - " 0.0006738057709299028],\n", - " 'val_mass_balance': [0.35021522641181946,\n", - " 0.1394379734992981,\n", - " 0.18183398246765137,\n", - " 0.10583663731813431,\n", - " 0.05481866002082825,\n", - " 0.07961198687553406,\n", - " 0.06197033077478409,\n", - " 0.051894836127758026,\n", - " 0.025688081979751587,\n", - " 0.08804472535848618,\n", - " 0.03425372764468193,\n", - " 0.04437873885035515,\n", - " 0.026329094544053078,\n", - " 0.03660159558057785,\n", - " 0.048272017389535904,\n", - " 0.025413667783141136,\n", - " 0.019724544137716293,\n", - " 0.018299173563718796,\n", - " 0.0194828100502491,\n", - " 0.016570812091231346,\n", - " 0.025805149227380753,\n", - " 0.022451717406511307,\n", - " 0.009862499311566353,\n", - " 0.021908782422542572,\n", - " 0.005759319290518761,\n", - " 0.009390369057655334,\n", - " 0.00970003753900528,\n", - " 0.004195359069854021,\n", - " 0.004727505147457123,\n", - " 0.009439199231564999,\n", - " 0.00502851651981473,\n", - " 0.0045739514753222466,\n", - " 0.007227415218949318,\n", - " 0.00718472758308053,\n", - " 0.003580695716664195,\n", - " 0.0027465075254440308,\n", - " 0.0019877778831869364,\n", - " 0.00257281051017344,\n", - " 0.0016277511604130268,\n", - " 0.0034374732058495283,\n", - " 0.0016461930936202407,\n", - " 0.0015438479604199529,\n", - " 0.0016676313243806362,\n", - " 0.002265515737235546,\n", - " 0.003019126830622554,\n", - " 0.0016960910288617015,\n", - " 0.0013514243764802814,\n", - " 0.0013028718531131744,\n", - " 0.001309368759393692,\n", - " 0.0016814287519082427,\n", - " 0.001222927705384791,\n", - " 0.0011976248351857066,\n", - " 0.001136238221079111,\n", - " 0.0010970447910949588,\n", - " 0.0010802543256431818,\n", - " 0.000992113258689642,\n", - " 0.001052781823091209,\n", - " 0.0010309231001883745,\n", - " 0.0009041248122230172,\n", - " 0.0010457386961206794,\n", - " 0.0008749476983211935,\n", - " 0.0007993136532604694,\n", - " 0.0007862630300223827,\n", - " 0.0008946022135205567,\n", - " 0.0008592592785134912,\n", - " 0.000905013526789844,\n", - " 0.0008927428280003369,\n", - " 0.0008533502114005387,\n", - " 0.0007878062315285206,\n", - " 0.0007440654444508255,\n", - " 0.0007643401622772217,\n", - " 0.0007463873480446637,\n", - " 0.0008230630191974342,\n", - " 0.0008388996939174831,\n", - " 0.0007335346890613437,\n", - " 0.0007164428243413568,\n", - " 0.000747605343349278,\n", - " 0.0007435783045366406,\n", - " 0.000716604117769748,\n", - " 0.000781018054112792,\n", - " 0.0007368420483544469,\n", - " 0.0007246945751830935,\n", - " 0.0006947608781047165,\n", - " 0.0006936006830073893,\n", - " 0.0007044760859571397,\n", - " 0.0006884249160066247,\n", - " 0.0006826136959716678,\n", - " 0.0006945744971744716,\n", - " 0.0007055643363855779,\n", - " 0.0006773463101126254,\n", - " 0.000679083401337266,\n", - " 0.000694122223649174,\n", - " 0.0006719458033330739,\n", - " 0.0006821651477366686,\n", - " 0.0006727080326527357,\n", - " 0.0006771697080694139,\n", - " 0.0006716735661029816,\n", - " 0.0006706715212203562,\n", - " 0.000670175941195339,\n", - " 0.0006691797752864659]}" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "history.history" + "history = model_training(model)" ] }, { @@ -3184,7 +2408,7 @@ ], "metadata": { "kernelspec": { - "display_name": "training", + "display_name": "ai", "language": "python", "name": "python3" }, @@ -3198,7 +2422,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.11" + "version": "3.12.8" } }, "nbformat": 4,