From 052cf356c9fc8f4f72e926adabb61b3f878f86c3 Mon Sep 17 00:00:00 2001 From: Hannes Signer Date: Tue, 18 Feb 2025 14:41:41 +0100 Subject: [PATCH] restructure project --- Barite_50_Data.h5 | 3 - Barite_50_Data_inference.h5 | 3 - Barite_50_Data_training.h5 | 3 - __pycache__/preprocessing.cpython-311.pyc | Bin 15720 -> 21746 bytes barite_50_4_corner.h5 | 3 - doc/measurement_plan.md | 24 + loss_1_to_end.png | Bin 87084 -> 0 bytes loss_all.png | Bin 63236 -> 0 bytes optuna_runs.py | 225 ---- preprocessing.py | 332 ------ .../POET_Training.ipynb | 990 +++++++++++++----- convert_data.jl => src/convert_data.jl | 0 src/optuna_runs.py | 106 ++ src/preprocessing.py | 357 +++++++ 14 files changed, 1220 insertions(+), 826 deletions(-) delete mode 100644 Barite_50_Data.h5 delete mode 100644 Barite_50_Data_inference.h5 delete mode 100644 Barite_50_Data_training.h5 delete mode 100644 barite_50_4_corner.h5 create mode 100644 doc/measurement_plan.md delete mode 100644 loss_1_to_end.png delete mode 100644 loss_all.png delete mode 100644 optuna_runs.py delete mode 100644 preprocessing.py rename POET_Training.ipynb => src/POET_Training.ipynb (52%) rename convert_data.jl => src/convert_data.jl (100%) create mode 100644 src/optuna_runs.py create mode 100644 src/preprocessing.py diff --git a/Barite_50_Data.h5 b/Barite_50_Data.h5 deleted file mode 100644 index 91ec8d7..0000000 --- a/Barite_50_Data.h5 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:925b9e7a484e38bb0ba3ffb9f487854e471b476379f3d1c1adc08112f49f3eeb -size 13021031 diff --git a/Barite_50_Data_inference.h5 b/Barite_50_Data_inference.h5 deleted file mode 100644 index 4a8c6ee..0000000 --- a/Barite_50_Data_inference.h5 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:03523c238f6afe6585a7c93110fee1f3b1f52da6a262d62fe0184646b5a48798 -size 168757224 diff --git a/Barite_50_Data_training.h5 b/Barite_50_Data_training.h5 deleted file mode 100644 index 182d286..0000000 --- a/Barite_50_Data_training.h5 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3c35aae40ae8bbe153a59cdaa5ac687769f1c00e7482b4925602179093a9767f -size 329314569 diff --git a/__pycache__/preprocessing.cpython-311.pyc b/__pycache__/preprocessing.cpython-311.pyc index ebe217b8e08a22cc2d490bc4fed182428ab9b182..41b0d6a8d8e35fc9a77ba463e796a2ea6a960e30 100644 GIT binary patch delta 7426 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 LfA<=$IO+cZVU%n; delta 3258 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�%` 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 0: - return np.log10(val) - elif val < 0: - return -np.log10(-val) - else: - return 0 - -def Safeexp(val): - if val > 0: - return -10 ** -val - elif val < 0: - return 10 ** val - else: - return 0 - -# ? Why does the charge is using another logarithm than the other species - -func_dict_in = { - "H" : np.log1p, - "O" : np.log1p, - "Charge" : Safelog, - "H_0_" : np.log1p, - "O_0_" : np.log1p, - "Ba" : np.log1p, - "Cl" : np.log1p, - "S_2_" : np.log1p, - "S_6_" : np.log1p, - "Sr" : np.log1p, - "Barite" : np.log1p, - "Celestite" : np.log1p, -} - -func_dict_out = { - "H" : np.expm1, - "O" : np.expm1, - "Charge" : Safeexp, - "H_0_" : np.expm1, - "O_0_" : np.expm1, - "Ba" : np.expm1, - "Cl" : np.expm1, - "S_2_" : np.expm1, - "S_6_" : np.expm1, - "Sr" : np.expm1, - "Barite" : np.expm1, - "Celestite" : np.expm1, -} - -# os.chdir('/mnt/beegfs/home/signer/projects/model-training') -data_file = h5py.File("barite_50_4_corner.h5") - -design = data_file["design"] -results = data_file["result"] - -df_design = pd.DataFrame(np.array(design["data"]).transpose(), columns = np.array(design["names"].asstr())) -df_results = pd.DataFrame(np.array(results["data"]).transpose(), columns = np.array(results["names"].asstr())) - -data_file.close() - -species_columns = ['H', 'O', 'Charge', 'Ba', 'Cl', 'S', 'Sr', 'Barite', 'Celestite'] - -preprocess = preprocessing(func_dict_in=func_dict_in, func_dict_out=func_dict_out) -X, y = preprocess.cluster(df_design[species_columns], df_results[species_columns]) -# X, y = preprocess.funcTranform(X, y) - -X_train, X_test, y_train, y_test = preprocess.split(X, y, ratio = 0.2) -X_train, y_train = preprocess.balancer(X_train, y_train, strategy = "over") -preprocess.scale_fit(X_train, y_train, scaling = "individual") -X_train, X_test, y_train, y_test = preprocess.scale_transform(X_train, X_test, y_train, y_test) -X_train, X_val, y_train, y_val = preprocess.split(X_train, y_train, ratio = 0.1) - -column_dict = {"Ba": X.columns.get_loc("Ba"), "Barite":X.columns.get_loc("Barite"), "Sr":X.columns.get_loc("Sr"), "Celestite":X.columns.get_loc("Celestite"), "H":X.columns.get_loc("H"), "H":X.columns.get_loc("H"), "O":X.columns.get_loc("O")} - -def custom_loss(preprocess, column_dict, h1, h2, h3, h4): - # extract the scaling parameters - scale_X = tf.convert_to_tensor(preprocess.scaler_X.scale_, dtype=tf.float32) - min_X = tf.convert_to_tensor(preprocess.scaler_X.min_, dtype=tf.float32) - scale_y = tf.convert_to_tensor(preprocess.scaler_y.scale_, dtype=tf.float32) - min_y = tf.convert_to_tensor(preprocess.scaler_y.min_, dtype=tf.float32) - - def loss(results, predicted): - # inverse min/max scaling - predicted_inverse = predicted * scale_X + min_X - results_inverse = results * scale_y + min_y - - # mass balance - dBa = tf.keras.backend.abs( - (predicted_inverse[:, column_dict["Ba"]] + predicted_inverse[:, column_dict["Barite"]]) - - (results_inverse[:, column_dict["Ba"]] + results_inverse[:, column_dict["Barite"]]) - ) - dSr = tf.keras.backend.abs( - (predicted_inverse[:, column_dict["Sr"]] + predicted_inverse[:, column_dict["Celestite"]]) - - (results_inverse[:, column_dict["Sr"]] + results_inverse[:, column_dict["Celestite"]]) - ) - - # H/O ratio has to be 2 - h2o_ratio = tf.keras.backend.abs( - (predicted_inverse[:, column_dict["H"]] / predicted_inverse[:, column_dict["O"]]) - 2 - ) - - # huber loss - huber_loss = tf.keras.losses.Huber()(results, predicted) - - # total loss - total_loss = h1 * huber_loss + h2 * dBa**2 + h3 * dSr**2 #+ h4 * h2o_ratio**2 - - return total_loss - - return loss - -def mass_balance(model, X, preprocess): - - # predict the chemistry - columns = X.iloc[:, X.columns != "Class"].columns - prediction = pd.DataFrame(model.predict(X[columns]), columns=columns) - - # backtransform min/max - X = pd.DataFrame(preprocess.scaler_X.inverse_transform(X.iloc[:, X.columns != "Class"]), columns=columns) - prediction = pd.DataFrame(preprocess.scaler_y.inverse_transform(prediction), columns=columns) - - # calculate mass balance dBa = np.abs((prediction["Ba"] + prediction["Barite"]) - (X["Ba"] + X["Barite"])) - dSr = np.abs((prediction["Sr"] + prediction["Celestite"]) - (X["Sr"] + X["Celestite"])) - - return dBa + dSr - -import optuna - -def create_model(model, preprocess, h1, h2, h3, h4): - - model.compile(optimizer=optimizer_simple, loss=custom_loss(preprocess, column_dict, h1, h2, h3, h4)) - - return model - - -def objective(trial, preprocess, X_train, y_train, X_val, y_val, X_test, y_test): - h1 = trial.suggest_float("h1", 0.1, 10) - h2 = trial.suggest_float("h2", 0.1, 10) - h3 = trial.suggest_float("h3", 0.1, 10) - h4 = trial.suggest_float("h4", 0.1, 10) - - model = create_model(model_simple, preprocess, h1, h2, h3, h4) - - callback = keras.callbacks.EarlyStopping(monitor='loss', patience=3) - history = model.fit(X_train.loc[:, X_train.columns != "Class"], - y_train.loc[:, y_train.columns != "Class"], - batch_size=batch_size, - epochs=50, - validation_data=(X_val.loc[:, X_val.columns != "Class"], y_val.loc[:, y_val.columns != "Class"]), - callbacks=[callback]) - - prediction_loss = model.evaluate(X_test.loc[:, X_test.columns != "Class"], y_test.loc[:, y_test.columns != "Class"]) - mass_balance_results = mass_balance(model, X_test, preprocess) - - mass_balance_ratio = len(mass_balance_results[mass_balance_results < 1e-5]) / len(mass_balance_results) - - return prediction_loss, mass_balance_ratio - -if __name__ == "__main__": - study = optuna.create_study(storage="sqlite:///model_optimization.db", study_name="model_optimization", directions=["minimize", "maximize"]) - study.optimize(lambda trial: objective(trial, preprocess, X_train, y_train, X_val, y_val, X_test, y_test), n_trials=1000) - - print("Number of finished trials: ", len(study.trials)) - - print("Best trial:") - trial = study.best_trial - - print(" Value: ", trial.value) - - print(" Params: ") - for key, value in trial.params.items(): - print(" {}: {}".format(key, value)) \ No newline at end of file diff --git a/preprocessing.py b/preprocessing.py deleted file mode 100644 index 4597334..0000000 --- a/preprocessing.py +++ /dev/null @@ -1,332 +0,0 @@ -import keras -print("Running Keras in version {}".format(keras.__version__)) - -import h5py -import numpy as np -import pandas as pd -import time -import sklearn.model_selection as sk -import matplotlib.pyplot as plt -from sklearn.cluster import KMeans -from imblearn.over_sampling import SMOTE -from imblearn.under_sampling import RandomUnderSampler -from imblearn.over_sampling import RandomOverSampler -from collections import Counter -import os -from sklearn.preprocessing import StandardScaler, MinMaxScaler -from sklearn.base import clone - -# preprocessing pipeline -# - -def Safelog(val): - # get range of vector - if val > 0: - return np.log10(val) - elif val < 0: - return -np.log10(-val) - else: - return 0 - -def Safeexp(val): - if val > 0: - return -10 ** -val - elif val < 0: - return 10 ** val - else: - return 0 - - -class FuncTransform(): - ''' - Class to transform and inverse transform data with given functions. - Transform and inverse transform functions have to be given as dictionaries in the following format: - {'key1': function1, 'key2': function2, ...} - ''' - - def __init__(self, func_transform, func_inverse): - self.func_transform = func_transform - self.func_inverse = func_inverse - - def fit(self, X, y=None): - return self - - def transform(self, X, y=None): - X = X.copy() - for key in X.keys(): - if "Class" not in key: - X[key] = X[key].apply(self.func_transform[key]) - return X - - def fit_transform(self, X, y=None): - self.fit(X) - return self.transform(X, y) - - def inverse_transform(self, X_log): - X_log = X_log.copy() - for key in X_log.keys(): - if "Class" not in key: - X_log[key] = X_log[key].apply(self.func_inverse[key]) - return X_log - - -def clustering(X, n_clusters=2, random_state=42, x_length=50, y_length=50, species='Barite'): - ''' - Function to cluster data with KMeans. - ''' - - class_labels = np.array([]) - grid_length = x_length * y_length - iterations = int(len(X) / grid_length) - - for i in range(0, iterations): - field = np.array(X[species][(i*grid_length):(i*grid_length+grid_length)] - ).reshape(x_length, y_length) - kmeans = KMeans(n_clusters=n_clusters, random_state=random_state).fit( - field.reshape(-1, 1)) - - class_labels = np.append(class_labels.astype(int), kmeans.labels_) - - if("Class" in X.columns): - print("Class column already exists") - else: - class_labels_df = pd.DataFrame(class_labels, columns=['Class']) - X_clustered = pd.concat([X, class_labels_df], axis=1) - - return X_clustered - - -def balancer(design, target, strategy, sample_fraction=0.5): - - number_features = (design.columns != "Class").sum() - if("Class" not in design.columns): - if("Class" in target.columns): - classes = target['Class'] - else: - raise Exception("No class column found") - else: - classes = design['Class'] - counter = classes.value_counts() - print("Amount class 0 before:", counter[0] / (counter[0] + counter[1]) ) - print("Amount class 1 before:", counter[1] / (counter[0] + counter[1]) ) - df = pd.concat([design.loc[:,design.columns != "Class"], target.loc[:, target.columns != "Class"], classes], axis=1) - - if strategy == 'smote': - print("Using SMOTE strategy") - smote = SMOTE(sampling_strategy=sample_fraction) - df_resampled, classes_resampled = smote.fit_resample(df.loc[:, df.columns != "Class"], df.loc[:, df.columns == "Class"]) - - elif strategy == 'over': - print("Using Oversampling") - over = RandomOverSampler() - df_resampled, classes_resampled = over.fit_resample(df.loc[:, df.columns != "Class"], df.loc[:, df.columns == "Class"]) - - elif strategy == 'under': - print("Using Undersampling") - under = RandomUnderSampler() - df_resampled, classes_resampled = under.fit_resample(df.loc[:, df.columns != "Class"], df.loc[:, df.columns == "Class"]) - - else: - return design, target - - counter = classes_resampled["Class"].value_counts() - print("Amount class 0 after:", counter[0] / (counter[0] + counter[1]) ) - print("Amount class 1 after:", counter[1] / (counter[0] + counter[1]) ) - - design_resampled = pd.concat([df_resampled.iloc[:,0:number_features], classes_resampled], axis=1) - target_resampled = pd.concat([df_resampled.iloc[:,number_features:], classes_resampled], axis=1) - - return design_resampled, target_resampled - - -def plot_simulation(X, timestep, component='Barite', x_length=50, y_length=50): - grid_length = x_length * y_length - max_iter = int(len(X) / grid_length) - if(timestep >= max_iter): - raise Exception("timestep is not in the simulation range") - - plt.imshow(np.array(X[component][(timestep*grid_length):(timestep*grid_length+grid_length)]).reshape(x_length,y_length), interpolation='bicubic', origin='lower') - - if("Class" in X.columns): - plt.contour(np.array(X['Class'][(timestep*grid_length):(timestep*grid_length+grid_length)]).reshape(x_length,y_length), levels=[0.1], colors='red', origin='lower') - - plt.show() - - -def preprocessing_training(df_design, df_targets, func_dict_in, func_dict_out, sampling, scaling, test_size): - - df_design = clustering(df_design) - df_targets = pd.concat([df_targets, df_design['Class']], axis=1) - - df_design_log = FuncTransform(func_dict_in, func_dict_out).fit_transform(df_design) - df_results_log = FuncTransform(func_dict_in, func_dict_out).fit_transform(df_targets) - - X_train, X_test, y_train, y_test = sk.train_test_split(df_design_log, df_results_log, test_size = test_size, random_state=42) - - X_train, y_train = balancer(X_train, y_train, sampling) - - scaler_X = MinMaxScaler() - scaler_y = MinMaxScaler() - - if scaling == 'individual': - scaler_X.fit(X_train.iloc[:, X_train.columns != "Class"]) - scaler_y.fit(y_train.iloc[:, y_train.columns != "Class"]) - - elif scaling == 'global': - scaler_X.fit(pd.concat([X_train.iloc[:, X_train.columns != "Class"], y_train.iloc[:, y_train.columns != "Class"]], axis=0)) - scaler_y = scaler_X - - X_train = pd.concat([scaler_X.transform(X_train.loc[:, X_train.columns != "Class"]), X_train.loc[:, "Class"]], axis=1) - X_test = pd.concat([scaler_X.transform(X_test.loc[:, X_test.columns != "Class"]), X_test.loc[:, "Class"]], axis=1) - - y_train = pd.concat([scaler_y.transform(y_train.loc[:, y_train.columns != "Class"]), y_train.loc[:, "Class"]], axis=1) - y_test = pd.concat([scaler_y.transform(y_test.loc[:, y_test.columns != "Class"]), y_test.loc[:, "Class"]], axis=1) - - X_train, X_val, y_train, y_val = sk.train_test_split(X_train, y_train, test_size = 0.1) - - return X_train, X_val, X_test, y_train, y_val, y_test, scaler_X, scaler_y - - - -class preprocessing: - - def __init__(self, func_dict_in, func_dict_out, random_state=42): - self.random_state = random_state - self.scaler_X = None - self.scaler_y = None - self.func_dict_in = func_dict_in - self.func_dict_out = func_dict_out - self.state = {"cluster": False, "log": False, "balance": False, "scale": False} - - def funcTranform(self, X, y): - for key in X.keys(): - if "Class" not in key: - X[key] = X[key].apply(self.func_dict_in[key]) - y[key] = y[key].apply(self.func_dict_in[key]) - self.state["log"] = True - - return X, y - - def funcInverse(self, X, y): - - for key in X.keys(): - if "Class" not in key: - X[key] = X[key].apply(self.func_dict_out[key]) - y[key] = y[key].apply(self.func_dict_out[key]) - self.state["log"] = False - return X, y - - def cluster(self, X, y, species='Barite', n_clusters=2, x_length=50, y_length=50): - - class_labels = np.array([]) - grid_length = x_length * y_length - iterations = int(len(X) / grid_length) - - for i in range(0, iterations): - field = np.array(X[species][(i*grid_length):(i*grid_length+grid_length)] - ).reshape(x_length, y_length) - kmeans = KMeans(n_clusters=n_clusters, random_state=self.random_state).fit(field.reshape(-1, 1)) - class_labels = np.append(class_labels.astype(int), kmeans.labels_) - - if ("Class" in X.columns and "Class" in y.columns): - print("Class column already exists") - else: - class_labels_df = pd.DataFrame(class_labels, columns=['Class']) - X = pd.concat([X, class_labels_df], axis=1) - y = pd.concat([y, class_labels_df], axis=1) - self.state["cluster"] = True - - return X, y - - - def balancer(self, X, y, strategy, sample_fraction=0.5): - - number_features = (X.columns != "Class").sum() - if("Class" not in X.columns): - if("Class" in y.columns): - classes = y['Class'] - else: - raise Exception("No class column found") - else: - classes = X['Class'] - counter = classes.value_counts() - print("Amount class 0 before:", counter[0] / (counter[0] + counter[1]) ) - print("Amount class 1 before:", counter[1] / (counter[0] + counter[1]) ) - df = pd.concat([X.loc[:,X.columns != "Class"], y.loc[:, y.columns != "Class"], classes], axis=1) - - if strategy == 'smote': - print("Using SMOTE strategy") - smote = SMOTE(sampling_strategy=sample_fraction) - df_resampled, classes_resampled = smote.fit_resample(df.loc[:, df.columns != "Class"], df.loc[:, df. columns == "Class"]) - - elif strategy == 'over': - print("Using Oversampling") - over = RandomOverSampler() - df_resampled, classes_resampled = over.fit_resample(df.loc[:, df.columns != "Class"], df.loc[:, df. columns == "Class"]) - - elif strategy == 'under': - print("Using Undersampling") - under = RandomUnderSampler() - df_resampled, classes_resampled = under.fit_resample(df.loc[:, df.columns != "Class"], df.loc[:, df. columns == "Class"]) - - else: - return X, y - - counter = classes_resampled["Class"].value_counts() - print("Amount class 0 after:", counter[0] / (counter[0] + counter[1]) ) - print("Amount class 1 after:", counter[1] / (counter[0] + counter[1]) ) - - design_resampled = pd.concat([df_resampled.iloc[:,0:number_features], classes_resampled], axis=1) - target_resampled = pd.concat([df_resampled.iloc[:,number_features:], classes_resampled], axis=1) - - self.state['balance'] = True - return design_resampled, target_resampled - - - def scale_fit(self, X, y, scaling): - - if scaling == 'individual': - self.scaler_X = MinMaxScaler() - self.scaler_y = MinMaxScaler() - self.scaler_X.fit(X.iloc[:, X.columns != "Class"]) - self.scaler_y.fit(y.iloc[:, y.columns != "Class"]) - - elif scaling == 'global': - self.scaler_X = MinMaxScaler() - self.scaler_X.fit(pd.concat([X.iloc[:, X.columns != "Class"], y.iloc[:, y.columns != "Class"]], axis=0)) - self.scaler_y = self.scaler_X - - self.state['scale'] = True - - def scale_transform(self, X_train, X_test, y_train, y_test): - X_train = pd.concat([self.scaler_X.transform(X_train.loc[:, X_train.columns != "Class"]), X_train.loc[:, "Class"]], axis=1) - - X_test = pd.concat([self.scaler_X.transform(X_test.loc[:, X_test.columns != "Class"]), X_test.loc[:, "Class"]], axis=1) - - y_train = pd.concat([self.scaler_y.transform(y_train.loc[:, y_train.columns != "Class"]), y_train.loc[:, "Class"]], axis=1) - - y_test = pd.concat([self.scaler_y.transform(y_test.loc[:, y_test.columns != "Class"]), y_test.loc[:, "Class"]], axis=1) - - return X_train, X_test, y_train, y_test - - def scale_inverse(self, X): - - if("Class" in X.columns): - X = pd.concat([self.scaler_X.inverse_transform(X.loc[:, X.columns != "Class"]), X.loc[:, "Class"]], axis=1) - else: - X = self.scaler_X.inverse_transform(X) - - return X - - def split(self, X, y, ratio=0.8): - X_train, y_train, X_test, y_test = sk.train_test_split(X, y, test_size = ratio, random_state=self.random_state) - - return X_train, y_train, X_test, y_test - - - - - - - - \ No newline at end of file diff --git a/POET_Training.ipynb b/src/POET_Training.ipynb similarity index 52% rename from POET_Training.ipynb rename to src/POET_Training.ipynb index 56fe545..d1e696a 100644 --- a/POET_Training.ipynb +++ b/src/POET_Training.ipynb @@ -30,17 +30,26 @@ "execution_count": 1, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-02-18 13:55:19.773381: 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 13:55:19.792623: 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", "text": [ - "Running Keras in version 3.8.0\n" + "Running Keras in version 3.6.0\n" ] } ], "source": [ "import keras\n", - "from keras.layers import Dense, Dropout, Input,BatchNormalization\n", + "from keras.layers import Dense, Dropout, Input,BatchNormalization, LeakyReLU\n", "import tensorflow as tf\n", "import h5py\n", "import numpy as np\n", @@ -121,6 +130,14 @@ "execution_count": 4, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/signer/bin/miniconda3/envs/training/lib/python3.11/site-packages/keras/src/layers/activations/leaky_relu.py:41: UserWarning: Argument `alpha` is deprecated. Use `negative_slope` instead.\n", + " warnings.warn(\n" + ] + }, { "data": { "text/html": [ @@ -142,8 +159,12 @@ "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n", "│ dense (Dense) │ (None, 128) │ 1,152 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ leaky_re_lu (LeakyReLU) │ (None, 128) │ 0 │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", "│ dense_1 (Dense) │ (None, 128) │ 16,512 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ leaky_re_lu_1 (LeakyReLU) │ (None, 128) │ 0 │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", "│ dense_2 (Dense) │ (None, 8) │ 1,032 │\n", "└─────────────────────────────────┴────────────────────────┴───────────────┘\n", "\n" @@ -154,8 +175,12 @@ "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n", "│ dense (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m1,152\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ leaky_re_lu (\u001b[38;5;33mLeakyReLU\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", "│ dense_1 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m16,512\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ leaky_re_lu_1 (\u001b[38;5;33mLeakyReLU\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", "│ dense_2 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m) │ \u001b[38;5;34m1,032\u001b[0m │\n", "└─────────────────────────────────┴────────────────────────┴───────────────┘\n" ] @@ -207,11 +232,13 @@ "# small model\n", "model_simple = keras.Sequential(\n", " [\n", - " keras.Input(shape = (8,), dtype = \"float32\"),\n", - " keras.layers.Dense(units = 128, activation = \"linear\", dtype = \"float32\"),\n", + " keras.Input(shape=(8,), dtype=\"float32\"),\n", + " keras.layers.Dense(units=128, dtype=\"float32\"),\n", + " LeakyReLU(alpha=0.01),\n", " # Dropout(0.2),\n", - " keras.layers.Dense(units = 128, activation = \"elu\", dtype = \"float32\"),\n", - " keras.layers.Dense(units = 8, dtype = \"float32\")\n", + " keras.layers.Dense(units=128, dtype=\"float32\"),\n", + " LeakyReLU(alpha=0.01),\n", + " keras.layers.Dense(units=8, dtype=\"float32\")\n", " ]\n", ")\n", "\n", @@ -245,10 +272,16 @@ "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n", "│ dense_3 (Dense) │ (None, 512) │ 4,608 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ leaky_re_lu_2 (LeakyReLU) │ (None, 512) │ 0 │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", "│ dense_4 (Dense) │ (None, 1024) │ 525,312 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ leaky_re_lu_3 (LeakyReLU) │ (None, 1024) │ 0 │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", "│ dense_5 (Dense) │ (None, 512) │ 524,800 │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ leaky_re_lu_4 (LeakyReLU) │ (None, 512) │ 0 │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", "│ dense_6 (Dense) │ (None, 8) │ 4,104 │\n", "└─────────────────────────────────┴────────────────────────┴───────────────┘\n", "\n" @@ -259,10 +292,16 @@ "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\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", + "│ leaky_re_lu_2 (\u001b[38;5;33mLeakyReLU\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m512\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", "│ dense_4 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m1024\u001b[0m) │ \u001b[38;5;34m525,312\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ leaky_re_lu_3 (\u001b[38;5;33mLeakyReLU\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m1024\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", "│ dense_5 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m512\u001b[0m) │ \u001b[38;5;34m524,800\u001b[0m │\n", "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ leaky_re_lu_4 (\u001b[38;5;33mLeakyReLU\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m512\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\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" ] @@ -312,13 +351,18 @@ ], "source": [ "# large model\n", - "model_large = keras.Sequential(\n", - " [keras.layers.Input(shape=(8,), dtype=dtype),\n", - " keras.layers.Dense(512, activation='relu', dtype=dtype),\n", - " keras.layers.Dense(1024, activation='relu', dtype=dtype),\n", - " keras.layers.Dense(512, activation='relu', dtype=dtype),\n", - " keras.layers.Dense(8, dtype=dtype)\n", - " ])\n", + "model_large = keras.Sequential(\n", + " [\n", + " keras.layers.Input(shape=(8,), dtype=dtype),\n", + " keras.layers.Dense(512, dtype=dtype),\n", + " LeakyReLU(alpha=0.01),\n", + " keras.layers.Dense(1024, dtype=dtype),\n", + " LeakyReLU(alpha=0.01),\n", + " keras.layers.Dense(512, dtype=dtype),\n", + " LeakyReLU(alpha=0.01),\n", + " keras.layers.Dense(8, dtype=dtype)\n", + " ]\n", + ")\n", "\n", "model_large.compile(optimizer=optimizer_large, loss = loss)\n", "model_large.summary()\n" @@ -326,7 +370,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -424,10 +468,14 @@ "# (see https://doi.org/10.1007/s11242-022-01779-3 model for the complex chemistry)\n", "model_paper = keras.Sequential(\n", " [keras.layers.Input(shape=(8,), dtype=dtype),\n", - " keras.layers.Dense(128, activation='relu', dtype=dtype),\n", - " keras.layers.Dense(256, activation='relu', dtype=dtype),\n", - " keras.layers.Dense(512, activation='relu', dtype=dtype),\n", - " keras.layers.Dense(256, activation='relu', dtype=dtype),\n", + " keras.layers.Dense(128, dtype=dtype),\n", + " LeakyReLU(alpha=0.01),\n", + " keras.layers.Dense(256, dtype=dtype),\n", + " LeakyReLU(alpha=0.01),\n", + " keras.layers.Dense(512, dtype=dtype),\n", + " LeakyReLU(alpha=0.01),\n", + " keras.layers.Dense(256, dtype=dtype),\n", + " LeakyReLU(alpha=0.01),\n", " keras.layers.Dense(8, dtype=dtype)\n", " ])\n", "\n", @@ -520,7 +568,7 @@ "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", + "data_file = h5py.File(\"../datasets/barite_50_4_corner.h5\")\n", "\n", "design = data_file[\"design\"]\n", "results = data_file[\"result\"]\n", @@ -558,14 +606,14 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "/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", + "/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", " return fit_method(estimator, *args, **kwargs)\n" ] }, @@ -588,29 +636,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 = \"global\")\n", + "preprocess.scale_fit(X_train, y_train, scaling = \"global\", type=\"MinMax\")\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": 26, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 26, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -634,7 +682,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -643,22 +691,35 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ - "def custom_loss(preprocess, column_dict, h1, h2, h3, h4):\n", + "def custom_loss(preprocess, column_dict, h1, h2, h3, h4, scaler_type=\"minmax\"):\n", " # extract the scaling parameters\n", - " scale_X = tf.convert_to_tensor(preprocess.scaler_X.scale_, dtype=tf.float32)\n", - " min_X = tf.convert_to_tensor(preprocess.scaler_X.min_, dtype=tf.float32)\n", - " scale_y = tf.convert_to_tensor(preprocess.scaler_y.scale_, dtype=tf.float32)\n", - " min_y = tf.convert_to_tensor(preprocess.scaler_y.min_, dtype=tf.float32)\n", + " \n", + " if scaler_type == \"minmax\":\n", + " scale_X = tf.convert_to_tensor(preprocess.scaler_X.scale_, dtype=tf.float32)\n", + " min_X = tf.convert_to_tensor(preprocess.scaler_X.min_, dtype=tf.float32)\n", + " scale_y = tf.convert_to_tensor(preprocess.scaler_y.scale_, dtype=tf.float32)\n", + " min_y = tf.convert_to_tensor(preprocess.scaler_y.min_, dtype=tf.float32)\n", + " \n", + " elif scaler_type == \"standard\":\n", + " scale_X = tf.convert_to_tensor(preprocess.scaler_X.scale_, dtype=tf.float32)\n", + " mean_X = tf.convert_to_tensor(preprocess.scaler_X.mean_, dtype=tf.float32)\n", + " scale_y = tf.convert_to_tensor(preprocess.scaler_y.scale_, dtype=tf.float32)\n", + " mean_y = tf.convert_to_tensor(preprocess.scaler_y.mean_, dtype=tf.float32)\n", "\n", " def loss(results, predicted):\n", " \n", " # inverse min/max scaling\n", - " predicted_inverse = predicted #* scale_y + min_y\n", - " results_inverse = results #* scale_X + min_X\n", + " if scaler_type == \"minmax\":\n", + " predicted_inverse = predicted * scale_y + min_y\n", + " results_inverse = results * scale_X + min_X\n", + " \n", + " elif scaler_type == \"standard\":\n", + " predicted_inverse = predicted * scale_y + mean_y\n", + " results_inverse = results * scale_X + mean_X\n", "\n", " # mass balance\n", " dBa = tf.keras.backend.abs(\n", @@ -679,21 +740,69 @@ " huber_loss = tf.keras.losses.Huber()(results, predicted)\n", " \n", " # total loss\n", - " total_loss = h1 * huber_loss + h2 * dBa + h3 * dSr #+ h4 * h2o_ratio**2\n", + " total_loss = h1 * huber_loss + h2 * dBa + h3 * dSr #+ h4 * h2o_ratio\n", " # total_loss = huber_loss\n", " return total_loss\n", "\n", - " return loss" + " return loss\n", + "\n", + "\n", + "def custom_metric(preprocess, column_dict, scaler_type=\"minmax\"):\n", + " \n", + " if scaler_type == \"minmax\":\n", + " scale_X = tf.convert_to_tensor(preprocess.scaler_X.scale_, dtype=tf.float32)\n", + " min_X = tf.convert_to_tensor(preprocess.scaler_X.min_, dtype=tf.float32)\n", + " scale_y = tf.convert_to_tensor(preprocess.scaler_y.scale_, dtype=tf.float32)\n", + " min_y = tf.convert_to_tensor(preprocess.scaler_y.min_, dtype=tf.float32)\n", + "\n", + " elif scaler_type == \"standard\":\n", + " scale_X = tf.convert_to_tensor(preprocess.scaler_X.scale_, dtype=tf.float32)\n", + " mean_X = tf.convert_to_tensor(preprocess.scaler_X.mean_, dtype=tf.float32)\n", + " scale_y = tf.convert_to_tensor(preprocess.scaler_y.scale_, dtype=tf.float32)\n", + " mean_y = tf.convert_to_tensor(preprocess.scaler_y.mean_, dtype=tf.float32)\n", + " \n", + " \n", + " def mass_balance(results, predicted):\n", + " # inverse min/max scaling\n", + " if scaler_type == \"minmax\":\n", + " predicted_inverse = predicted * scale_y + min_y\n", + " results_inverse = results * scale_X + min_X\n", + " \n", + " elif scaler_type == \"standard\":\n", + " predicted_inverse = predicted * scale_y + mean_y\n", + " results_inverse = results * scale_X + mean_X\n", + "\n", + " # mass balance\n", + " dBa = tf.keras.backend.abs(\n", + " (predicted_inverse[:, column_dict[\"Ba\"]] + predicted_inverse[:, column_dict[\"Barite\"]]) -\n", + " (results_inverse[:, column_dict[\"Ba\"]] + results_inverse[:, column_dict[\"Barite\"]])\n", + " )\n", + " dSr = tf.keras.backend.abs(\n", + " (predicted_inverse[:, column_dict[\"Sr\"]] + predicted_inverse[:, column_dict[\"Celestite\"]]) -\n", + " (results_inverse[:, column_dict[\"Sr\"]] + results_inverse[:, column_dict[\"Celestite\"]])\n", + " )\n", + " \n", + " return tf.reduce_mean(dBa + dSr)\n", + " \n", + " return mass_balance\n", + "\n", + "\n", + "def huber_metric(delta=1.0):\n", + " def huber(results, predicted):\n", + " return tf.keras.losses.huber(results, predicted, delta=delta)\n", + " \n", + " return huber" ] }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ - "model_simple.compile(optimizer=optimizer_simple, loss=custom_loss(preprocess, column_dict, 1, 1, 1, 1))#custom_loss(preprocess, column_dict))\n", - "model_large.compile(optimizer=optimizer_large, loss=custom_loss(preprocess, column_dict, 1, 1, 1, 1))#custom_loss(preprocess, column_dict))" + "model_simple.compile(optimizer=optimizer_simple, loss=custom_loss(preprocess, column_dict, 1, 1, 1, 1, \"minmax\"))\n", + "\n", + "model_large.compile(optimizer=optimizer_large, loss=custom_loss(preprocess, column_dict, 1, 1, 1, 1, \"minmax\"), metrics=[huber_metric(1.0), custom_metric(preprocess, column_dict, scaler_type=\"minmax\")])" ] }, { @@ -705,7 +814,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -723,12 +832,14 @@ "\n", " end = time.time()\n", "\n", - " print(\"Training took {} seconds\".format(end - start))" + " print(\"Training took {} seconds\".format(end - start))\n", + " \n", + " return history" ] }, { "cell_type": "code", - "execution_count": 31, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -736,211 +847,207 @@ "output_type": "stream", "text": [ "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", + "\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", "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", + "\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", "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", + "\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", "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", + "\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", "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", + "\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", "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", + "\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", "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", + "\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[1m17s\u001b[0m 10ms/step - loss: 0.0021 - val_loss: 0.0013\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[1m16s\u001b[0m 10ms/step - loss: 0.0020 - val_loss: 0.0023\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[1m16s\u001b[0m 10ms/step - loss: 0.0019 - val_loss: 0.0012\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[1m17s\u001b[0m 10ms/step - loss: 0.0017 - val_loss: 0.0010\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[1m16s\u001b[0m 10ms/step - loss: 0.0016 - val_loss: 0.0011\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[1m17s\u001b[0m 10ms/step - loss: 0.0014 - val_loss: 0.0024\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[1m16s\u001b[0m 10ms/step - loss: 0.0013 - val_loss: 0.0010\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[1m17s\u001b[0m 10ms/step - loss: 0.0013 - val_loss: 0.0013\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[1m17s\u001b[0m 10ms/step - loss: 0.0011 - val_loss: 7.8773e-04\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[1m17s\u001b[0m 10ms/step - loss: 9.8307e-04 - val_loss: 9.4317e-04\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[1m18s\u001b[0m 11ms/step - loss: 0.0011 - val_loss: 7.2556e-04\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[1m17s\u001b[0m 10ms/step - loss: 8.6145e-04 - val_loss: 0.0012\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[1m18s\u001b[0m 11ms/step - loss: 8.7931e-04 - val_loss: 7.9255e-04\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[1m18s\u001b[0m 11ms/step - loss: 8.1421e-04 - val_loss: 8.6545e-04\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[1m19s\u001b[0m 11ms/step - loss: 8.0980e-04 - val_loss: 8.0041e-04\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[1m18s\u001b[0m 11ms/step - loss: 7.0201e-04 - val_loss: 7.4177e-04\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[1m19s\u001b[0m 11ms/step - loss: 7.1057e-04 - val_loss: 8.0948e-04\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[1m18s\u001b[0m 11ms/step - loss: 6.5622e-04 - val_loss: 7.4124e-04\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[1m17s\u001b[0m 10ms/step - loss: 6.3500e-04 - val_loss: 5.9376e-04\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[1m17s\u001b[0m 10ms/step - loss: 5.9934e-04 - val_loss: 6.4478e-04\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[1m17s\u001b[0m 10ms/step - loss: 5.8949e-04 - val_loss: 7.3300e-04\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[1m18s\u001b[0m 11ms/step - loss: 5.7806e-04 - val_loss: 6.7011e-04\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[1m17s\u001b[0m 10ms/step - loss: 5.6589e-04 - val_loss: 5.5847e-04\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[1m18s\u001b[0m 11ms/step - loss: 5.3306e-04 - val_loss: 5.4670e-04\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[1m18s\u001b[0m 11ms/step - loss: 5.2881e-04 - val_loss: 6.1837e-04\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[1m18s\u001b[0m 11ms/step - loss: 5.1513e-04 - val_loss: 4.9995e-04\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[1m18s\u001b[0m 11ms/step - loss: 5.0624e-04 - val_loss: 5.4048e-04\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[1m18s\u001b[0m 11ms/step - loss: 5.0185e-04 - val_loss: 5.5650e-04\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[1m18s\u001b[0m 11ms/step - loss: 4.9359e-04 - val_loss: 4.8311e-04\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[1m18s\u001b[0m 11ms/step - loss: 4.7914e-04 - val_loss: 4.7833e-04\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[1m17s\u001b[0m 10ms/step - loss: 4.7096e-04 - val_loss: 4.5319e-04\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[1m19s\u001b[0m 11ms/step - loss: 4.6474e-04 - val_loss: 5.0544e-04\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[1m18s\u001b[0m 11ms/step - loss: 4.6506e-04 - val_loss: 4.3838e-04\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[1m18s\u001b[0m 11ms/step - loss: 4.5502e-04 - val_loss: 4.6796e-04\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[1m17s\u001b[0m 10ms/step - loss: 4.5163e-04 - val_loss: 4.4342e-04\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[1m19s\u001b[0m 11ms/step - loss: 4.4623e-04 - val_loss: 4.4409e-04\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[1m16s\u001b[0m 10ms/step - loss: 4.4326e-04 - val_loss: 4.6563e-04\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[1m16s\u001b[0m 10ms/step - loss: 4.3963e-04 - val_loss: 4.4313e-04\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[1m18s\u001b[0m 10ms/step - loss: 4.3694e-04 - val_loss: 4.4041e-04\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[1m17s\u001b[0m 10ms/step - loss: 4.3481e-04 - val_loss: 4.6735e-04\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[1m21s\u001b[0m 12ms/step - loss: 4.3270e-04 - val_loss: 4.5155e-04\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[1m20s\u001b[0m 12ms/step - loss: 4.2641e-04 - val_loss: 4.2664e-04\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[1m18s\u001b[0m 11ms/step - loss: 4.2606e-04 - val_loss: 4.1384e-04\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[1m980s\u001b[0m 581ms/step - loss: 4.2314e-04 - val_loss: 4.3865e-04\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[1m17s\u001b[0m 10ms/step - loss: 4.2277e-04 - val_loss: 4.4696e-04\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[1m18s\u001b[0m 11ms/step - loss: 4.2034e-04 - val_loss: 4.1750e-04\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[1m65s\u001b[0m 39ms/step - loss: 4.1834e-04 - val_loss: 4.2273e-04\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[1m19s\u001b[0m 11ms/step - loss: 4.1589e-04 - val_loss: 4.1261e-04\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[1m21s\u001b[0m 13ms/step - loss: 4.1487e-04 - val_loss: 4.4959e-04\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[1m21s\u001b[0m 13ms/step - loss: 4.1586e-04 - val_loss: 4.1003e-04\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[1m157s\u001b[0m 93ms/step - loss: 4.1412e-04 - val_loss: 4.1569e-04\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[1m20s\u001b[0m 12ms/step - loss: 4.1268e-04 - val_loss: 4.0756e-04\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[1m21s\u001b[0m 12ms/step - loss: 4.1062e-04 - val_loss: 4.1501e-04\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[1m23s\u001b[0m 14ms/step - loss: 4.0971e-04 - val_loss: 4.1436e-04\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[1m25s\u001b[0m 15ms/step - loss: 4.0963e-04 - val_loss: 4.0847e-04\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[1m29s\u001b[0m 17ms/step - loss: 4.0908e-04 - val_loss: 4.1114e-04\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[1m32s\u001b[0m 19ms/step - loss: 4.0847e-04 - val_loss: 4.0660e-04\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[1m36s\u001b[0m 21ms/step - loss: 4.0808e-04 - val_loss: 4.0996e-04\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[1m38s\u001b[0m 22ms/step - loss: 4.0698e-04 - val_loss: 4.0384e-04\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[1m38s\u001b[0m 23ms/step - loss: 4.0676e-04 - val_loss: 4.0728e-04\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 - loss: 4.0539e-04 - val_loss: 4.0679e-04\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[1m39s\u001b[0m 23ms/step - loss: 4.0455e-04 - val_loss: 4.0366e-04\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[1m39s\u001b[0m 23ms/step - loss: 4.0342e-04 - val_loss: 4.0677e-04\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 - loss: 4.0365e-04 - val_loss: 4.0675e-04\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[1m48s\u001b[0m 28ms/step - loss: 4.0370e-04 - val_loss: 4.0298e-04\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[1m67s\u001b[0m 40ms/step - loss: 4.0327e-04 - val_loss: 4.0212e-04\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[1m66s\u001b[0m 39ms/step - loss: 4.0230e-04 - val_loss: 4.0181e-04\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[1m66s\u001b[0m 39ms/step - loss: 4.0186e-04 - val_loss: 4.0174e-04\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[1m66s\u001b[0m 39ms/step - loss: 4.0194e-04 - val_loss: 4.0180e-04\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[1m66s\u001b[0m 39ms/step - loss: 4.0250e-04 - val_loss: 4.0450e-04\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[1m64s\u001b[0m 38ms/step - loss: 4.0166e-04 - val_loss: 4.0060e-04\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[1m66s\u001b[0m 39ms/step - loss: 4.0279e-04 - val_loss: 4.0026e-04\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[1m65s\u001b[0m 38ms/step - loss: 4.0156e-04 - val_loss: 4.0022e-04\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[1m66s\u001b[0m 39ms/step - loss: 4.0187e-04 - val_loss: 4.0012e-04\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[1m66s\u001b[0m 39ms/step - loss: 4.0070e-04 - val_loss: 4.0000e-04\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[1m70s\u001b[0m 42ms/step - loss: 3.9981e-04 - val_loss: 3.9985e-04\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[1m50s\u001b[0m 30ms/step - loss: 4.0303e-04 - val_loss: 4.0034e-04\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[1m17s\u001b[0m 10ms/step - loss: 3.9996e-04 - val_loss: 3.9949e-04\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[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" + "\u001b[1m1599/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m━━\u001b[0m \u001b[1m2s\u001b[0m 23ms/step - huber: 4.6831e-06 - loss: 6.8842e-04 - mass_balance: 6.8373e-04" ] } ], "source": [ - "model_training(model_large)" + "history = model_training(model_large)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'huber': [0.002203812124207616],\n", + " 'loss': [0.15536518394947052],\n", + " 'metric': [0.1531183123588562],\n", + " 'val_huber': [0.0013130842708051205],\n", + " 'val_loss': [0.13849961757659912],\n", + " 'val_metric': [0.1371718943119049]}" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "history.history" ] }, { @@ -952,7 +1059,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 67, "metadata": {}, "outputs": [], "source": [ @@ -961,7 +1068,7 @@ " # predict the chemistry\n", " columns = X.iloc[:, X.columns != \"Class\"].columns\n", " prediction = pd.DataFrame(model.predict(X[columns]), columns=columns)\n", - " # backtransform min/max\n", + " # backtransform min/max or standard scaler\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", @@ -970,31 +1077,451 @@ " print(dBa.min())\n", " dSr = np.abs((prediction[\"Sr\"] + prediction[\"Celestite\"]) - (X[\"Sr\"] + X[\"Celestite\"]))\n", " print(dSr.min())\n", - " return dBa, dSr" + " return dBa, dSr, prediction" ] }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 44, + "metadata": {}, + "outputs": [], + "source": [ + "model_large.save(\"results/model_large_standardization.keras\")" + ] + }, + { + "cell_type": "code", + "execution_count": 53, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "\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" + "\u001b[1m26993/26993\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m27s\u001b[0m 1ms/step\n" ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
HOBaClSSrBariteCelestite
0111.01246655.5065770.0000260.0561769.027177e-050.0281580.0010071.000519
1111.01264255.506767-0.0000030.0135931.372010e-040.0069340.0010921.000284
2111.01245155.5065650.0000260.0662498.709153e-050.0331920.0010111.000633
3111.01258155.5062180.0341570.1404443.951677e-070.0360231.006732-0.000064
4111.01240555.5078050.0000140.0013133.968081e-040.0010300.0009881.000100
...........................
863768111.01239055.506592-0.0000090.0480709.337875e-050.0241320.0010081.000566
863769111.01256655.506775-0.0000120.0131121.393815e-040.0066990.0009911.000386
863770111.01236055.5064960.0000690.1083427.026148e-050.0542380.1048830.891984
863771111.01252055.5062180.0636230.1677278.158847e-080.0202471.001999-0.000021
863772111.01241355.5062180.0417040.1504932.325937e-070.0334681.0067570.000043
\n", + "

863773 rows × 8 columns

\n", + "
" + ], + "text/plain": [ + " H O Ba Cl S Sr \\\n", + "0 111.012466 55.506577 0.000026 0.056176 9.027177e-05 0.028158 \n", + "1 111.012642 55.506767 -0.000003 0.013593 1.372010e-04 0.006934 \n", + "2 111.012451 55.506565 0.000026 0.066249 8.709153e-05 0.033192 \n", + "3 111.012581 55.506218 0.034157 0.140444 3.951677e-07 0.036023 \n", + "4 111.012405 55.507805 0.000014 0.001313 3.968081e-04 0.001030 \n", + "... ... ... ... ... ... ... \n", + "863768 111.012390 55.506592 -0.000009 0.048070 9.337875e-05 0.024132 \n", + "863769 111.012566 55.506775 -0.000012 0.013112 1.393815e-04 0.006699 \n", + "863770 111.012360 55.506496 0.000069 0.108342 7.026148e-05 0.054238 \n", + "863771 111.012520 55.506218 0.063623 0.167727 8.158847e-08 0.020247 \n", + "863772 111.012413 55.506218 0.041704 0.150493 2.325937e-07 0.033468 \n", + "\n", + " Barite Celestite \n", + "0 0.001007 1.000519 \n", + "1 0.001092 1.000284 \n", + "2 0.001011 1.000633 \n", + "3 1.006732 -0.000064 \n", + "4 0.000988 1.000100 \n", + "... ... ... \n", + "863768 0.001008 1.000566 \n", + "863769 0.000991 1.000386 \n", + "863770 0.104883 0.891984 \n", + "863771 1.001999 -0.000021 \n", + "863772 1.006757 0.000043 \n", + "\n", + "[863773 rows x 8 columns]" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "dBa, dSr = mass_balance(model_large, X_test, preprocess)" + "pd.DataFrame(preprocess.scaler_X.inverse_transform(model_large.predict(X_train[species_columns])), columns=species_columns)" ] }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
HOBaClSSrBariteCelestite
0111.01243455.5065781.977602e-050.0561609.022655e-050.0281510.0010001.000490
1111.01243455.5067674.662127e-060.0135501.374302e-040.0069080.0010001.000091
2111.01243455.5065652.349696e-050.0662358.705933e-050.0331810.0010011.000613
3111.01243455.5062173.411673e-020.1401641.617992e-070.0359661.0067560.000000
4111.01243455.5078097.424997e-070.0013383.981606e-040.0010670.0010001.000093
...........................
863768111.01243455.5065911.684073e-050.0481209.347094e-050.0241370.0010011.000615
863769111.01243455.5067764.502549e-060.0130761.397029e-040.0066730.0010001.000591
863770111.01243455.5064742.738630e-040.1084226.420915e-050.0540010.1046550.892149
863771111.01243455.5062176.360786e-020.1676731.098785e-070.0202291.0020100.000000
863772111.01243455.5062174.167711e-020.1503241.392182e-070.0334851.0067630.000000
\n", + "

863773 rows × 8 columns

\n", + "
" + ], + "text/plain": [ + " H O Ba Cl S Sr \\\n", + "0 111.012434 55.506578 1.977602e-05 0.056160 9.022655e-05 0.028151 \n", + "1 111.012434 55.506767 4.662127e-06 0.013550 1.374302e-04 0.006908 \n", + "2 111.012434 55.506565 2.349696e-05 0.066235 8.705933e-05 0.033181 \n", + "3 111.012434 55.506217 3.411673e-02 0.140164 1.617992e-07 0.035966 \n", + "4 111.012434 55.507809 7.424997e-07 0.001338 3.981606e-04 0.001067 \n", + "... ... ... ... ... ... ... \n", + "863768 111.012434 55.506591 1.684073e-05 0.048120 9.347094e-05 0.024137 \n", + "863769 111.012434 55.506776 4.502549e-06 0.013076 1.397029e-04 0.006673 \n", + "863770 111.012434 55.506474 2.738630e-04 0.108422 6.420915e-05 0.054001 \n", + "863771 111.012434 55.506217 6.360786e-02 0.167673 1.098785e-07 0.020229 \n", + "863772 111.012434 55.506217 4.167711e-02 0.150324 1.392182e-07 0.033485 \n", + "\n", + " Barite Celestite \n", + "0 0.001000 1.000490 \n", + "1 0.001000 1.000091 \n", + "2 0.001001 1.000613 \n", + "3 1.006756 0.000000 \n", + "4 0.001000 1.000093 \n", + "... ... ... \n", + "863768 0.001001 1.000615 \n", + "863769 0.001000 1.000591 \n", + "863770 0.104655 0.892149 \n", + "863771 1.002010 0.000000 \n", + "863772 1.006763 0.000000 \n", + "\n", + "[863773 rows x 8 columns]" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.DataFrame(preprocess.scaler_X.inverse_transform(X_train[species_columns]), columns=species_columns)" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m3938/3938\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 1ms/step\n", + "6.703051481926625e-11\n", + "1.1166534363837854e-10\n" + ] + } + ], + "source": [ + "dBa, dSr, prediction = mass_balance(model_large, X_test, preprocess)" + ] + }, + { + "cell_type": "code", + "execution_count": 69, "metadata": {}, "outputs": [], "source": [ @@ -1003,16 +1530,16 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "0.0004126984126984127" + "0.11562698412698413" ] }, - "execution_count": 43, + "execution_count": 70, "metadata": {}, "output_type": "execute_result" } @@ -1023,68 +1550,27 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "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" + "5 0.000006\n", + "26 0.000004\n", + "35 0.000004\n", + "62 0.000004\n", + "69 0.000003\n", + " ... \n", + "863757 0.000002\n", + "863760 0.000004\n", + "863763 0.000002\n", + "863766 0.000006\n", + "863771 0.000006\n", + "Length: 111168, dtype: float64" ] }, - "execution_count": 41, + "execution_count": 54, "metadata": {}, "output_type": "execute_result" } @@ -1605,19 +2091,19 @@ }, { "cell_type": "code", - "execution_count": 70, + "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m8/8\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step \n" + "\u001b[1m8/8\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step \n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAksAAAHFCAYAAADi7703AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAbLpJREFUeJzt3Xd8FHX+x/HXpjeSAOmUhN57D9IUAggIlhMbUjw4sCJ6KIdI8RThdyqigooiiIp4ipwiKiBFkBZ6L1IMJSGEQBII6fP7Y8nCkkISkt0kvJ+PxzzYzH535rOzC3nzne98x2QYhoGIiIiI5MrB3gWIiIiIlGYKSyIiIiL5UFgSERERyYfCkoiIiEg+FJZERERE8qGwJCIiIpIPhSURERGRfCgsiYiIiORDYUlEREQkHwpLcsvmzZuHyWSyWvz9/enatStLly4tkX2GhYUxZMgQy89nzpxh0qRJ7Ny5s0T2l5iYyOuvv07r1q3x9vbG1dWVsLAwhg0bxvbt20tkn/b2xhtvsGTJkhLZdn6f16RJkzCZTCWy3/Ii+xjFxcVZ1n311VfMmDHDfkUVoA6TycSkSZNsWk9BDRkyhLCwMHuXkaeuXbvStWtXq3UFPZ5JSUk8++yzVKlSBVdXV+rWrcv06dPJzMwsmWLLISd7FyDlx2effUb9+vUxDIOYmBjef/99+vXrxw8//EC/fv2KdV/ff/893t7elp/PnDnD5MmTCQsLo3nz5sW6r6NHjxIREUFsbCwjR45k8uTJeHl5ceLECb755htatWrFxYsX8fHxKdb92tsbb7zBAw88wIABA4p92/l9Xn//+9/p1atXse+zvPvqq6/Yu3cvo0ePLrV1bNy4kapVq9q+qAKYMGECzz33nL3LKHYZGRn06NGDw4cP89prr1G3bl1++eUXXn75ZU6dOsXMmTPtXWKZoLAkxaZx48a0bt3a8nOvXr2oWLEiCxcuLLawdOXKFdzd3WnRokWxbO9mMjMzuffee4mLi2Pjxo00btzY8lyXLl0YPHgwP//8M87Ozjapp7S6cuUKbm5uxdIjVLVq1VL7C9WWkpOT8fDwsHcZlr9zxaF9+/bFsp2SUKtWLXuXUCK+/fZbNm/ezHfffcd9990HQI8ePbh06RIffPABTz31FPXq1bNzlaWfTsNJiXFzc8PFxSVHkJg8eTLt2rWjUqVKeHt707JlSz799FNuvKdzWFgYffv2ZfHixbRo0QI3NzcmT55seS77NNyaNWto06YNAEOHDrWcCry+e3rr1q3cc889VKpUCTc3N1q0aME333xz0/ewZMkS9uzZw7hx46yC0vV69+5t9Utt/fr13HXXXVSoUAEPDw/Cw8P56aefrF6Tfepy9erVjBo1Cj8/PypXrsx9993HmTNncuzjq6++okOHDnh5eeHl5UXz5s359NNPrdqsXLmSu+66C29vbzw8POjYsSO//fabVZvs0zf79u3j4YcfxsfHh8DAQIYNG0ZCQoKlnclk4vLly8yfP99yPLNPAWTXvnz5coYNG4a/vz8eHh6kpqby559/MnToUOrUqYOHhwdVqlShX79+7Nmzx7Ltm31euZ2Gy8rKYvr06dSvXx9XV1cCAgJ4/PHHOXXqlFW7rl270rhxYyIjI+nUqRMeHh7UrFmTN998k6ysrFw/v+ulpKQwbtw4atSogYuLC1WqVOGpp57i4sWLljYDBgwgNDQ01+21a9eOli1bWn42DINZs2bRvHlz3N3dqVixIg888ADHjh3Lte7ff/+d8PBwPDw8GDZs2E3rvf71P/30E3/99ZfV6fBsaWlp/Pvf/7YcP39/f4YOHcq5c+estpPf37kPPviAzp07ExAQgKenJ02aNGH69Omkp6cXuI7cThvt3buX/v37U7FiRdzc3GjevDnz58+3arNmzRpMJhMLFy5k/PjxhISE4O3tTffu3Tl06JBV2x07dtC3b18CAgJwdXUlJCSEPn365Piu3Ci303Amk4mnn36aBQsW0KBBAzw8PGjWrFmBhxdcvHiRF154gZo1a1q+t3fffTcHDx60tCnoZ1NUf/zxByaTid69e1ut79u3L1lZWXz//ffFsp/yTj1LUmwyMzPJyMjAMAzOnj3L//3f/3H58mUeeeQRq3YnTpzgH//4B9WrVwdg06ZNPPPMM5w+fZpXX33Vqu327ds5cOAAr7zyCjVq1MDT0zPHflu2bMlnn33G0KFDeeWVV+jTpw+ApXdi9erV9OrVi3bt2vHhhx/i4+PD119/zcCBA0lOTrYa+3Sj5cuXAxT4VNTatWvp0aMHTZs25dNPP8XV1ZVZs2bRr18/Fi5cyMCBA63a//3vf6dPnz589dVXnDx5kn/+85889thjrFq1ytLm1Vdf5bXXXuO+++7jhRdewMfHh7179/LXX39Z2nzxxRc8/vjj9O/fn/nz5+Ps7MxHH31Ez549+fXXX7nrrrus9nv//fczcOBAnnjiCUsYBJg7dy5gPl1y55130q1bNyZMmABgddoTYNiwYfTp04cFCxZw+fJlnJ2dOXPmDJUrV+bNN9/E39+f+Ph45s+fT7t27dixYwf16tW76eeVm1GjRvHxxx/z9NNP07dvX06cOMGECRNYs2YN27dvx8/Pz9I2JiaGRx99lBdeeIGJEyfy/fffM27cOEJCQnj88cfz3IdhGAwYMIDffvuNcePG0alTJ3bv3s3EiRPZuHEjGzduxNXVlWHDhtG/f39WrVpF9+7dLa8/ePAgW7ZssTqt8Y9//IN58+bx7LPPMm3aNOLj45kyZQrh4eHs2rWLwMBAS9vo6Ggee+wxxo4dyxtvvIGDQ8H/Lztr1ixGjBjB0aNHc/zyy8rKon///qxbt46xY8cSHh7OX3/9xcSJE+natStbt2616jnK6+/c0aNHeeSRRyxBcteuXbz++uscPHjQ8r3Jr47cHDp0iPDwcAICApg5cyaVK1fmiy++YMiQIZw9e5axY8datf/Xv/5Fx44d+eSTT0hMTOSll16iX79+HDhwAEdHRy5fvkyPHj2oUaMGH3zwAYGBgcTExLB69WqSkpIKfDyv99NPPxEZGcmUKVPw8vJi+vTp3HvvvRw6dIiaNWvm+bqkpCTuuOMOTpw4wUsvvUS7du24dOkSv//+O9HR0dSvX7/Qn01RpKWl4eDgkOM/ra6urgDs3r37lrZ/2zBEbtFnn31mADkWV1dXY9asWfm+NjMz00hPTzemTJliVK5c2cjKyrI8Fxoaajg6OhqHDh3K8brQ0FBj8ODBlp8jIyMNwPjss89ytK1fv77RokULIz093Wp93759jeDgYCMzMzPP+nr16mUARkpKSr7vI1v79u2NgIAAIykpybIuIyPDaNy4sVG1alXL+8s+Zk8++aTV66dPn24ARnR0tGEYhnHs2DHD0dHRePTRR/Pc5+XLl41KlSoZ/fr1s1qfmZlpNGvWzGjbtq1l3cSJEw3AmD59ulXbJ5980nBzc7M6/p6enlbHOFt27Y8//vhNjob5vaelpRl16tQxnn/+ecv6/D6v7BqzHThwINdjtXnzZgMw/vWvf1nWdenSxQCMzZs3W7Vt2LCh0bNnz3xr/eWXX3I9NosWLTIA4+OPPzYMwzDS09ONwMBA45FHHrFqN3bsWMPFxcWIi4szDMMwNm7caADGW2+9ZdXu5MmThru7uzF27Ngcdf/222/51pgt+xidO3fOsq5Pnz5GaGhojrYLFy40AOO7776zWp/9GVz/dzS/v3PXy/57+/nnnxuOjo5GfHz8TeswDMMAjIkTJ1p+fuihhwxXV1cjKirKql3v3r0NDw8P4+LFi4ZhGMbq1asNwLj77rut2n3zzTcGYGzcuNEwDMPYunWrARhLlizJt/7cDB48OEfdgBEYGGgkJiZa1sXExBgODg7G1KlT893elClTDMBYsWJFnm0K89l06dLF6NKlS476rj+euZkxY4YBGOvWrbNaP2HCBAMwIiIi8n29mOk0nBSbzz//nMjISCIjI/n5558ZPHgwTz31FO+//75Vu+z/kfv4+ODo6IizszOvvvoq58+fJzY21qpt06ZNqVu3bpFr+vPPPzl48CCPPvooYB7smL3cfffdREdH5+jGL6rLly+zefNmHnjgAby8vCzrHR0dGTRoEKdOncqxr3vuucfq56ZNmwJYeo1WrFhBZmYmTz31VJ773bBhA/Hx8QwePNjq/WVlZdGrVy8iIyO5fPnyTfebkpKS4/jn5/7778+xLiMjgzfeeIOGDRvi4uKCk5MTLi4uHDlyhAMHDhR429dbvXo1QI4ewLZt29KgQYMcpxqDgoJo27at1bqmTZta9cTlJrs378b9/O1vf8PT09OyHycnJx577DEWL15sOXWZmZnJggUL6N+/P5UrVwZg6dKlmEwmHnvsMavPJSgoiGbNmrFmzRqr/VSsWJE777wz/4NRBEuXLsXX15d+/fpZ1dG8eXOCgoJy1JHX37kdO3Zwzz33ULlyZcvf28cff5zMzEwOHz5cpNpWrVrFXXfdRbVq1azWDxkyhOTkZDZu3Gi1/mZ/X2rXrk3FihV56aWX+PDDD9m/f3+R6rpet27dqFChguXnwMBAAgICbvp9+vnnn6lbt65V7+ONCvvZFMWjjz5KpUqVGDFiBJs3b+bixYssXLjQ0gNamB7M25mOkhSbBg0a0Lp1a1q3bk2vXr346KOPiIiIYOzYsZYxH1u2bCEiIgKAOXPm8McffxAZGcn48eMB82DS6wUHB99STWfPngXgxRdfxNnZ2Wp58sknAawuv75R9qnC48eP33RfFy5cwDCMXGsOCQkB4Pz581brs3+xZsvuGs8+DtnjFvI7RZX9Hh944IEc73HatGkYhkF8fHyh9lsQub3PMWPGMGHCBAYMGMCPP/7I5s2biYyMpFmzZoXa9vWyj1lex/VmxxTM7+9m+z9//jxOTk74+/tbrTeZTAQFBVntZ9iwYaSkpPD1118D8OuvvxIdHc3QoUMtbc6ePYthGAQGBub4XDZt2pTje3er3/W8nD17losXL1rGD16/xMTEFKiOqKgoOnXqxOnTp3n33XdZt24dkZGRfPDBB0DhvjfXO3/+fLH+ffHx8WHt2rU0b96cf/3rXzRq1IiQkBAmTpxoNbaqMIr6fTp37txNL1Qo7GdTFH5+fvzyyy+AeYB9xYoVeeaZZ3j77bcBqFKlyi3v43agMUtSopo2bcqvv/7K4cOHadu2LV9//TXOzs4sXboUNzc3S7u85vO51aursseyjBs3znIlyI3yuxKkZ8+efPzxxyxZsoSXX345331VrFgRBwcHoqOjczyXPWj7+rE1BZH9i/vUqVM5/vedLXub7733Xp5XG10/Nqa45PbZZI+deuONN6zWx8XF4evrW6T9ZP+yio6OzvHL58yZM4U+pvntJyMjg3PnzlkFJuPqVBjZg9IBGjZsSNu2bfnss8/4xz/+wWeffUZISIjlPwJg/lxMJhPr1q2z/FK/3o3rSmpuqeyLB7J/Yd7o+l6TvOpYsmQJly9fZvHixYSGhlrW3+q8ZpUrVy7Wvy8ATZo04euvv8YwDHbv3s28efOYMmUK7u7uN/07XJz8/f1vOqi8sJ9NUbVp04b9+/dz4sQJLl++TJ06ddi2bRsAnTt3LpZ9lHfqWZISlf2PafYvH5PJhJOTE46OjpY2V65cYcGCBbe0n7x6RurVq0edOnXYtWuXpdfrxiW/f5D69+9PkyZNmDp1Knv37s21za+//kpycjKenp60a9eOxYsXW9WRlZXFF198QdWqVQt9SjEiIgJHR0dmz56dZ5uOHTvi6+vL/v3783yPLi4uhdovFOx/zzcymUw5QsBPP/3E6dOnc2wbCtYjkX1q6osvvrBaHxkZyYEDB3IMXi+q7O3cuJ/vvvuOy5cv59jP0KFD2bx5M+vXr+fHH39k8ODBVt/rvn37YhgGp0+fzvUzadKkSbHUnS2vz6tv376cP3+ezMzMXOsoyGXj2QHq+s/WMAzmzJlT4Dpyc9ddd7Fq1aocV4B+/vnneHh43NJUAyaTiWbNmvHOO+/g6+tr88lje/fuzeHDh60u1rhRcXw2hREWFkajRo1wdnbmrbfeIiQkhL/97W/Fuo/ySj1LUmz27t1LRkYGYO4+X7x4MStWrODee++lRo0aAPTp04e3336bRx55hBEjRnD+/Hn+85//5Po/78KoVasW7u7ufPnllzRo0AAvLy9CQkIICQnho48+onfv3vTs2ZMhQ4ZQpUoV4uPjOXDgANu3b+e///1vntt1dHTk+++/JyIigg4dOjBq1Ci6deuGp6cnf/31F99++y0//vgjFy5cAGDq1Kn06NGDbt268eKLL+Li4sKsWbPYu3cvCxcuLHTvQVhYGP/617947bXXuHLliuVy//379xMXF2eZIPO9995j8ODBxMfH88ADDxAQEMC5c+fYtWsX586dyzds5aVJkyasWbOGH3/8keDgYCpUqHDTf7z79u3LvHnzqF+/Pk2bNmXbtm383//9X44eofw+rxvVq1ePESNG8N577+Hg4EDv3r0tV8NVq1aN559/vtDvLTc9evSgZ8+evPTSSyQmJtKxY0fL1XAtWrRg0KBBVu0ffvhhxowZw8MPP0xqamqOsU4dO3ZkxIgRDB06lK1bt9K5c2c8PT2Jjo5m/fr1NGnShFGjRhVL7WD+vBYvXszs2bNp1aoVDg4OtG7dmoceeogvv/ySu+++m+eee462bdvi7OzMqVOnWL16Nf379+fee++96bFxcXHh4YcfZuzYsaSkpDB79mzL974gdeRm4sSJLF26lG7duvHqq69SqVIlvvzyS3766SemT59e6Ilely5dyqxZsxgwYAA1a9bEMAwWL17MxYsX6dGjR6G2datGjx7NokWL6N+/Py+//DJt27blypUrrF27lr59+9KtW7di+WwKYvz48TRp0oTg4GCioqKYO3cumzdv5qeffiq2ObTKPfuNLZfyIrer4Xx8fIzmzZsbb7/9do4ryebOnWvUq1fPcHV1NWrWrGlMnTrV+PTTTw3AOH78uKVdaGio0adPn1z3eePVcIZhvrKkfv36hrOzc46rRHbt2mU8+OCDRkBAgOHs7GwEBQUZd955p/Hhhx8W6D1evHjReO2114yWLVsaXl5ehrOzs1G9enXjscceM/744w+rtuvWrTPuvPNOw9PT03B3dzfat29v/Pjjj7kes8jISKv12Vf9rF692mr9559/brRp08Zwc3MzvLy8jBYtWuS4kmzt2rVGnz59jEqVKhnOzs5GlSpVjD59+hj//e9/LW1yu4rq+nquP/47d+40OnbsaHh4eBiA5UqcvGo3DMO4cOGC8cQTTxgBAQGGh4eHcccddxjr1q3L9UqevD6vG6+GMwzz1VfTpk0z6tatazg7Oxt+fn7GY489Zpw8edKqXZcuXYxGjRrlqCu3K51yc+XKFeOll14yQkNDDWdnZyM4ONgYNWqUceHChVzbP/LIIwZgdOzYMc9tzp0712jXrp3l+1CrVi3j8ccfN7Zu3XrTuvOS2+cYHx9vPPDAA4avr69hMpmsjmF6errxn//8x2jWrJnlO1S/fn3jH//4h3HkyBFLu/z+zv3444+W11epUsX45z//afz88885vq/51XHj30vDMIw9e/YY/fr1M3x8fAwXFxejWbNmOb7b2X8vrv8uG4ZhHD9+3OqqyoMHDxoPP/ywUatWLcPd3d3w8fEx2rZta8ybN++mxzSvq+GeeuqpHG1z+/cnNxcuXDCee+45o3r16oazs7MREBBg9OnTxzh48KClTUE/m6JeDWcYhjFq1CijevXqhouLi+Hn52fcf//9xu7du2/6OrnGZBg3zAQoIiIiIhYasyQiIiKSD4UlERERkXwoLImIiIjkQ2FJREREJB8KSyIiIiL5UFgSERERyYcmpSwGWVlZnDlzhgoVKpTYLQtERESkeBmGQVJSEiEhIfneVFhhqRicOXMmz/t2iYiISOl28uTJfG98rLBUDLLvLXby5Em8vb3tXI2IiIgURGJiItWqVbvpTYsVlopB9qk3b29vhSUREZEy5mZDaDTAW0RERCQfZS4szZo1ixo1auDm5karVq1Yt25dnm2jo6N55JFHqFevHg4ODowePTpHm3nz5mEymXIsKSkpJfguREREpKwoU2Fp0aJFjB49mvHjx7Njxw46depE7969iYqKyrV9amoq/v7+jB8/nmbNmuW5XW9vb6Kjo60WNze3knobIiIiUoaUqTFLb7/9Nk888QR///vfAZgxYwa//vors2fPZurUqTnah4WF8e677wIwd+7cPLdrMpkICgoqmaKvk5mZSXp6eonvR0qes7Mzjo6O9i5DRERsoMyEpbS0NLZt28bLL79stT4iIoINGzbc0rYvXbpEaGgo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gZODidDKnnatRWFJRERESp3DV8crhfl54uJk37iisCQiIiKlzpGzV6+EC7DveCVQWBIREZFS6NrM3fa9Eg4UlkRERKQUslwJp54lEREREWuGYVw7DWfnaQNAYUlERERKmXNJqSSmZOBgghp+9r0SDhSWREREpJTJPgUXVtkTV6fC39e0uCksiYiISKly+OopuNqlYLwSKCxJKTBp0iSaN29u+XnIkCEMGDDglrZZHNsQERH7KC23OcmmsCR5GjJkCCaTCZPJhLOzMzVr1uTFF1/k8uXLJbrfd999l3nz5hWo7YkTJzCZTOzcubPI2xARkdLlz6sTUtYtBdMGADjZuwAp3Xr16sVnn31Geno669at4+9//zuXL19m9uzZVu3S09NxdnYuln36+PiUim2IiIjtGYbB4VidhpMyxNXVlaCgIKpVq8YjjzzCo48+ypIlSyynzubOnUvNmjVxdXXFMAwSEhIYMWIEAQEBeHt7c+edd7Jr1y6rbb755psEBgZSoUIFnnjiCVJSUqyev/EUWlZWFtOmTaN27dq4urpSvXp1Xn/9dQBq1KgBQIsWLTCZTHTt2jXXbaSmpvLss88SEBCAm5sbd9xxB5GRkZbn16xZg8lk4rfffqN169Z4eHgQHh7OoUOHivFoiojIzZy/nMbF5HRMJqjlr7B0ezIMSLtsn8Uwbrl8d3d30tPTAfjzzz/55ptv+O677yynwfr06UNMTAzLli1j27ZttGzZkrvuuov4+HgAvvnmGyZOnMjrr7/O1q1bCQ4OZtasWfnuc9y4cUybNo0JEyawf/9+vvrqKwIDAwHYsmULACtXriQ6OprFixfnuo2xY8fy3XffMX/+fLZv307t2rXp2bOnpa5s48eP56233mLr1q04OTkxbNiwIh8rEREpvCNXT8FVr+SBm7P9r4QDnYazvfRkeCPEPvv+1xlwKfp8FVu2bOGrr77irrvuAiAtLY0FCxbg7+8PwKpVq9izZw+xsbG4uroC8J///IclS5bw7bffMmLECGbMmMGwYcP4+9//DsC///1vVq5cmaN3KVtSUhLvvvsu77//PoMHDwagVq1a3HHHHQCWfVeuXJmgoKBct5F92nDevHn07t0bgDlz5rBixQo+/fRT/vnPf1ravv7663Tp0gWAl19+mT59+pCSkoKbm1uRj5uIiBTcwZhEAOoElI7xSqCeJbmJpUuX4uXlhZubGx06dKBz58689957AISGhlrCCsC2bdu4dOkSlStXxsvLy7IcP36co0ePAnDgwAE6dOhgtY8bf77egQMHSE1NtQS0ojh69Cjp6el07NjRss7Z2Zm2bdty4MABq7ZNmza1PA4ODgYgNja2yPsWEZHCORBtDksNg0tPWFLPkq05e5h7eOy170Lq1q0bs2fPxtnZmZCQEKtB3J6e1r1UWVlZBAcHs2bNmhzb8fX1LfS+wXza71YZV08/mkymHOtvXHf9+8t+Lisr65ZrEBGRgjkYYx7c3SDY286VXKOeJVszmcynwuyx3BAMCsLT05PatWsTGhp606vdWrZsSUxMDE5OTtSuXdtq8fPzA6BBgwZs2rTJ6nU3/ny9OnXq4O7uzm+//Zbr8y4uLgBkZmbmuY3atWvj4uLC+vXrLevS09PZunUrDRo0yPc9iYiI7WRkZnGoFIYl9SxJsenevTsdOnRgwIABTJs2jXr16nHmzBmWLVvGgAEDaN26Nc899xyDBw+mdevW3HHHHXz55Zfs27ePmjVr5rpNNzc3XnrpJcaOHYuLiwsdO3bk3Llz7Nu3jyeeeIKAgADc3d355ZdfqFq1Km5ubjmmDfD09GTUqFH885//pFKlSlSvXp3p06eTnJzME088YYtDIyIiBXDi/GVSM7LwcHGkeqXCnw0pKQpLUmxMJhPLli1j/PjxDBs2jHPnzhEUFETnzp0tV68NHDiQo0eP8tJLL5GSksL999/PqFGj+PXXX/Pc7oQJE3BycuLVV1/lzJkzBAcHM3LkSACcnJyYOXMmU6ZM4dVXX6VTp065ngZ88803ycrKYtCgQSQlJdG6dWt+/fVXKlasWCLHQkRECu9AtLlXqV5QBRwcCn82pKSYDKMYrie/zSUmJuLj40NCQgLe3tbdhikpKRw/fpwaNWroiqpyRp+tiEjxmv7LQWatOcrDbasz9b4mJb6//H5/X09jlkRERKRUyB7cXZquhAOFJRERESklsqcNKE2Du0FhSUREREqB85dSiU4wT1BcL0g9SyIiIiJWVuw/C0DDYG8quBXPjdmLi8KSjWgcffmjz1REpPgs3R0NQN9mwXauJCeFpRKWPZFjcnKynSuR4pb9md5ssk4REclf3KVUNhyNA6BvEzvdPzUfmmephDk6OuLr62u5v5iHh0eOW2xI2WIYBsnJycTGxuLr64ujY+m4K7aISFn1894YsgxoWtWH6pVLz2SU2RSWbCAoKAjQDVnLG19fX8tnKyIiRffjTvM9U/s2LX2n4EBhySZMJhPBwcEEBASQnp5u73KkGDg7O6tHSUSkGPy8J5otJ+JxcjDRp2npOwUHCks25ejoqF+wIiIiV11MTmPC//YBMLJLLar4utu5otxpgLeIiIjYxWtLDxB3KZVa/p48c1dte5eTJ4UlERERsbnVh2L5bvspTCaY/kBTXJ1K75kXhSURERGxqcSUdMZ9tweAYR1r0Cq0kp0ryp/CkoiIiNjUGz8dICYxhbDKHrwYUc/e5dyUwpKIiIjYzLoj5/g68iQA0+5virtL6T39lk1hSURERGziUmoGL189/Ta4Qyjtala2c0UFo7AkIiIiNvHmzwc4ffEK1Sq5M7ZXfXuXU2AKSyIiIlLiNhyN44tNUQBMu68pnq5lZ6pHhSUREREpUclp106/PdKuOuG1/excUeEoLImIiEiJmv7LIaLikwnxcWNc77Jz+i2bwpKIiIiUmMgT8czfeAKAqfc3pYKbs30LKgKFJRERESkRV9IyGfvtbgwDHmxdlS51/e1dUpEoLImIiEiJeHvFIY7HXSbQ25XxfRrau5wiK3NhadasWdSoUQM3NzdatWrFunXr8mwbHR3NI488Qr169XBwcGD06NG5tvvuu+9o2LAhrq6uNGzYkO+//76EqhcREbk9bI+6wKfrjwMw9b4m+LiXvdNv2cpUWFq0aBGjR49m/Pjx7Nixg06dOtG7d2+ioqJybZ+amoq/vz/jx4+nWbNmubbZuHEjAwcOZNCgQezatYtBgwbx4IMPsnnz5pJ8KyIiIuXWlbRMXvzvLrIMuK9lFe6sH2jvkm6JyTAMw95FFFS7du1o2bIls2fPtqxr0KABAwYMYOrUqfm+tmvXrjRv3pwZM2ZYrR84cCCJiYn8/PPPlnW9evWiYsWKLFy4sEB1JSYm4uPjQ0JCAt7e3gV/QyIiIuXQxP/tZf7Gvwj0duXX0Z3x9XCxd0m5Kujv7zLTs5SWlsa2bduIiIiwWh8REcGGDRuKvN2NGzfm2GbPnj3z3WZqaiqJiYlWi4iIiMDaw+eYv/EvAP7zt2alNigVRpkJS3FxcWRmZhIYaN2VFxgYSExMTJG3GxMTU+htTp06FR8fH8tSrVq1Iu9fRESkvLhwOY1//ncXAEPCw+hUp2xe/XajMhOWsplMJqufDcPIsa6ktzlu3DgSEhIsy8mTJ29p/yIiImWdYRi88r+9xCalUtPfk5fK0L3fbqbM3JjFz88PR0fHHD0+sbGxOXqGCiMoKKjQ23R1dcXV1bXI+xQRESlvfth1hp92R+PkYGLGwOa4uzjau6RiU2Z6llxcXGjVqhUrVqywWr9ixQrCw8OLvN0OHTrk2Oby5ctvaZsiIiK3kzMXr/DKkr0APHtXHZpW9bVvQcWszPQsAYwZM4ZBgwbRunVrOnTowMcff0xUVBQjR44EzKfHTp8+zeeff255zc6dOwG4dOkS586dY+fOnbi4uNCwoXlyrOeee47OnTszbdo0+vfvz//+9z9WrlzJ+vXrbf7+REREypqsLIMX/7uLpJQMmlfz5cmutexdUrErU2Fp4MCBnD9/nilTphAdHU3jxo1ZtmwZoaGhgHkSyhvnXGrRooXl8bZt2/jqq68IDQ3lxIkTAISHh/P111/zyiuvMGHCBGrVqsWiRYto166dzd6XiIhIWfXZhhNsOHoed2dH3hnYHCfHMnPSqsDK1DxLpZXmWRIRkdvR4bNJ9H1vPWkZWbx+b2MebRdq75IKpdzNsyQiIiKlR1pGFqO/3klaRhbd6vnzSNvq9i6pxCgsiYiISKHNWHmY/dGJVPRwZtoDTW95Gp/STGFJRERECiXyRDwfrj0KmG+SG1DBzc4VlSyFJRERESmwS6kZjPlmJ1kG3N+yKr0aB9u7pBKnsCQiIiIF9u+l+zkZf4Uqvu5MvKehvcuxCYUlERERKZAV+8/ydeRJTCZ468FmeLs527skm1BYEhERkZuKu5TKy9/tBmBEp5q0r1nZzhXZjsKSiIiI5MswDF7+bg/nL6dRP6gCYyLq2rskm1JYEhERkXwtijzJygNncXF04J2BzXF1Kj83yS0IhSURERHJ0/G4y0z+cT8AL0TUpUHw7XenCoUlERERyVV6Zhajv97BlfRMOtSszPBONe1dkl0oLImIiEiuZv52hF2nEvB2c+KtB5vh4FB+Z+nOj8KSiIiI5BB5Ip4PVv8JwOv3NiHE193OFdmPwpKIiIhYSUxJ5/lF5lm672tRhX7NQuxdkl0pLImIiIiVSf/bx6kLV6ha0Z3J/RvZuxy7U1gSERERix93nWHxjtM4mGDGwOZUuE1m6c6PwpKIiIgAcObiFcZ/vweAp7rVpnVYJTtXVDooLImIiAhZWQYvfLOLxJQMmlXz5dm76ti7pFJDYUlERESYs+4YG4+dx8PFkRkDm+PsqIiQTUdCRETkNrf3dAL/WX4IgFf7NqSGn6edKypdFJZERERuY1fSMhm9aCfpmQYRDQMZ2KaavUsqdRSWREREbmNTfz7An7GXCKjgypv3N8Vkuj1n6c6PwpKIiMhtavXBWD7f+BcA//lbMyp5uti5otJJYUlEROQ2FHcplX9+uwuAoR3D6FzX384VlV4KSyIiIrcZwzB46dvdxF1Ko15gBV7qVd/eJZVqCksiIiK3mS83R/HbwVhcHB2Y8VBz3Jwd7V1SqaawJCIichv5MzaJf/+0H4CxverRINjbzhWVfgpLIiIit4mU9Eye/moHKelZdKrjx7CONexdUpmgsCQiInKbePPngxyMSaKypwtvPdgMBwdNE1AQCksiIiK3gZX7zzJvwwkA/vNgMwIquNm3oDJEYUlERKSci0lIsUwT8Pc7atCtXoCdKypbFJZERETKscwsg+cX7eRCcjqNq3jzz1717F1SmaOwJCIiUo59uPYoG4+dx8PFkZkPtcDVSdMEFJbCkoiISDm17a943l5xGIAp/RtT09/LzhWVTQpLIiIi5VDClXSeXbiTzCyDAc1DuL9lFXuXVGYpLImIiJQzhmHwr8V7OH3xCtUrefDagMaYTJomoKgUlkRERMqZhVtO8tOeaJwcTMx8uAUV3JztXVKZprAkIiJSjuw5lcCkH/YB8M+e9Whezde+BZUDCksiIiLlxMXkNEZ9uY20zCx6NAxkROea9i6pXFBYEhERKQeysgzGfLOLUxfM45T+87dmGqdUTBSWREREyoHZa4+y6mAsLk4OzHq0JT7uGqdUXBSWREREyriV+8/yn+WHAHitfyMaV/Gxc0Xli8KSiIhIGbb/TCLPfr0Dw4BH2lVnYJvq9i6p3FFYEhERKaNiE1P4+/xIktMy6Vi7MpPvaWTvksolhSUREZEyKCU9k+ELtnEmIYWa/p7MeqQVzo76tV4SdFRFRETKmKwsgxe+2cWukxfx9XBm7uA2+HhoQHdJUVgSEREpY/5v+SF+2hONs6OJDx9rRZifp71LKtcUlkRERMqQr7dEMXvNUQDevK8p7WtWtnNF5Z/CkoiISBmx7sg5xi/ZC8Bzd9Xh/lZV7VzR7UFhSUREpAw4FJPEk19sJzPL4N4WVRjdvY69S7ptKCyJiIiUcrFJKQybF0lSagZtwyrx5v1NdCsTG1JYEhERKcWupGXy9/lbOX3xCjX8PPloUCtcnRztXdZtRWFJRESklMrMMhi9aAe7TyVQ0cOZz4a0oaKni73Luu2UubA0a9YsatSogZubG61atWLdunX5tl+7di2tWrXCzc2NmjVr8uGHH1o9P2/ePEwmU44lJSWlJN+GiIjITU1ddoBf953FxdGBOY+31hQBdlKmwtKiRYsYPXo048ePZ8eOHXTq1InevXsTFRWVa/vjx49z991306lTJ3bs2MG//vUvnn32Wb777jurdt7e3kRHR1stbm5utnhLIiIiuVqw8QSfrD8OwP/9rSmtwyrZuaLbl8kwDMPeRRRUu3btaNmyJbNnz7asa9CgAQMGDGDq1Kk52r/00kv88MMPHDhwwLJu5MiR7Nq1i40bNwLmnqXRo0dz8eLFIteVmJiIj48PCQkJeHt7F3k7IiIiAKsPxvLE/EiyDHgxoi5P36kr30pCQX9/l5mepbS0NLZt20ZERITV+oiICDZs2JDrazZu3Jijfc+ePdm6dSvp6emWdZcuXSI0NJSqVavSt29fduzYkW8tqampJCYmWi0iIiLFYf+ZRJ7+ajtZBjzQqipPdatt75Jue2UmLMXFxZGZmUlgYKDV+sDAQGJiYnJ9TUxMTK7tMzIyiIuLA6B+/frMmzePH374gYULF+Lm5kbHjh05cuRInrVMnToVHx8fy1KtWrVbfHciIiIQk2CeIuByWibhtSrzxr2aIqA0KDNhKduNXxrDMPL9IuXW/vr17du357HHHqNZs2Z06tSJb775hrp16/Lee+/luc1x48aRkJBgWU6ePFnUtyMiIgLA5dQMhs2LJCYxhdoBXsx+rBUuTmXu13S55GTvAgrKz88PR0fHHL1IsbGxOXqPsgUFBeXa3snJicqVc7+XjoODA23atMm3Z8nV1RVXV9dCvgMREZHcZWYZPLNwB/ujE6ns6cJnQ9rg4+5s77LkqjITWV1cXGjVqhUrVqywWr9ixQrCw8NzfU2HDh1ytF++fDmtW7fG2Tn3L6FhGOzcuZPg4ODiKVxEROQmXlu6n1UHY3F1cmDO4NZUq+Rh75LkOmUmLAGMGTOGTz75hLlz53LgwAGef/55oqKiGDlyJGA+Pfb4449b2o8cOZK//vqLMWPGcODAAebOncunn37Kiy++aGkzefJkfv31V44dO8bOnTt54okn2Llzp2WbIiIiJWnu+uPM23ACgHcGNqdl9Yr2LUhyKDOn4QAGDhzI+fPnmTJlCtHR0TRu3Jhly5YRGhoKQHR0tNWcSzVq1GDZsmU8//zzfPDBB4SEhDBz5kzuv/9+S5uLFy8yYsQIYmJi8PHxoUWLFvz++++0bdvW5u9PRERuL8v3xfDaT/sBGNe7Pnc30VmN0qhMzbNUWmmeJRERKaw9pxJ48KONXEnP5OG21Xnj3sa68s3Gyt08SyIiIuXF6YtXGDY/kivpmXSq48eU/o0UlEoxhSUREREbSkpJ54l5kZxLSqVeYAU+eLQlzo76dVya6dMRERGxkfTMLJ76agcHY5Lwr+DK3KFt8HbTFAGlncKSiIiIDRiGwcQf9vH74XO4Ozsyd3Abqvi627ssKQCFJRERERv4+PdjfLU5CpMJ3n2oOU2q+ti7JCkghSUREZES9sOuM0z9+SAAr/RpSESjIDtXJIWhsCQiIlKCNh87z4vf7AJgaMcwnrijhp0rksJSWBIRESkhf8YmMfzzraRlZtGzUSCv9Glo75KkCBSWRERESkBsUgqD50aSmJJBi+q+vPtQCxwdNJdSWaSwJCIiUswup2YwbF4kpy9eIayyB5883ho3Z0d7lyVFpLAkIiJSjDIys3j6q+3sPZ1IJU8X5g1tS2UvV3uXJbdAYUlERKSYGIbBhP/tY/Whc7g5O/DJ4NaE+Xnauyy5RQpLIiIixWTWmqMs3JI9l1ILWlavaO+SpBgoLImIiBSDJTtO83+/HgJgUr9G9NRcSuWGwpKIiMgt2nA0jn9+a55LaXinGgwOD7NvQVKsFJZERERuwd7TCYz4fBvpmQZ9mgQzrncDe5ckxUxhSUREpIhOxF1myGdbuJSaQfualXjrwWY4aC6lckdhSUREpAhiE1N4fO4W4i6l0TDYmzmaS6ncUlgSEREppIQr6Qz+LJKo+GRCK3swf1hbKrg527ssKSEKSyIiIoWQkp7J8M+3ciA6ET8vVxYMa4d/BU06WZ4pLImIiBRQemYWzyzcwZbj8VRwdWL+sDZUr+xh77KkhCksiYiIFEBGZhbPL9rJiv1ncXFyYM7g1jQK8bF3WWIDCksiIiI3kZllMPbb3SzdHY2zo4nZj7akfc3K9i5LbOSWwlJaWhqHDh0iIyOjuOoREREpVbKyDP61eA+Ld5zG0cHEew+35K4GgfYuS2yoSGEpOTmZJ554Ag8PDxo1akRUVBQAzz77LG+++WaxFigiImIvGZlZjFu8h0VbT+Jggncfak6vxrqNye2mSGFp3Lhx7Nq1izVr1uDm5mZZ3717dxYtWlRsxYmIiNhLSnomT3213RKU3nqwGX2bhti7LLEDp6K8aMmSJSxatIj27dtjMl2bqbRhw4YcPXq02IoTERGxh6SUdEZ8vo2Nx87j4ujAzIeb06txsL3LEjspUlg6d+4cAQEBOdZfvnzZKjyJiIiUNWcuXmHEgq3sPZ2Il6sTHz/eivBafvYuS+yoSKfh2rRpw08//WT5OTsgzZkzhw4dOhRPZSIiIja2+mAsfWauY+/pRCp7uvD1iPYKSlK0nqWpU6fSq1cv9u/fT0ZGBu+++y779u1j48aNrF27trhrFBERKVEp6Zm8+fNB5m04AUCTKj588EhLTTgpQBF7lsLDw/njjz9ITk6mVq1aLF++nMDAQDZu3EirVq2Ku0YREZESs+9MAn3fW28JSkPCw/h2VAcFJbEwGYZh2LuIsi4xMREfHx8SEhLw9va2dzkiIlIAmVkGn6w7xn+WHyI908C/givTH2hKt3o5x+RK+VTQ399FOg3n6OhIdHR0jkHe58+fJyAggMzMzKJsVkRExCZOX7zCC9/sZNOxeAAiGgYy9b4mVPbSDXElpyKFpbw6o1JTU3FxcbmlgkRERErS/3ae5pUle0lKycDDxZGJ/RryYOtquppb8lSosDRz5kzAfPXbJ598gpeXl+W5zMxMfv/9d+rXr1+8Fd7O1kyDfd+DoxM4OIGDM1RtDd0ng5NCqYhIYcRfTmPC//by0+5oAJpX82XGwOaE+XnauTIp7QoVlt555x3A3LP04Ycf4ujoaHnOxcWFsLAwPvzww+Kt8HaWeBrOHbBed2oLpF2CfjNB/wsSESmQ5fti+Nf3e4m7lIqjg4mnu9Xm6Ttr4+yo+8nLzRUqLB0/fhyAbt26sXjxYipWrFgiRclV4c9C4/shK8O8XPgLfnkJtn8OAY2g/Uh7VygiUqolXEln8o/7WLz9NAB1Arx468FmNK3qa9/CpEwp0pil1atXF3cdkhu/2ubleplpsHw8/DYZWjwGrl65v1ZE5Da35lAsL3+3h5jEFBxMMLxzTZ7vXhc3Z8ebv1jkOgUOS2PGjOG1117D09OTMWPG5Nv27bffvuXCJA8dnoKtn0L8MTj4EzQbaO+KRERKlUupGbz+034WbjkJQA0/T/7zt2a0CtXZECmaAoelHTt2kJ6eDsD27dvzvGpAVxOUMJMJmg6ENVNh9yKFJRGR62w4GsfYb3dz6sIVAIZ2DGNsz/q4u6g3SYpOk1IWA5tPSnn+KLzXEkwOMOYgVAgs+X2KiJRiiSnpTPv5IF9ujgKgWiV3/u+BZrSvWdnOlUlpVtDf34W+DCAjIwMnJyf27t17SwXKLahcC6q2ASML9n5r72pEROzq130x9Hh7rSUoPdKuOj8/11lBSYpNoQd4Ozk5ERoaqlm67a3Jg3Aq0jxuqcNT9q5GRMTmYhNTmPjDPn7eGwOYxya9cW8TOtRSSJLiVaQJJl555RXGjRtHfHx8cdcjBRXW0fxn9G7IyrJvLSIiNpSRmcWCTX9x19tr+XlvDE4OJp7qVoufn+ukoCQlokhTB8ycOZM///yTkJAQQkND8fS0nv10+/btxVKc5MOvHji5QVqS+cq4G6cYEBEph9YciuX1nw5wJPYSAE2r+vDmfU1pGKKbmEvJKVJYGjBgQDGXIYXm6ASBjeH0VojeqbAkIuVWZpbB+j/j+GTdMdYdiQOgooczo7vX5bH2oTg66CpsKVlFCksTJ04s7jqkKEKaXwtLTR6wdzUiIkWWkZlFdEIKJy8kcyr+CqcuJHPywhVOxidzLO4y8ZfTAHB2NDEkPIynu9XBx8PZzlXL7aJIYUlKieBm5j+jd9m3DhGRm8jMMjibmMLJ+GROXbjCqQtXzMHoQjIn468Qk5hCZlbeM9n4uDszoHkIw+6oQWhl3fhWbKtIYSkzM5N33nmHb775hqioKNLS0qye18BvGwlubv4zehcYhm6sKyJ2k5VlEHcp9WoAumIJRdk/n7l4hfTM/Kf1c3FyoKqvO1UreVC1ojvVKpr/DK3sQb2gCrg6aWJJsY8ihaXJkyfzySefMGbMGCZMmMD48eM5ceIES5Ys4dVXXy3uGiUv/vXB0QVSEuDCCahUw94ViUg5lZKeSUxCCjGJKcQkpBCdkGI5VXbqaiBKy8j/ylwnBxNVKrpbBaGqFT2oVsn8p7+XKw4afySlUJHC0pdffsmcOXPo06cPkydP5uGHH6ZWrVo0bdqUTZs28eyzzxZ3nZIbJxcIbARndpjHLSksiUghGYZBUmqGJQCdvfpnTOIVy7qYxBQuJqffdFsOJgj2cbeEn+tDUbVKHgR6u2kwtpRJRQpLMTExNGnSBAAvLy8SEhIA6Nu3LxMmTCi+6uTmgpuZw9KxNdDoXntXIyKlSGpGJnGX0jiXlEpsYgpnE83BJzohxaqXKDmtYJMMuzs7EuzjRpCPG0HebpaeoaqVzKEoyMcNZ8ciTd8nUqoVKSxVrVqV6OhoqlevTu3atVm+fDktW7YkMjISV1fX4q5R8tP4Adg2D3Z+BZ3/CT5V7V2RiJSgrCyDi1fSOZeUal4upRCbmP041bI+NimVhCs37w3K5uvhTJC3OQgF+7gR5O1OkI8rQT7ulvXebk66WbrclooUlu69915+++032rVrx3PPPcfDDz/Mp59+SlRUFM8//3xx12hl1qxZ/N///R/R0dE0atSIGTNm0KlTpzzbr127ljFjxrBv3z5CQkIYO3YsI0eOtGrz3XffMWHCBI4ePUqtWrV4/fXXuffeMtJLU6MThN4Bf62HdW9D37ftXZGIFEB6ZhaXUjJISskgMSWdi8npXLySxsXkdBKupHMxOY0LyelXf067+nw6Fy6nkZHPVWM3cnF0wL+CK35eLgR6Xw1CPleDkLc7wT5uBHq74e6iwdMieTEZhlHwv3V52Lx5M3/88Qe1a9fmnnvuKY66crVo0SIGDRrErFmz6NixIx999BGffPIJ+/fvp3r16jnaHz9+nMaNGzN8+HD+8Y9/8Mcff/Dkk0+ycOFC7r//fgA2btxIp06deO2117j33nv5/vvvefXVV1m/fj3t2rUrUF0FvWtxiTm+Dub3BQdneHY7+OY8FiKlmWEYZBmQZRjmJeu6x8a15zOzjBxtjauPM7Os2+a3rcwsg8yrz2UaBplZWWRmcXUbhtWflsUwyLI8NvfwZN7QJuu6bWdkGuYwlJp+NRBlkJRifnwpJYMr6bd2f82KHs74V3DFv4IrARXczI+9sn92tTzn4+6s3iCRPBT093eRwtL58+epXNl8/52TJ08yZ84crly5Qr9+/ejcuXPRq76Jdu3a0bJlS2bPnm1Z16BBAwYMGMDUqVNztH/ppZf44YcfOHDggGXdyJEj2bVrFxs3bgRg4MCBJCYm8vPPP1va9OrVi4oVK7Jw4cIC1VVSYem7bafYdOx8jvW5fWAjTzxH7cs72OF9J19UnXRD+1xekcennteXIa+vSd7tS3b7ub+lPLaRVy151ljI7eS+Os/2eb0it/a2+DyMG0KFJXxYBZWcoeP6tvkFnOwAYdX2utBSiE6Scsnd2ZEKbk5U9HDBx8MZX3dnfD2c8fVwMf/pnv2nMz4ezlT0cMHPyxUXJ40NErlVBf39XajTcHv27KFfv36cPHmSOnXq8PXXX9OrVy8uX76Mg4MD77zzDt9++22J3A4lLS2Nbdu28fLLL1utj4iIYMOGDbm+ZuPGjURERFit69mzJ59++inp6ek4OzuzcePGHKcOe/bsyYwZM4q1/qLYFnWB/247VaC2+01/40eXnbRIXMX0nR3YmNWohKsTsQ8HEziYTDiYTJgsj8HBwXTtscmE6brHjg43tDWZcHAw4XT1NY4O5p8dTZgfm0w4OV57ztGU/fzVn68u5ueve43Dde0cTVRwdaKCmzMV3K796eXqhHf2YzcnDYgWKQMKFZbGjh1LkyZN+OKLL/jiiy/o27cvd999N5988gkAzzzzDG+++WaJhKW4uDgyMzMJDAy0Wh8YGEhMTEyur4mJicm1fUZGBnFxcQQHB+fZJq9tAqSmppKammr5OTExsbBvp0B6NgqiWkWPXJ/L2atenwOHd9L49Dd84LuQ79osJMvBOZ/2YCL3rvnC9tjn1cWf12by2n7e7QteZ56lF1uNhTtmxbX93FYX+njl0d7B4Vr4yA4TeQcN6+fNz5lyDTDmAEGuzzs65L4vc4jJIwxdDSwiIrZWqLAUGRnJqlWraNq0Kc2bN+fjjz/mySefxMHB/D+jZ555hvbt25dIodlu/EVgGEa+5+Nza3/j+sJuc+rUqUyePLnANRdVl7r+dKnrX/AXtJ0O7/1GpeRjDK+wAVoPK7niREREbhOF6v+Nj48nKCgIMM+v5OnpSaVKlSzPV6xYkaSkpOKt8Co/Pz8cHR1z9PjExsbm6BnKFhQUlGt7Jycny5irvNrktU2AcePGkZCQYFlOnjxZlLdU/NwrQpeXzI/XTIO0ZPvWIyIiUg4U+mT5jT0utrrKwsXFhVatWrFixQqr9StWrCA8PDzX13To0CFH++XLl9O6dWucnZ3zbZPXNgFcXV3x9va2WkqNVkPNV8NdioHNs2/eXkRERPJV6HmWhgwZYpl4MiUlhZEjR+Lpab4D9PXjeErCmDFjGDRoEK1bt6ZDhw58/PHHREVFWeZNGjduHKdPn+bzzz8HzFe+vf/++4wZM4bhw4ezceNGPv30U6ur3J577jk6d+7MtGnT6N+/P//73/9YuXIl69evL9H3UmKcXKDbK/D9CPjjXWg3ClxyH/ckIiIiN1eosDR48GCrnx977LEcbR5//PFbqygfAwcO5Pz580yZMoXo6GgaN27MsmXLCA0NBSA6OpqoqChL+xo1arBs2TKef/55PvjgA0JCQpg5c6ZljiWA8PBwvv76a1555RUmTJhArVq1WLRoUYHnWCqVmvwN1rxhvrnuvsXQIufnJCIiIgVTLJNS3u7sPillbtbPgJUToUorGL7K3tWIiIiUOgX9/a0JPsqrFo+ZZ/Q+vQ3O7LR3NSIiImWWwlJ55ekHDfubH2/52L61iIiIlGEKS+VZ2xHmP3d+CUdW2rcWERGRMkphqTyr3u5aYFoyEpLO2rceERGRMkhhqbzr8RoENILL58yBKSvL3hWJiIiUKQpL5Z2zGzwwF5zc4Ogq2PSBvSsSEREpUxSWbgcB9aHXVPPjlZPhzA771iMiIlKGKCzdLloNhQb9ICsdvn0CUi/ZuyIREZEyQWHpdmEyQb+Z4F0F4o/Cz2PtXZGIiEiZoLB0O/GoBPd9DCaHq9MJrLj5a0RERG5zCku3m7A7oP2T5se/jofMdPvWIyIiUsopLN2OOv8TPCpD3CHYOtfe1YiIiJRqCku3I3dfuPMV8+PVb0ByvF3LERERKc0Ulm5XLR43T1aZchHWvGnvakREREothaXblaMT9HrD/DjyEzh3yL71iIiIlFIKS7ezml2hXh8wMuGXl8Ew7F2RiIhIqaOwdLuLeA0cXcy3Qtn3vb2rERERKXUUlm53lWvBHWPMj38ZBykJ9q1HRESklFFYErjjeahUCy7FwKp/27saERGRUkVhScDZDfq+Y368ZQ6c3mbfekREREoRhSUxq9kFmg4EDPhxNGRm2LsiERGRUkFhSa6JeB3cfCBmN0TOsXc1IiIipYLCklzj5Q/dJ5sfr/o3JJy2bz0iIiKlgMKSWGs5GKq1g7RL8MtL9q5GRETE7hSWxJqDg3mwt4MTHPgRjq2xd0UiIiJ2pbAkOQU2gtbDzI9//499axEREbEzhSXJXcfnwMEZTqyDqE32rkZERMRuFJYkdz5VofnD5sfqXRIRkduYwpLk7Y7nweQAf66AU1vtXY2IiIhdKCxJ3irVhGZXe5d+m2LfWkREROxEYUny1/Vl89il42t1ZZyIiNyWFJYkf77Vr10Zt3wCZKTZtx4REREbU1iSm+v8Irj5mm+DsnKSvasRERGxKYUluTmvABgw2/x40wdwYKl96xEREbEhhSUpmPp3Q4enzY//9yRcOGHXckRERGxFYUkKrvskqNoGUhLgv0M1fklERG4LCktScI7O8MBn5vFLZ7brRrsiInJbUFiSwvGtBvfNAUywdS5smWPvikREREqUwpIUXt0I8yk5gJ9fgsO/2rUcERGRkqSwJEXT8Tnz7N5GJiwaBMd/t3dFIiIiJUJhSYrGZIJ73oN6d0NmKnz1EJzcYu+qREREip3CkhRd9oDvml0h/TJ88QBE77Z3VSIiIsVKYUlujbMbPPQVVGsPqQnweX84s8PeVYmIiBQbhSW5dS6e8Og3ENISrsTD/HsgapO9qxIRESkWCktSPNx84PH/QWhHSE2EBffC0dX2rkpEROSWKSxJ8XHzhke/hdrdIT0ZvnoQ9v9g76pERERuicKSFC8XD/MYpgb3QGYafPM4bJxl76pERESKTGFJip+Tq/kqudZPAAb8Os48eWVWpr0rExERKTSFJSkZjk7Q5y3oMcX88+YPzZNXpl6yb10iIiKFpLAkJcdkMs/0/cBn4OgKh36CT3tA/HF7VyYiIlJgCktS8hrfB0OWglcgxO6Hj7vqSjkRESkzFJbENqq1hRFroEorSLkIX9wHf7wLWVn2rkxERCRfCktiO94hMGQZNH8MjCxY8Sp89Te4dM7elYmIiORJYUlsy9kN+r8PfWeAkxv8uRI+7KjTciIiUmqVmbB04cIFBg0ahI+PDz4+PgwaNIiLFy/m+xrDMJg0aRIhISG4u7vTtWtX9u3bZ9Wma9eumEwmq+Whhx4qwXcimEzQeigMXw3+DeDSWfOM3ytehYw0e1cnIiJipcyEpUceeYSdO3fyyy+/8Msvv7Bz504GDRqU72umT5/O22+/zfvvv09kZCRBQUH06NGDpKQkq3bDhw8nOjrasnz00Ucl+VYkW2BDGL4KWg0BDPMYpk+7w7nD9q5MRETEokyEpQMHDvDLL7/wySef0KFDBzp06MCcOXNYunQphw4dyvU1hmEwY8YMxo8fz3333Ufjxo2ZP38+ycnJfPXVV1ZtPTw8CAoKsiw+Pj62eFsC5hm/+70LA78A94oQvQs+6gyRn2jwt4iIlAplIixt3LgRHx8f2rVrZ1nXvn17fHx82LBhQ66vOX78ODExMURERFjWubq60qVLlxyv+fLLL/Hz86NRo0a8+OKLOXqebpSamkpiYqLVIreoQT8YtRFqdoWMK/DTC/D5PXD+qL0rExGR21yZCEsxMTEEBATkWB8QEEBMTEyerwEIDAy0Wh8YGGj1mkcffZSFCxeyZs0aJkyYwHfffcd9992Xbz1Tp061jJ3y8fGhWrVqhX1LkhvvYHjse+g5FZw94MQ6mB0O69+BzAx7VyciIrcpu4alSZMm5RhcfeOydetWAEwmU47XG4aR6/rr3fj8ja8ZPnw43bt3p3Hjxjz00EN8++23rFy5ku3bt+e5zXHjxpGQkGBZTp48WZi3LflxcIAOT8KTG6FmN8hIgZWTzKfmTqy3d3UiInIbcrLnzp9++umbXnkWFhbG7t27OXv2bI7nzp07l6PnKFtQUBBg7mEKDg62rI+Njc3zNQAtW7bE2dmZI0eO0LJly1zbuLq64urqmm/dcosqhsGg72HXQvj1XxC7D+b1gUb3QcS/waeKvSsUEZHbhF3Dkp+fH35+fjdt16FDBxISEtiyZQtt27YFYPPmzSQkJBAeHp7ra2rUqEFQUBArVqygRYsWAKSlpbF27VqmTZuW57727dtHenq6VcASOzGZoPkjULcXrPo3bJ0L+xbD4V+g84vQ4WlwUmgVEZGSVSbGLDVo0IBevXoxfPhwNm3axKZNmxg+fDh9+/alXr16lnb169fn+++/B8yn30aPHs0bb7zB999/z969exkyZAgeHh488sgjABw9epQpU6awdetWTpw4wbJly/jb3/5GixYt6Nixo13eq+TCoxL0fRv+sRaqtYP0ZPhtCnzQDvYuBsOwd4UiIlKOlYmwBOYr1po0aUJERAQRERE0bdqUBQsWWLU5dOgQCQkJlp/Hjh3L6NGjefLJJ2ndujWnT59m+fLlVKhQAQAXFxd+++03evbsSb169Xj22WeJiIhg5cqVODo62vT9SQEEN4Nhv8K9H5lvynvhOHw7FObcCcd/t3d1IiJSTpkMQ/8tv1WJiYn4+PiQkJCAt7e3vcu5PaQmwcYP4I+ZkH7ZvK52D+g+CYIa27U0EREpGwr6+7vM9CyJWHGtAF1fhud2Qpvh4OAEf66AD++Ab4dB7EF7VygiIuWEwpKUbV4B0Oc/8NQW85VyGLD3O5jVHv47BM7ut3eFIiJSxiksSflQuRb87TMYuR4a3AMYsO97mN0Bvnkczu676SZERERyo7Ak5UtQExi4AEb+AQ37m9ft/595JvBFj8GZnXYtT0REyh4N8C4GGuBdip3dD79Ph31LgKtf9bBOEP6MeUC4g/6/ICJyuyro72+FpWKgsFQGxB6EdW+ZxzMZmeZ1fnXNE1s2HQjObvatT0REbE5hyYYUlsqQhFOw+UPYNh9SE83rPP3NV9S1eQI8bz6jvIiIlA8KSzaksFQGpSTCjgWwaTYkXL0RsqMrNL7PHJyqtrJvfSIiUuIUlmxIYakMy8yA/Utg4/twZse19SEtzKGp8X3g7G638kREpOQoLNmQwlI5YBhwehtsmWO+WW9mmnm9e0Vo9jC0GASBDe1bo4iIFCuFJRtSWCpnLseZT9FFzoWEqGvrq7SClo+bJ7900+csIlLWKSzZkMJSOZWVCX/+Bjs+h0M/Q1aGeb2zBzS619zbVL09mEz2rVNERIpEYcmGFJZuA5fOwa6F5h6nuMPX1leqCU3+Bk0eBL/a9qtPREQKTWHJhhSWbiOGASe3wPbPzWOb0pOvPRfcHJo+CI3vhwpBditRREQKRmHJhhSWblOpl+DQMtjzX/PpuuzJLk0OUKOzubepQT+NbxIRKaUUlmxIYUm4HGe+ce/ub+DUlmvrHV2hTg9oOADq9lRwEhEpRRSWbEhhSazEH4c938Keb6zHNzm6QK07zTf4rdfbPC2BiIjYjcKSDSksSa4MA2L2wP7/mZfzR6495+AENbqYg1P9PrrNioiIHSgs2ZDCktyUYcC5g1eD0w8Qu+/acyYHqB4O9XpBvbuhci371SkichtRWLIhhSUptLgj5uB04AeI3mX9XOU65uBUtzdUaweOTvapUUSknFNYsiGFJbklF07AoV/g8M9wYv21yS/BPK6pTgTU7QW17wI3H7uVKSJS3igs2ZDCkhSblATzNASHf4HDv0LKxWvPOThDWEdzeKp1F/jX0+zhIiK3QGHJhhSWpERkZsDJzeYep0M/w/k/rZ/3rgq17zQHp5pdwd3XHlWKiJRZCks2pLAkNhH3p7nH6c+V8NcGyEy99pzJEaq2Ngen2t0hpDk4ONqtVBGRskBhyYYUlsTm0pLhrz/Mp+yO/mY9nxOYxzrV7GbucarZBSqG2aNKEZFSTWHJhhSWxO4uRl0LTsfWQmqi9fO+1c23YKnRFWp00r3rRERQWLIphSUpVTIz4PRWc3g6/rv58fVX2AH41TOHp5pdILQjeFSyT60iInaksGRDCktSqqVegqhNcHyNOTxF7wau/2tvguCmV3ueupjndtI97ETkNqCwZEMKS1KmJMeb53M6/rt5iTtk/bzJAYKamHucQsOhegfdjkVEyiWFJRtSWJIyLTEaTqwzj3X6a715kswb+dUzB6fQjhDaAXyq2rxMEZHiprBkQwpLUq4knjFPTZC9nDuQs41v9Ws9T6EdoVJNTZApImWOwpINKSxJuZYcD1Ebr4anP8xjnoxM6zZegeaxTtlLcFNwcrVPvSIiBaSwZEMKS3JbSU2Ck1vM4SlqI5zaaj1BJoCjK4S0gGptrgUorwD71CsikgeFJRtSWJLbWnoKnNluDlAnt5hv0ZIcl7NdxbCrwamt+c+AhpplXETsSmHJhhSWRK5jGBB/7FpwOrkFYvdjPV0B4OJlvkVLtXZQta35se5vJyI2pLBkQwpLIjeRkmA+XZcdoE5thbSknO0q14EqrczBqUpLCGwCTi62r1dEbgsKSzaksCRSSFmZEHvganCKNE+aeeF4znaOLhDU9LoA1UpX3olIsVFYsiGFJZFicPm8eezTqa1wepv5Ni1XLuRs5+ZrDk3XByhNmikiRaCwZEMKSyIlwDDMvU2ntl0LT9G7c155B+Abei1AVWllnrrAxdP2NYtImaKwZEMKSyI2kpEGZ/deDU/bzQEq7nDOdiYH8Ktrnr4guLn5z6Am4OJh85JFpPRSWLIhhSURO0pJuBqcrvZAndkBSdE525kcwL/+tfAU0gKCGoOzu81LFpHSQWHJhhSWREqZpBg4s9McnLKXy7E525kcIaDB1QDV3BygAhuDs5uNCxYRe1BYsiGFJZFSzjDMvU3ZASr66p+Xz+Vs6+AE/g2uhqfmENwCAhuqB0qkHFJYsiGFJZEyyDDMNw2+Pjyd2QHJ53O2NTmax0AFNzVPZRDc1DwGyr2izcsWkeKjsGRDCksi5YRhQMIp6/AUvTv327cA+Fa/Gp6aXQtRFYI1D5RIGaGwZEMKSyLlWHYPVMxuc3CKubpcjMq9vYffDT1QzcwTaTo42LZuEbkphSUbUlgSuQ1duQAxe64FqOjdEHcIjKycbV28zAPHg6/rhfKvr1u5iNiZwpINKSyJCADpV+DsfojZdS1End0HGSk52zo4gV89CGxknsIgsJH5XnheATqNJ2IjCks2pLAkInnKzIDzR67rgdpl/jMlIff2Hn5Xw1N2gGoM/vXAydW2dYvcBhSWbEhhSUQKJXsg+dl9cHbP1T/3wfk/cz+N5+BkvhovOzxlB6kKQeqFErkFCks2pLAkIsUiLRnOHTTf0uXsPojZa36ccjH39h6Vr52+yz6d51dPk2qKFJDCkg0pLIlIiTEMSDx9tfdp79UAtc98ai+3XqjsOaECG5mXgIbmSTV9qqkXSuQGCks2pLAkIjaXfsXcC5Udns7uNV+dl1cvlEsF861dAhuaA1T24lnZpmWLlCYF/f3tZMOabsmFCxd49tln+eGHHwC45557eO+99/D19c3zNYsXL+ajjz5i27ZtnD9/nh07dtC8eXOrNqmpqbz44ossXLiQK1eucNdddzFr1iyqVq1agu9GROQWObtfuyFwtuzbusTsvToWaj/EHoC4w5CWBKe2mJfreQWaQ1RAo2thyr8+uHja9v2IlGJlpmepd+/enDp1io8//hiAESNGEBYWxo8//pjnaxYsWMDx48cJCQlh+PDhuYalUaNG8eOPPzJv3jwqV67MCy+8QHx8PNu2bcPR0bFAtalnSURKtYw0iD9q7oGKPQCx+83LhRN5vMAEFcOuncLL7oWqXAscnW1YuEjJKlen4Q4cOEDDhg3ZtGkT7dq1A2DTpk106NCBgwcPUq9evXxff+LECWrUqJEjLCUkJODv78+CBQsYOHAgAGfOnKFatWosW7aMnj17Fqg+hSURKZNSL5lP5cXuv9oLdXXJ7QbDAI4u5vFQAQ2v9kY1MPdC+YZqhnIpk8rVabiNGzfi4+NjCUoA7du3x8fHhw0bNtw0LOVl27ZtpKenExERYVkXEhJC48aN2bBhQ4HDkohImeTqBVVbm5frXTp3NTgdgNh9107npV++eqXeXuv2Tu7gXxf8G5jnhFKIknKmTISlmJgYAgICcqwPCAggJibmlrbr4uJCxYrWdw4PDAzMd7upqamkpqZafk5MTCxyDSIipY6XP3h1gZpdrq3LyoKEKHNoyj6dd+6geTxUxhXzZJvRu6y3YwlR9c1LwNUw5RumECVlil3D0qRJk5g8eXK+bSIjIwEw5XLJq2EYua6/VTfb7tSpU29at4hIueLgYB7HVDEM6vW+tj4zwzz26dzV8BR7EM4dunmI8qtzrQfKvz4E1FeIklLLrmHp6aef5qGHHsq3TVhYGLt37+bs2bM5njt37hyBgYFF3n9QUBBpaWlcuHDBqncpNjaW8PDwPF83btw4xowZY/k5MTGRatWqFbkOEZEyy9EJ/Gqblwb9rq23hKiDV4PUIXOQyg5RMVdv/3K9PENUKDgU7IIbkZJg17Dk5+eHn5/fTdt16NCBhIQEtmzZQtu2bQHYvHkzCQkJ+Yaam2nVqhXOzs6sWLGCBx98EIDo6Gj27t3L9OnT83ydq6srrq66T5OISJ6sQlTfa+uzMs0hKvs0XnZvVIFDVL1rY6MqhilEiU2UiTFLDRo0oFevXgwfPpyPPvoIME8d0LdvX6vB3fXr12fq1Knce++9AMTHxxMVFcWZM2cAOHToEGDuUQoKCsLHx4cnnniCF154gcqVK1OpUiVefPFFmjRpQvfu3W38LkVEbgMOjuYpCCrXyj1EnTt4NUgdMvdIxR3JJ0S5ma/O869nvs2LXx3zz5Vq6pYvUqzKRFgC+PLLL3n22WctV67dc889vP/++1ZtDh06RELCtTt5//DDDwwdOtTyc/Ypv4kTJzJp0iQA3nnnHZycnHjwwQctk1LOmzevwHMsiYhIMbg+RNXvc2399SHKMiYqO0Sl5B6iTA7mU3d+da8FqOxFM5ZLEZSJeZZKO82zJCJiY9eHqLjD5vAUdxjOHYbUhLxf517pak/U9SGqjsZF3abK1aSUpZ3CkohIKWEY5kk14w5fvSrvyLUwlRCV9+scXaBy7ZwhqnId83xUUi6Vq0kpRURECsRkAq8A8xJ2h/Vzaclw/k/rnqi4I3D+6im97BnMb+RdJefpPL+6UCHIvD8p9xSWRETk9uDiAcFNzcv1srIg4eR1ASo7TB0y91IlnjYvx9bcsL0K14Wo68JUpZrg5GKztyUlT6fhioFOw4mIlFPJ8df1Rl3XIxV/HIzM3F9jcjRPa3B9iPKvZz7N51HJpuVL/jRmyYYUlkREbjMZaXDheM4Qde4wpCXl/TpP/1yu0qsDPtU0wNwONGZJRESkpDi5XJ0g84YbuRsGJMXkDFFxRyDxlPm03uVz8NcfN2zPLY8B5rXBxdN270typbAkIiJSXEwm8A42L9ffiBgg9dLVU3o3jI06/6d5gPnZveblRj7Vcx8b5RWgAeY2otNwxUCn4UREpMiyMuFi1HUh6ropD5LP5/06V59cQtTVOaM0g3mBaMySDSksiYhIibh83jy1wY2n9S6cACMrjxeZzNMdVKphXirWMF+hl/3YTb+nsmnMkoiISFnnWdm8VG9vvT4jFeKPWYeoc4fM61ITzeOjEk/BiXU5t+nhdzU8XQ1QlWpeC1QelXRqLxcKSyIiImWNkysENDAv1zMM83QH8cfMy4XjVx9f/TM57tpyakvO7bp639AbdV2g8goCBwfbvL9SRmFJRESkvDCZrvVGVWuT8/mUxKsB6vh1Yerq48TT5l6p6F3m5UZObldDVHZvVNi1MOVTHRzLb6Qov+9MRERErLl5Q3Az83Kj9Ctw4a+cvVEXjpvXZ6TAuQPm5UYOTuBb3Xp8VPbpvYphZX7AucKSiIiIgLM7BNQ3LzfKzDDfEsZyeu/EtUB14bg5SGU/d/S3G15sAu+QG3qjytaAc4UlERERyZ+j07Wr67jL+rmsLLgUY90bdf0pvtTEa/fXy2/AuVeAeRZzV2+oEAwVAs3jpCyPA8HR2SZv90YKSyIiIlJ0Dg7mniPvEAi7w/q56wec53Z67/K5awPObybidQh/umTew00oLImIiEjJKPCA82PmCTizsiAlwdxTlRQDSdGQdNb8c4Ug29d/lcKSiIiI2Ed+A86vl5WVzyScJU9hSUREREo3BwfAfnM83Z6zS4mIiIgUkMKSiIiISD4UlkRERETyobAkIiIikg+FJREREZF8KCyJiIiI5ENhSURERCQfCksiIiIi+VBYEhEREcmHwpKIiIhIPhSWRERERPKhsCQiIiKSD4UlERERkXw42buA8sAwDAASExPtXImIiIgUVPbv7ezf43lRWCoGSUlJAFSrVs3OlYiIiEhhJSUl4ePjk+fzJuNmcUpuKisrizNnzlChQgVMJlOxbTcxMZFq1apx8uRJvL29i227kpOOte3oWNuGjrPt6FjbRkkcZ8MwSEpKIiQkBAeHvEcmqWepGDg4OFC1atUS2763t7f+AtqIjrXt6Fjbho6z7ehY20ZxH+f8epSyaYC3iIiISD4UlkRERETyobBUirm6ujJx4kRcXV3tXUq5p2NtOzrWtqHjbDs61rZhz+OsAd4iIiIi+VDPkoiIiEg+FJZERERE8qGwJCIiIpIPhSURERGRfCgslWKzZs2iRo0auLm50apVK9atW2fvksq0SZMmYTKZrJagoCDL84ZhMGnSJEJCQnB3d6dr167s27fPjhWXHb///jv9+vUjJCQEk8nEkiVLrJ4vyLFNTU3lmWeewc/PD09PT+655x5OnTplw3dR+t3sOA8ZMiTHd7x9+/ZWbXScb27q1Km0adOGChUqEBAQwIABAzh06JBVG32ni0dBjnVp+F4rLJVSixYtYvTo0YwfP54dO3bQqVMnevfuTVRUlL1LK9MaNWpEdHS0ZdmzZ4/luenTp/P222/z/vvvExkZSVBQED169LDc+0/ydvnyZZo1a8b777+f6/MFObajR4/m+++/5+uvv2b9+vVcunSJvn37kpmZaau3Uerd7DgD9OrVy+o7vmzZMqvndZxvbu3atTz11FNs2rSJFStWkJGRQUREBJcvX7a00Xe6eBTkWEMp+F4bUiq1bdvWGDlypNW6+vXrGy+//LKdKir7Jk6caDRr1izX57KysoygoCDjzTfftKxLSUkxfHx8jA8//NBGFZYPgPH9999bfi7Isb148aLh7OxsfP3115Y2p0+fNhwcHIxffvnFZrWXJTceZ8MwjMGDBxv9+/fP8zU6zkUTGxtrAMbatWsNw9B3uiTdeKwNo3R8r9WzVAqlpaWxbds2IiIirNZHRESwYcMGO1VVPhw5coSQkBBq1KjBQw89xLFjxwA4fvw4MTExVsfc1dWVLl266JjfooIc223btpGenm7VJiQkhMaNG+v4F9KaNWsICAigbt26DB8+nNjYWMtzOs5Fk5CQAEClSpUAfadL0o3HOpu9v9cKS6VQXFwcmZmZBAYGWq0PDAwkJibGTlWVfe3atePzzz/n119/Zc6cOcTExBAeHs758+ctx1XHvPgV5NjGxMTg4uJCxYoV82wjN9e7d2++/PJLVq1axVtvvUVkZCR33nknqampgI5zURiGwZgxY7jjjjto3LgxoO90ScntWEPp+F47FctWpESYTCarnw3DyLFOCq53796Wx02aNKFDhw7UqlWL+fPnWwYL6piXnKIcWx3/whk4cKDlcePGjWndujWhoaH89NNP3HfffXm+Tsc5b08//TS7d+9m/fr1OZ7Td7p45XWsS8P3Wj1LpZCfnx+Ojo45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", + "image/png": "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FIDk5GSn8twvy1y53dK57ZB7HcDlTg/lHuNdd92V5xjfeustTNPkxIkThdpvQeR3nMOHD2fUqFH069ePH374gZUrV7J69WqaN29eqG1fKLfNLtWuV2pTyDm+K+0/OTkZNzc3qlat6lRuGAbBwcFO+3nooYdIT0/n66+/BuCXX34hISGBBx980FHn6NGjmKZJUFBQnvflzz//zPO5u9rP+qUcPXqUU6dOOa7Hu3BJTEwsUBzx8fF06NCBw4cP8+6777JixQpWr17N+++/DxTuc3Oh5OTkYv198ff3Z/ny5bRo0YKXXnqJxo0bExoayujRo52uVSqMon6ejh8/fsWL+Qv73hRFYGAgP//8M5BzEXpAQABPPfUUEyZMAKB69epXvY/yQNcASaE1a9aMX375hZ07d9K6dWu+/vpr3N3dmTdvHl5eXo56lxpv5mrvKsq9NmTEiBGOOyAudrk7ILp168a0adOYO3cuL7744mX3FRAQgIuLCwkJCXley72w+cJrVQoi98v40KFDef5KzpW7zf/85z+XvMvmwmtNikt+703utUhvvPGGU3lSUhKVKlUq0n5yv4ASEhLyfKEcOXKk0G16uf1kZ2dz/PhxpyTIPD+sQ+6F2wCNGjWidevWfPzxx/z973/n448/JjQ01JHcQ877YhgGK1ascHxRX+jispIa+yj3AvvcL8GLXdi7cak45s6dS1paGnPmzCE8PNxRfrXjblWpUqVYf18AmjZtytdff41pmmzatIlPPvmEsWPHUqFChSv+DhenqlWrXvHC68K+N0V1ww03sG3bNvbv309aWhp169Zl7dq1AHTs2LFY9nG9Uw+QFFruf5C5XyiGYeDm5oarq6ujzrlz5/j888+vaj+X6sGoX78+devWZePGjY7eqYuXy/0n07dvX5o2bcq4cePYsmVLvnV++eUXzp49i4+PD23atGHOnDlOcdjtdr744gtq1KhR6NN5MTExuLq6MmXKlEvWad++PZUqVWLbtm2XPEYPD49C7RcK9lfuxQzDyPPF/uOPP3L48OE824aC9Rzknhb64osvnMpXr15NXFxcngu8iyp3OxfvZ/bs2aSlpeXZz4MPPsjKlSv57bff+OGHHxg0aJDT57p3796Ypsnhw4fzfU+aNm1aLHHnutT71bt3b5KTk7HZbPnGUZBboHOTogvfW9M0mT59eoHjyM8tt9zCkiVL8tz5+Nlnn+Ht7X1Vt80bhkHz5s3597//TaVKlUp9wNIePXqwc+dOpxsaLlYc701hRERE0LhxY9zd3fnXv/5FaGgof/vb34p1H9cr9QDJZW3ZsoXs7Gwgp+t6zpw5LFy4kNtvv53IyEgAevXqxYQJE7jvvvt47LHHSE5O5p133sn3L+TCqF27NhUqVODLL7+kYcOG+Pr6EhoaSmhoKB988AE9evSgW7duDB48mOrVq3PixAni4uJYt24d//3vfy+5XVdXV7777jtiYmJo27YtQ4cOpUuXLvj4+HDgwAG+/fZbfvjhB06ePAnAuHHjuPXWW+nSpQvPPfccHh4eTJ48mS1btjBz5sxC/5UfERHBSy+9xGuvvca5c+cct65v27aNpKQkx6CM//nPfxg0aBAnTpzgrrvuolq1ahw/fpyNGzdy/PjxyyZQl9K0aVOWLVvGDz/8QEhICBUrVrzif8i9e/fmk08+oUGDBjRr1oy1a9fy9ttv5+m5udz7dbH69evz2GOP8Z///AcXFxd69OjhuAssLCyMZ599ttDHlp9bb72Vbt268cILL5Camkr79u0dd4G1bNmSAQMGONW/9957GT58OPfeey8ZGRl5rh1q3749jz32GA8++CBr1qyhY8eO+Pj4kJCQwG+//UbTpk0ZOnRoscQOOe/XnDlzmDJlClFRUbi4uBAdHc0999zDl19+Sc+ePXnmmWdo3bo17u7uHDp0iKVLl9K3b19uv/32K7aNh4cH9957L88//zzp6elMmTLF8bkvSBz5GT16NPPmzaNLly688sorVK5cmS+//JIff/yR8ePHF3pw0Xnz5jF58mT69etHrVq1ME2TOXPmcOrUKW699dZCbetqDRs2jFmzZtG3b19efPFFWrduzblz51i+fDm9e/emS5cuxfLeFMTIkSNp2rQpISEhxMfH89FHH7Fy5Up+/PHHYhvj6bpn3fXXUpbldxeYv7+/2aJFC3PChAl57qD66KOPzPr165uenp5mrVq1zHHjxpkzZswwAXPfvn2OeuHh4WavXr3y3efFd4GZZs4dFQ0aNDDd3d3z3B2xceNG8+677zarVatmuru7m8HBwebNN99sTp06tUDHeOrUKfO1114zW7VqZfr6+pru7u5mzZo1zQceeMD8/fffnequWLHCvPnmm00fHx+zQoUK5o033mj+8MMP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Tk5m7NixJCQk0KRJE+bPn094eM5UgAkJCcTHxzvqR0ZGMn/+fJ599lnef/99QkNDmTRpkmMMIIB27drx9ddf8/LLLzNq1Chq167NrFmzLB8DSERERMoOS8cBKqtKahwgERERKTmF+f62/C4wERERkdKmBEhERETKHSVAIiIiUu4oARIREZFyRwmQiIiIlDtKgERERKTcUQIkIiIi5Y6lAyGWVblDI6WmplociYiIiBRU7vd2QYY4VAKUj9OnTwMQFhZmcSQiIiJSWKdPn8bf3/+ydTQSdD7sdjtHjhyhYsWKGIZRrNtOTU0lLCyMgwcPapTpEqR2Lj1q69Khdi49auvSU9xtbZomp0+fJjQ0FBeXy1/lox6gfLi4uFCjRo0S3Yefn59+sUqB2rn0qK1Lh9q59KitS09xtvWVen5y6SJoERERKXeUAImIiEi5owSolHl6ejJ69Gg8PT2tDuW6pnYuPWrr0qF2Lj1q69JjZVvrImgREREpd9QDJCIiIuWOEiAREREpd5QAiYiISLmjBEhERETKHSVApWjy5MlERkbi5eVFVFQUK1assDqka96YMWMwDMNpCQ4OdrxumiZjxowhNDSUChUq0LlzZ7Zu3WphxNeGX3/9lT59+hAaGophGMydO9fp9YK0a0ZGBk899RSBgYH4+Phw2223cejQoVI8imvDldp68ODBeT7jN954o1MdtfWVjRs3jhtuuIGKFStSrVo1+vXrx44dO5zq6HN99QrSzmXlM60EqJTMmjWLYcOGMXLkSNavX0+HDh3o0aMH8fHxVod2zWvcuDEJCQmOZfPmzY7Xxo8fz4QJE3jvvfdYvXo1wcHB3HrrrY753iR/aWlpNG/enPfeey/f1wvSrsOGDeO7777j66+/5rfffuPMmTP07t0bm81WWodxTbhSWwN0797d6TM+f/58p9fV1le2fPlynnjiCf78808WLlxIdnY2MTExpKWlOeroc331CtLOUEY+06aUitatW5tDhgxxKmvQoIH54osvWhTR9WH06NFm8+bN833NbrebwcHB5ptvvukoS09PN/39/c2pU6eWUoTXPsD87rvvHM8L0q6nTp0y3d3dza+//tpR5/Dhw6aLi4v5888/l1rs15qL29o0TXPQoEFm3759L7mO2rpojh07ZgLm8uXLTdPU57qkXNzOpll2PtPqASoFmZmZrF27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", "text/plain": [ "
" ] @@ -1627,7 +2113,7 @@ }, { "data": { - "image/png": "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+y6cnJzw/PPP49NPPy2vt0BERERE+eAY5QqGY5yIiIgqHm6/KyYOvSAiIiIiksGgTEREREQkg0GZiIiIiEgGgzIRERERkQwGZSIiIiIiGQzKREREREQyGJSJiIiIiGQwKBMRERERyWBQJiIiIiKSwaBMRERERCSDQZmIiIiISAaDMhERERGRDAZlIiIiIiIZDMpERERERDIYlImIiIiIZDAoExERERHJYFAmIiIiIpLBoExEREREJINBmYiIiIhIBoMyEREREZEMBmUiIiIiIhkMykREREREMhiUiYiIiIhkMCgTEREREclgUCYiIiIiksGgTEREREQkg0GZiIiIiEgGgzIRERERkQwGZSIiIiIiGQzKREREREQyGJSJiIiIiGQwKBMRERERybAu7wYQERGVJYPBgJycnPJuBj2D1Go1lErug3yWMCgTEVGlIIRAbGws7t+/X95NoWeUUqmEv78/1Gp1eTeFSgmDMhERVQrGkOzm5gZbW1soFIrybhI9Q3Jzc3H79m3ExMSgevXqXL6eEQzKRET0zDMYDFJIdnFxKe/m0DPK1dUVt2/fhl6vh0qlKu/mUCngQBoiInrmGcck29ralnNL6FlmHHJhMBjKuSVUWhiUiYio0uDhcHqSuHw9eyp1UM7OzsbFixeh1+vLuylERERE9JSplEE5PT0do0ePhq2tLRo0aICoqCgAwKRJkzBv3rxybh0REdHTY//+/VAoFLxaCFVKlTIoT5s2DX///Tf2798PrVYrlXfp0gUbNmwox5YRERGZGjFiBBQKBRQKBaytrVG9enW89dZbuHfvXrm0Z/Xq1XByciqX1yYqa5XyqhdbtmzBhg0b0KZNG5PxRPXr18c///xTji0jIiIy16NHD6xatQp6vR7nz5/HqFGjcP/+faxfv768m0b0TKuUe5Tv3r0LNzc3s/K0tDQOxCcioqeORqOBh4cHqlWrhm7dumHw4MHYuXOn9PyqVatQr149aLVa1K1bF0uWLJGey87OxoQJE+Dp6QmtVgs/Pz+EhoYCAK5fvw6FQoHIyEip/v3796FQKLB//36zduzfvx8jR45EUlKStJd71qxZAIAlS5agVq1a0Gq1cHd3x8CBA59IXxCVpUq5R7lly5bYvn07Jk6cCODhWarffvstgoKCyrNpRERURoQQyMgpn8t42aisir1j5urVq/jjjz+k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FQuDcgls2LABkydPxvTp0xEREYF27dqhZ8+eiIqKKnC6pKQkDB8+HJ07dy6jlhIRERFRUSmEEKK8G1FRtW7dGs2aNcPSpUulsnr16qF///4IDQ3Nd7ohQ4agVq1asLKywpYtWxAZGWnxayYnJ0On0yEpKQmOjo4laT4RERGVEW6/KybuUS6m7OxsnDx5Et26dTMp79atG44ePZrvdKtWrcI///yDmTNnPukmEhEREVEJWJd3Ayqq+Ph4GAwGuLu7m5S7u7sjNjZWdprLly/j/fffx6FDh2BtbVnXZ2VlISsrS3qcnJxc/EYTERERkcW4R7mEFAqFyWMhhFkZABgMBgwdOhSzZ89G7dq1LZ5/aGgodDqddPPx8Slxm4mIiIiocAzKxVS1alVYWVmZ7T2Oi4sz28sMACkpKThx4gQmTJgAa2trWFtbY86cOfj7779hbW2NvXv3yr7OtGnTkJSUJN2io6OfyPshIiIiIlMcelFMarUazZs3x65duzBgwACpfNeuXejXr59ZfUdHR5w5c8akbMmSJdi7dy9+/vln+Pv7y76ORqOBRqMp3cYTERERUaEYlEtgypQpGDZsGFq0aIGgoCB88803iIqKwtixYwHk7Q2+desWvv/+eyiVSjRs2NBkejc3N2i1WrNyIiIiIip/DMolMHjwYCQkJGDOnDmIiYlBw4YNERYWBl9fXwBATExModdUJiIiIqKnE6+jXMHwOoxEREQVD7ffFRNP5iMiIiIiksGgTEREREQkg0GZiIiIiEgGgzIRERERkQwGZSIiIiIiGQzKREREREQyGJSJiIiIiGQwKBMRERERyWBQJiIiIiKSwaBMRERERCSDQZmIiIiISAaDMhERERGRDAZlIiIiIiIZDMpERERERDIYlImIiIiIZDAoExERERHJYFAmIiIiIpLBoExEREREJINBmYiIiIhIBoMyEREREZEMBmUiIiIiIhkMykREREREMhiUiYiIiIhkMCgTEREREclgUCYiIiIiksGgTEREREQkg0GZiIiIiEgGgzIRERERkQwGZSIiIiIiGQzKREREREQyGJSJiIiIiGQwKBMRERERyWBQJiIiIiKSwaBMRERERCSDQZmIiIiISAaDMhERERGRDAZlIiIiIiIZDMpERERERDIYlImIiIiIZDAoExERERHJYFAmIiIiIpLBoExEREREJINBmYiIiIhIBoMyEREREZEMBmUiIiIiIhkMykREREREMhiUiYiIiIhkMCiX0JIlS+Dv7w+tVovmzZvj0KFD+dbdvHkzunbtCldXVzg6OiIoKAg7duwow9YSERERkaUYlEtgw4YNmDx5MqZPn46IiAi0a9cOPXv2RFRUlGz9gwcPomvXrggLC8PJkyfRqVMn9O3bFxEREWXcciIiIiIqjEIIIcq7ERVV69at0axZMyxdulQqq1evHvr374/Q0FCL5tGgQQMMHjwYM2bMsKh+cnIydDodkpKS4OjoWKx2ExERUdni9rti4h7lYsrOzsbJkyfRrVs3k/Ju3brh6NGjFs0jNzcXKSkpcHZ2zrdOVlYWkpOTTW5ERERE9OQxKBdTfHw8DAYD3N3dTcrd3d0RGxtr0TwWLFiAtLQ0DBo0KN86oaGh0Ol00s3Hx6dE7SYiIiIiyzAol5BCoTB5LIQwK5Ozfv16zJo1Cxs2bICbm1u+9aZNm4akpCTpFh0dXeI2ExEREVHhrMu7ARVV1apVYWVlZbb3OC4uzmwv8+M2bNiA0aNHY9OmTejSpUuBdTUaDTQaTYnbS0RERERFwz3KxaRWq9G8eXPs2rXLpHzXrl0IDg7Od7r169djxIgR+PHHH9G7d+8n3UwiIiIiKibuUS6BKVOmYNiwYWjRogWCgoLwzTffICoqCmPHjgWQN2zi1q1b+P777wHkheThw4dj0aJFaNOmjbQ32sbGBjqdrtzeBxERERGZY1AugcGDByMhIQFz5sxBTEwMGjZsiLCwMPj6+gIAYmJiTK6pvHz5cuj1eowfPx7jx4+XykNCQrB69eqybj4RERERFYDXUa5geB1GIiKiiofb74qJY5SJiIiIiGQwKBMRERERyWBQJiIiIiKSwaBMRERERCSDQZmIiIiISAaDMhERERGRDAZlIiIiIiIZDMpERERERDIYlImIiIiIZDAoExERERHJYFAmIiIiIpLBoExEREREJINBmYiIiIhIBoMyEREREZEMBmUiIiIiIhkMykREREREMhiUiYiIiIhkMCgTEREREclgUCYiIiIiksGgTEREREQkg0GZiIiIiEgGgzIRERERkQwGZSIiIiIiGQzKREREREQyGJSJiIiIiGQwKBMRERERyWBQJiIiIiKSwaBMRERERCSDQZmIiIiISAaDMhERERGRDAZlIiIiIiIZDMpERERERDIYlImIiIiIZDAoExERERHJYFAmIiIiIpLBoExEREREJINBmYiIiIhIBoMyEREREZEMBmUiIiIiIhkMykREREREMhiUiYiIiIhkMCgTEREREclgUCYiIiIiksGgTEREREQkg0GZiIiIiEgGgzIRERERkQwGZSIiIiIiGQzKJbRkyRL4+/tDq9WiefPmOHToUIH1Dxw4gObNm0Or1aJGjRpYtmxZGbWUiIiIiIqCQbkENmzYgMmTJ2P69OmIiIhAu3bt0LNnT0RFRcnWv3btGnr16oV27dohIiICH3zwASZNmoRffvmljFtORERERIVRCCFEeTeiomrdujWaNWuGpUuXSmX16tVD//79ERoaalb/3//+N7Zu3YoLFy5IZWPHjsXff/+N8PBwi14zOTkZOp0OSbdvw9HR0byClRWg1T58nJaW/8yUSsDGpnh109OB/BYdhQKwtS1e3YwMIDc3/3bY2RWvbmYmYDCUTl1b27x2A0BWFqDXl05dG5u8fgaA7GwgJ6d06mq1ectFUevm5OTVz49GA1hbF72uXp/XF/lRqwGVquh1DYa8zy4/KlVe/aLWzc3NW9ZKo661dV5fAHnfifT00qlblO891xHydbmOKHpdriPy7lu4jpC230lJ8ttvejoJKpasrCxhZWUlNm/ebFI+adIk0b59e9lp2rVrJyZNmmRStnnzZmFtbS2ys7Nlp8nMzBRJSUnSLTo6WgAQSXmbFfNbr16mM7C1la8HCNGhg2ndqlXzr9uihWldX9/869avb1q3fv386/r6mtZt0SL/ulWrmtbt0CH/ura2pnV79cq/7uNfg4EDC66bmvqwbkhIwXXj4h7WHTeu4LrXrj2sO3VqwXXPnn1Yd+bMguseO/aw7vz5Bdfdt+9h3cWLC667bdvDuqtWFVx348aHdTduLLjuqlUP627bVnDdxYsf1t23r+C68+c/rHvsWMF1Z858WPfs2YLrTp36sO61awXXHTfuYd24uILrhoQ8rJuaWnDdgQOFiYLqch2Rd+M64uGN64i82xNeRyQlJQkAIikpSVDFwaEXxRQfHw+DwQB3d3eTcnd3d8TGxspOExsbK1tfr9cjPj5edprQ0FDodDrp5uPjUzpvgIiIiIgKxKEXxXT79m14e3vj6NGjCAoKkso//vhjrF27Fv/73//MpqlduzZGjhyJadOm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6NnAoRdERBbQ6XRQq9WwtbWFh4eHVL506VI0a9YMn3zyiVS2cuVK+Pj44NKlS6hduzYAoGbNmpg/f77JPB8d7+zv74+PPvoIb731FpYsWQK1Wg2dTgeFQmHyeo/bvXs3Tp8+jWvXrsHHxwcAsHbtWjRo0ADHjx9Hy5YtAQC5ublYvXo1HBwcAADDhg3Dnj178PHHH5esY4iInmHco0xEVAInT57Evn37YG9vL93q1q0LIG8vrlGLFi3Mpt23bx+6du0Kb29vODg4YPjw4UhISEBaWprFr3/hwgX4+PhIIRkA6tevDycnJ1y4cEEq8/Pzk0IyAHh6eiIuLq5I75WIqLLhHmUiohLIzc1F37598emnn5o95+npKd23s7Mzee7GjRvo1asXxo4di48++gjOzs44fPgwRo8ejZycHItfXwgBhUJRaLlKpTJ5XqFQIDc31+LXISKqjBiUiYgspFarYTAYTMqaNWuGX375BX5+frC2tnyVeuLECej1eixYsABKZd7BvY0bNxb6eo+rX78+oqKiEB0dLe1VPn/+PJKSklCvXj2L20NEROY49IKIyEJ+fn7466+/cP36dcTHxyM3Nxfjx49HYmIiXnnlFRw7dgxXr17Fzp07MWrUqAJDbkBAAPR6Pb766itcvXoVa9euxbJly8xeLzU1FXv27EF8fDzS09PN5tOlSxc0btwYr776Kk6dOoVjx45h+PDh6NChg+xwDyIishyDMhGRhaZOnQorKyvUr18frq6uiIqKgpeXF44cOQKDwYDu3bujYcOGePvtt6HT6aQ9xXKaNGmChQsX4tNPP0XDhg2xbt06hIaGmtQJDg7G2LFjMXjwYLi6upqdDAjkDaHYsmULqlSpgvbt26NLly6oUaMGNmzYUOrvn4ioslEIIUR5N4KIiIiI6GnDPcpERERERDIYlImIiIiIZDAoExERERHJYFAmIiIiIpLBoExEREREJINBmYiIiIhIBoMyEREREZEMBmUiIiIiIhkMykREREREMhiUiYiIiIhkMCgTEREREclgUCYiIiIikvH/tW8dvhaw7foAAAAASUVORK5CYII=", + "image/png": "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yBKxWIyPPvoIJSUl6NixI9f1YsCAAdyI6q5du+L555/H+PHjceLECXTv3h0+Pj7IysrCkSNH0KpVK7z44osANOfO1q1bsXLlSiQmJoLP53O91BMTExEUFIS9e/caZLL69OnD3eZiyy5Ytv7+pk+fji1btqB79+6YMWMGWrduDbVajczMTOzduxevvfaazW/KtsjJycHQoUO51pDz58+HVCrlRplbM2rUKKxfvx4DBw7Eq6++iocffhgikQi3b9/G77//jiFDhmDo0KFISEjAc889h9TUVIhEIvTp0wfnzp3jRttX5vPPP8fjjz+Ozp07Y8aMGYiOjkZmZib27NmD9evXAwDXXeSTTz7B2LFjIRKJ0LRpU4OsHmvMmDH4/PPPMXbsWNy4cQOtWrXCkSNH8N5772HgwIEmv7vKFBYWolevXhg9ejSaNWsGPz8/HD9+HL/++qvFu32swYMHY+3atWjWrBlat26NkydP4sMPP3S41CQoKAgzZ87EO++8g0mTJuHpp5/GrVu3sGDBAptLLyxdN62x9bpsz9+gJYGBgRg6dCjWrl2LgoICzJw506D+0t/fH927d8eHH36I0NBQxMbG4tChQ1i1apVNWfrk5GR88cUXeO655zB58mTk5eXhgw8+MDlXbT3/09LScODAAQwaNAjR0dGoqKjg7hjZe64B1fu+xratnTp1Ktcx5X//+x8iIyNx+fJlm47DGJ/PxwcffIBnn30WgwcPxgsvvACZTIYPP/wQBQUFeP/99+1+DebNm4fbt2+jd+/eeOihh1BQUIBPPvkEIpGoxifoWrZsGR555BF06tQJb731Fho1aoR79+5hx44d+OKLL+Dn5+eU301lcnJy8NFHH6Fr167w8/PDf//9hw8++AB8Pt9sG1KrbB72x5jvehEQEMC0bduWWbZsGVNRUWGw/urVq5mmTZsyEomEadiwIbN48WJm1apVJqOxY2JimEGDBpndp7nuCBs2bGCaNWvGiEQikxGRZ86cYUaMGMGEhYUxIpGIiYiIYB599FEmLS3N4vPavn17pR0Gfv31V4PRyezo24MHDzIdOnRgJBIJExkZybz99tsGXTe++eYbplevXkx4eDgjFouZ+vXrMyNGjGDOnj1rsP1//vmHefzxx5mAgABGLBYzbdq0MensYa7rBcMwzO7du5m2bdsyXl5eTMOGDZnPPvvM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", "text/plain": [ "
" ] @@ -1641,14 +2127,11 @@ "\n", "species = \"Barite\"\n", "iterations = 250\n", - "cell_offset = 9\n", + "cell_offset = 120\n", "y_design = []\n", "y_results = []\n", "y_differences = []\n", "\n", - "# if(preprocess.state['log'] == True):\n", - "# df_design_transformed, df_results_transformed = preprocess.funcTranform(df_design[species_columns], df_results[species_columns])\n", - "\n", "df_design_transformed_scaled = preprocess.scaler_X.transform(df_design[species_columns])\n", "df_results_transformed_scaled = preprocess.scaler_y.transform(df_results[species_columns])\n", "\n", @@ -1966,93 +2449,86 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 62, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m3938/3938\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 827us/step - loss: 70.7642\n" + "\u001b[1m3938/3938\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 953us/step - loss: 1.6434e-04\n" ] }, { "data": { "text/plain": [ - "70.69287872314453" + "0.00016705328016541898" ] }, - "execution_count": 33, + "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# test on all test data\n", - "model_simple.evaluate(X_test.loc[:, X_test.columns != \"Class\"], y_test.loc[:, y_test.columns != \"Class\"])" + "model_large.evaluate(X_test.loc[:, X_test.columns != \"Class\"], y_test.loc[:, y_test.columns != \"Class\"])" ] }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 63, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m3747/3747\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 733us/step - loss: 67.2305\n" + "\u001b[1m3747/3747\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 979us/step - loss: 1.6752e-04\n" ] }, { "data": { "text/plain": [ - "67.27115631103516" + "0.00017050358292181045" ] }, - "execution_count": 34, + "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# test on non-reactive data\n", - "model_simple.evaluate(X_test[X_test['Class'] == 0].iloc[:,X_test.columns != \"Class\"], y_test[X_test['Class'] == 0].iloc[:, y_test.columns != \"Class\"])" + "model_large.evaluate(X_test[X_test['Class'] == 0].iloc[:,X_test.columns != \"Class\"], y_test[X_test['Class'] == 0].iloc[:, y_test.columns != \"Class\"])" ] }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 64, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[1m 1/192\u001b[0m \u001b[37m━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[1m2s\u001b[0m 12ms/step - loss: 148.6424" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[1m192/192\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 749us/step - loss: 139.3093\n" + "\u001b[1m192/192\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - loss: 1.0253e-04\n" ] }, { "data": { "text/plain": [ - "137.7884521484375" + "9.94073852780275e-05" ] }, - "execution_count": 36, + "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# test on reactive data\n", - "model_simple.evaluate(X_test[X_test['Class'] == 1].iloc[:,:-1], y_test[X_test['Class'] == 1].iloc[:, :-1])" + "model_large.evaluate(X_test[X_test['Class'] == 1].iloc[:,:-1], y_test[X_test['Class'] == 1].iloc[:, :-1])" ] }, { @@ -2075,7 +2551,7 @@ ], "metadata": { "kernelspec": { - "display_name": "ai", + "display_name": "training", "language": "python", "name": "python3" }, diff --git a/convert_data.jl b/src/convert_data.jl similarity index 100% rename from convert_data.jl rename to src/convert_data.jl diff --git a/src/optuna_runs.py b/src/optuna_runs.py new file mode 100644 index 0000000..8b09182 --- /dev/null +++ b/src/optuna_runs.py @@ -0,0 +1,106 @@ +import keras +from keras.layers import Dense, Dropout, Input,BatchNormalization +import tensorflow as tf +import h5py +import numpy as np +import pandas as pd +import time +import sklearn.model_selection as sk +import matplotlib.pyplot as plt +from sklearn.cluster import KMeans +from sklearn.pipeline import Pipeline, make_pipeline +from sklearn.preprocessing import StandardScaler, MinMaxScaler +from imblearn.over_sampling import SMOTE +from imblearn.under_sampling import RandomUnderSampler +from imblearn.over_sampling import RandomOverSampler +from collections import Counter +import os +from preprocessing import * +from sklearn import set_config +from importlib import reload +set_config(transform_output = "pandas") +import optuna +import pickle + +data_file = h5py.File("../datasets/barite_50_4_corner.h5") + +def objective(trial, preprocess, X, y, species_columns): + + model_type = trial.suggest_categorical("model", ["simple", "large", "paper"]) + scaler_type = trial.suggest_categorical("scaler", ["standard", "minmax"]) + sampling_type = trial.suggest_categorical("sampling", ["over", "off"]) + + preprocess = preprocessing() + X, y = preprocess.cluster(df_design[species_columns], df_results[species_columns]) + X_train, X_test, y_train, y_test = preprocess.split(X, y, ratio = 0.2) + X_train, y_train = preprocess.balancer(X_train, y_train, strategy = sampling_type) + preprocess.scale_fit(X_train, y_train, scaling = "global", type=scaler_type) + X_train, X_test, y_train, y_test = preprocess.scale_transform(X_train, X_test, y_train, y_test) + X_train, X_val, y_train, y_val = preprocess.split(X_train, y_train, ratio = 0.1) + + column_dict = {"Ba": X.columns.get_loc("Ba"), "Barite":X.columns.get_loc("Barite"), "Sr":X.columns.get_loc("Sr"), "Celestite":X.columns.get_loc("Celestite"), "H":X.columns.get_loc("H"), "H":X.columns.get_loc("H"), "O":X.columns.get_loc("O")} + + h1 = trial.suggest_float("h1", 0.1, 1) + h2 = trial.suggest_float("h2", 0.1, 1) + h3 = trial.suggest_float("h3", 0.1, 1) + + + model = model_definition(model_type) + + lr_schedule = keras.optimizers.schedules.ExponentialDecay( + initial_learning_rate=0.001, + decay_steps=2000, + decay_rate=0.9, + staircase=True + ) + optimizer = keras.optimizers.Adam(learning_rate=lr_schedule) + + model.compile(optimizer=optimizer, loss=custom_loss(preprocess, column_dict, h1, h2, h3, scaler_type), metrics=[huber_metric(1.0), mass_balance_metric(preprocess, column_dict, scaler_type="minmax")]) + + callback = keras.callbacks.EarlyStopping(monitor='loss', patience=3) + history = model.fit(X_train.loc[:, X_train.columns != "Class"], + y_train.loc[:, y_train.columns != "Class"], + batch_size=512, + epochs=100, + validation_data=(X_val.loc[:, X_val.columns != "Class"], y_val.loc[:, y_val.columns != "Class"]), + callbacks=[callback]) + + prediction_loss = model.evaluate(X_test.loc[:, X_test.columns != "Class"], y_test.loc[:, y_test.columns != "Class"]) + mass_balance_results = mass_balance_evaluation(model, X_test, preprocess) + + mass_balance_ratio = len(mass_balance_results[mass_balance_results < 1e-5]) / len(mass_balance_results) + + model_save_path_trial = os.path.join("../results/models/", f"model_trial_{trial.number}.h5") + history_save_path_trial = os.path.join("../results/history/", f"history_trial_{trial.number}.pkl") + + model.save(model_save_path_trial) + with open(history_save_path_trial, 'wb') as f: + pickle.dump(history.history, f) + + return prediction_loss, mass_balance_ratio + +if __name__ == "__main__": + + design = data_file["design"] + results = data_file["result"] + + df_design = pd.DataFrame(np.array(design["data"]).transpose(), columns = np.array(design["names"].asstr())) + df_results = pd.DataFrame(np.array(results["data"]).transpose(), columns = np.array(results["names"].asstr())) + + data_file.close() + + species_columns = ['H', 'O', 'Charge', 'Ba', 'Cl', 'S', 'Sr', 'Barite', 'Celestite'] + + study = optuna.create_study(storage="sqlite:///model_optimization.db", study_name="model_optimization", directions=["minimize", "maximize"]) + study.optimize(lambda trial: objective(trial, df_design, df_results, species_columns), n_trials=1000) + + print("Number of finished trials: ", len(study.trials)) + + print("Best trial:") + trial = study.best_trial + + print(" Value: ", trial.value) + + print(" Params: ") + for key, value in trial.params.items(): + print(" {}: {}".format(key, value)) \ No newline at end of file diff --git a/src/preprocessing.py b/src/preprocessing.py new file mode 100644 index 0000000..9348436 --- /dev/null +++ b/src/preprocessing.py @@ -0,0 +1,357 @@ +import keras +from keras.layers import Dense, Dropout, Input,BatchNormalization, LeakyReLU +import tensorflow as tf +import h5py +import numpy as np +import pandas as pd +import time +import sklearn.model_selection as sk +import matplotlib.pyplot as plt +from sklearn.cluster import KMeans +from sklearn.pipeline import Pipeline, make_pipeline +from sklearn.preprocessing import StandardScaler, MinMaxScaler +from imblearn.over_sampling import SMOTE +from imblearn.under_sampling import RandomUnderSampler +from imblearn.over_sampling import RandomOverSampler +from collections import Counter +import os +from preprocessing import * +from sklearn import set_config +from importlib import reload +set_config(transform_output = "pandas") + +# preprocessing pipeline +# + +def Safelog(val): + # get range of vector + if val > 0: + return np.log10(val) + elif val < 0: + return -np.log10(-val) + else: + return 0 + +def Safeexp(val): + if val > 0: + return -10 ** -val + elif val < 0: + return 10 ** val + else: + return 0 + + +def model_definition(architecture): + dtype = "float32" + + if architecture == "small": + model = keras.Sequential( + [ + keras.Input(shape=(8,), dtype="float32"), + keras.layers.Dense(units=128, dtype="float32"), + LeakyReLU(alpha=0.01), + # Dropout(0.2), + keras.layers.Dense(units=128, dtype="float32"), + LeakyReLU(alpha=0.01), + keras.layers.Dense(units=8, dtype="float32") + ] + ) + + + elif architecture == "large": + model = keras.Sequential( + [ + keras.layers.Input(shape=(8,), dtype=dtype), + keras.layers.Dense(512, dtype=dtype), + LeakyReLU(alpha=0.01), + keras.layers.Dense(1024, dtype=dtype), + LeakyReLU(alpha=0.01), + keras.layers.Dense(512, dtype=dtype), + LeakyReLU(alpha=0.01), + keras.layers.Dense(8, dtype=dtype) + ] + ) + + elif architecture == "paper": + model = keras.Sequential( + [keras.layers.Input(shape=(8,), dtype=dtype), + keras.layers.Dense(128, dtype=dtype), + LeakyReLU(alpha=0.01), + keras.layers.Dense(256, dtype=dtype), + LeakyReLU(alpha=0.01), + keras.layers.Dense(512, dtype=dtype), + LeakyReLU(alpha=0.01), + keras.layers.Dense(256, dtype=dtype), + LeakyReLU(alpha=0.01), + keras.layers.Dense(8, dtype=dtype) + ]) + + return model + + +def custom_loss(preprocess, column_dict, h1, h2, h3, scaler_type="minmax"): + # extract the scaling parameters + + if scaler_type == "minmax": + scale_X = tf.convert_to_tensor(preprocess.scaler_X.scale_, dtype=tf.float32) + min_X = tf.convert_to_tensor(preprocess.scaler_X.min_, dtype=tf.float32) + scale_y = tf.convert_to_tensor(preprocess.scaler_y.scale_, dtype=tf.float32) + min_y = tf.convert_to_tensor(preprocess.scaler_y.min_, dtype=tf.float32) + + elif scaler_type == "standard": + scale_X = tf.convert_to_tensor(preprocess.scaler_X.scale_, dtype=tf.float32) + mean_X = tf.convert_to_tensor(preprocess.scaler_X.mean_, dtype=tf.float32) + scale_y = tf.convert_to_tensor(preprocess.scaler_y.scale_, dtype=tf.float32) + mean_y = tf.convert_to_tensor(preprocess.scaler_y.mean_, dtype=tf.float32) + + def loss(results, predicted): + + # inverse min/max scaling + if scaler_type == "minmax": + predicted_inverse = predicted * scale_y + min_y + results_inverse = results * scale_X + min_X + + elif scaler_type == "standard": + predicted_inverse = predicted * scale_y + mean_y + results_inverse = results * scale_X + mean_X + + # mass balance + dBa = tf.keras.backend.abs( + (predicted_inverse[:, column_dict["Ba"]] + predicted_inverse[:, column_dict["Barite"]]) - + (results_inverse[:, column_dict["Ba"]] + results_inverse[:, column_dict["Barite"]]) + ) + dSr = tf.keras.backend.abs( + (predicted_inverse[:, column_dict["Sr"]] + predicted_inverse[:, column_dict["Celestite"]]) - + (results_inverse[:, column_dict["Sr"]] + results_inverse[:, column_dict["Celestite"]]) + ) + + # H/O ratio has to be 2 + # h2o_ratio = tf.keras.backend.abs( + # (predicted_inverse[:, column_dict["H"]] / predicted_inverse[:, column_dict["O"]]) - 2 + # ) + + # huber loss + huber_loss = tf.keras.losses.Huber()(results, predicted) + + # total loss + total_loss = h1 * huber_loss + h2 * dBa + h3 * dSr #+ h4 * h2o_ratio + # total_loss = huber_loss + return total_loss + + return loss + +def mass_balance_evaluation(model, X, preprocess): + + # predict the chemistry + columns = X.iloc[:, X.columns != "Class"].columns + prediction = pd.DataFrame(model.predict(X[columns]), columns=columns) + + # backtransform min/max or standard scaler + X = pd.DataFrame(preprocess.scaler_X.inverse_transform(X.iloc[:, X.columns != "Class"]), columns=columns) + prediction = pd.DataFrame(preprocess.scaler_y.inverse_transform(prediction), columns=columns) + + # calculate mass balance + dBa = np.abs((prediction["Ba"] + prediction["Barite"]) - (X["Ba"] + X["Barite"])) + print(dBa.min()) + dSr = np.abs((prediction["Sr"] + prediction["Celestite"]) - (X["Sr"] + X["Celestite"])) + print(dSr.min()) + return dBa, dSr, prediction + + +def mass_balance_metric(preprocess, column_dict, scaler_type="minmax"): + + if scaler_type == "minmax": + scale_X = tf.convert_to_tensor(preprocess.scaler_X.scale_, dtype=tf.float32) + min_X = tf.convert_to_tensor(preprocess.scaler_X.min_, dtype=tf.float32) + scale_y = tf.convert_to_tensor(preprocess.scaler_y.scale_, dtype=tf.float32) + min_y = tf.convert_to_tensor(preprocess.scaler_y.min_, dtype=tf.float32) + + elif scaler_type == "standard": + scale_X = tf.convert_to_tensor(preprocess.scaler_X.scale_, dtype=tf.float32) + mean_X = tf.convert_to_tensor(preprocess.scaler_X.mean_, dtype=tf.float32) + scale_y = tf.convert_to_tensor(preprocess.scaler_y.scale_, dtype=tf.float32) + mean_y = tf.convert_to_tensor(preprocess.scaler_y.mean_, dtype=tf.float32) + + + def mass_balance(results, predicted): + # inverse min/max scaling + if scaler_type == "minmax": + predicted_inverse = predicted * scale_y + min_y + results_inverse = results * scale_X + min_X + + elif scaler_type == "standard": + predicted_inverse = predicted * scale_y + mean_y + results_inverse = results * scale_X + mean_X + + # mass balance + dBa = tf.keras.backend.abs( + (predicted_inverse[:, column_dict["Ba"]] + predicted_inverse[:, column_dict["Barite"]]) - + (results_inverse[:, column_dict["Ba"]] + results_inverse[:, column_dict["Barite"]]) + ) + dSr = tf.keras.backend.abs( + (predicted_inverse[:, column_dict["Sr"]] + predicted_inverse[:, column_dict["Celestite"]]) - + (results_inverse[:, column_dict["Sr"]] + results_inverse[:, column_dict["Celestite"]]) + ) + + return tf.reduce_mean(dBa + dSr) + + return mass_balance + + +def huber_metric(delta=1.0): + def huber(results, predicted): + return tf.keras.losses.huber(results, predicted, delta=delta) + + return huber + + +class preprocessing: + + def __init__(self, func_dict_in=None, func_dict_out=None, random_state=42): + self.random_state = random_state + self.scaler_X = None + self.scaler_y = None + self.func_dict_in = None + self.func_dict_in = func_dict_in if func_dict_in is not None else None + self.func_dict_out = func_dict_out if func_dict_out is not None else None + self.state = {"cluster": False, "log": False, "balance": False, "scale": False} + + def funcTranform(self, X, y): + for key in X.keys(): + if "Class" not in key: + X[key] = X[key].apply(self.func_dict_in[key]) + y[key] = y[key].apply(self.func_dict_in[key]) + self.state["log"] = True + + return X, y + + def funcInverse(self, X, y): + + for key in X.keys(): + if "Class" not in key: + X[key] = X[key].apply(self.func_dict_out[key]) + y[key] = y[key].apply(self.func_dict_out[key]) + self.state["log"] = False + return X, y + + def cluster(self, X, y, species='Barite', n_clusters=2, x_length=50, y_length=50): + + class_labels = np.array([]) + grid_length = x_length * y_length + iterations = int(len(X) / grid_length) + + for i in range(0, iterations): + field = np.array(X[species][(i*grid_length):(i*grid_length+grid_length)] + ).reshape(x_length, y_length) + kmeans = KMeans(n_clusters=n_clusters, random_state=self.random_state).fit(field.reshape(-1, 1)) + class_labels = np.append(class_labels.astype(int), kmeans.labels_) + + if ("Class" in X.columns and "Class" in y.columns): + print("Class column already exists") + else: + class_labels_df = pd.DataFrame(class_labels, columns=['Class']) + X = pd.concat([X, class_labels_df], axis=1) + y = pd.concat([y, class_labels_df], axis=1) + self.state["cluster"] = True + + return X, y + + + def balancer(self, X, y, strategy, sample_fraction=0.5): + + number_features = (X.columns != "Class").sum() + if("Class" not in X.columns): + if("Class" in y.columns): + classes = y['Class'] + else: + raise Exception("No class column found") + else: + classes = X['Class'] + counter = classes.value_counts() + print("Amount class 0 before:", counter[0] / (counter[0] + counter[1]) ) + print("Amount class 1 before:", counter[1] / (counter[0] + counter[1]) ) + df = pd.concat([X.loc[:,X.columns != "Class"], y.loc[:, y.columns != "Class"], classes], axis=1) + + if strategy == 'smote': + print("Using SMOTE strategy") + smote = SMOTE(sampling_strategy=sample_fraction) + df_resampled, classes_resampled = smote.fit_resample(df.loc[:, df.columns != "Class"], df.loc[:, df. columns == "Class"]) + + elif strategy == 'over': + print("Using Oversampling") + over = RandomOverSampler() + df_resampled, classes_resampled = over.fit_resample(df.loc[:, df.columns != "Class"], df.loc[:, df. columns == "Class"]) + + elif strategy == 'under': + print("Using Undersampling") + under = RandomUnderSampler() + df_resampled, classes_resampled = under.fit_resample(df.loc[:, df.columns != "Class"], df.loc[:, df. columns == "Class"]) + + else: + return X, y + + counter = classes_resampled["Class"].value_counts() + print("Amount class 0 after:", counter[0] / (counter[0] + counter[1]) ) + print("Amount class 1 after:", counter[1] / (counter[0] + counter[1]) ) + + design_resampled = pd.concat([df_resampled.iloc[:,0:number_features], classes_resampled], axis=1) + target_resampled = pd.concat([df_resampled.iloc[:,number_features:], classes_resampled], axis=1) + + self.state['balance'] = True + return design_resampled, target_resampled + + + def scale_fit(self, X, y, scaling, type='Standard'): + + if type == 'minmax': + self.scaler_X = MinMaxScaler() + self.scaler_y = MinMaxScaler() + elif type == 'standard': + self.scaler_X = StandardScaler() + self.scaler_y = StandardScaler() + + else: + raise Exception("No valid scaler type found") + + if scaling == 'individual': + self.scaler_X.fit(X.iloc[:, X.columns != "Class"]) + self.scaler_y.fit(y.iloc[:, y.columns != "Class"]) + + elif scaling == 'global': + self.scaler_X.fit(pd.concat([X.iloc[:, X.columns != "Class"], y.iloc[:, y.columns != "Class"]], axis=0)) + self.scaler_y = self.scaler_X + + self.state['scale'] = True + + def scale_transform(self, X_train, X_test, y_train, y_test): + X_train = pd.concat([self.scaler_X.transform(X_train.loc[:, X_train.columns != "Class"]), X_train.loc[:, "Class"]], axis=1) + + X_test = pd.concat([self.scaler_X.transform(X_test.loc[:, X_test.columns != "Class"]), X_test.loc[:, "Class"]], axis=1) + + y_train = pd.concat([self.scaler_y.transform(y_train.loc[:, y_train.columns != "Class"]), y_train.loc[:, "Class"]], axis=1) + + y_test = pd.concat([self.scaler_y.transform(y_test.loc[:, y_test.columns != "Class"]), y_test.loc[:, "Class"]], axis=1) + + return X_train, X_test, y_train, y_test + + def scale_inverse(self, X): + + if("Class" in X.columns): + X = pd.concat([self.scaler_X.inverse_transform(X.loc[:, X.columns != "Class"]), X.loc[:, "Class"]], axis=1) + else: + X = self.scaler_X.inverse_transform(X) + + return X + + def split(self, X, y, ratio=0.8): + X_train, y_train, X_test, y_test = sk.train_test_split(X, y, test_size = ratio, random_state=self.random_state) + + return X_train, y_train, X_test, y_test + + + + + + + + \ No newline at end of file