iv trained my model as follow:
# %%
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from tensorflow.keras.utils import to_categorical
import numpy as np



# %%
import pandas as pd
# Load the dataset using pandas
df = pd.read_csv(r"C:\Users\arisa\Desktop\combined_day_fl_1hot_custom_extra_and_indic_no_h.csv")

# %%
# Assuming ‘df’ is your DataFrame and ‘Label’ is the target column
X = df.drop(['y_High_1d', 'y_Low_1d', 'y_Priority_1d',
                 'y_High_2d', 'y_Low_2d', 'y_Priority_2d',
                  'y_High_3d', 'y_Low_3d', 'y_Priority_3d',
                   'y_High_5d', 'y_Low_5d', 'y_Priority_5d'], axis=1).values
Y = df[['y_High_1d', 'y_Low_1d', 'y_Priority_1d']].values
# Y = to_categorical(y)  # Convert labels to one-hot encoding


# %%
# Normalizing the features
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# %%
# Normalizing the features
scaler_y = StandardScaler()
Y_scaled = scaler_y.fit_transform(Y)

# %%
import joblib

joblib.dump(scaler,'snn_all_1142_x_scaler.sav')
joblib.dump(scaler_y,'snn_all_1142_yhlp1_scaler.sav')

# %%
X_train, X_temp, y_train, y_temp = train_test_split(X_scaled, Y_scaled, train_size = 0.92, random_state = 42)

# We will keep the shuffle = True since our dataset has not any time dependency.

X_dev, X_test, y_dev, y_test = train_test_split(X_temp, y_temp, test_size = 0.5, random_state = 42)

# %%
print(f'train samples: {len(X_train)}\ndev samples: {len(X_dev)}\ntest samples: {len(X_test)}')

# %%
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout,Input
import tensorflow as tf
from tensorflow.keras.layers import BatchNormalization
import keras
from tensorflow.keras import Model

def build_model():
    #  activation='relu',activity_regularizer=tf.keras.regularizers.L2(0.04)
    model = Sequential([
        Dense(X.shape[1], input_shape=(X.shape[1],)),
        Dropout(0.45),
        Dense(2048, activation='relu'),
        Dropout(0.35),
        Dense(512, activation='relu'),
        Dropout(0.1),
        Dense(64, activation='relu'),
        
        Dense(32, activation='relu'),

        Dense(3)  # Output layer
    ])

    # inputs = Input(shape=(X.shape[1],))

    # x = Dense(X.shape[1], activation='relu', input_shape=(X.shape[1],)) (inputs)

    # x = Dense(2048, activation='relu') (x)

    # x = Dense(1024, activation='relu') (x)
 
    # x = Dense(512, activation='relu') (x)
  
    # x = Dense(256, activation='relu') (x)
 
    # x = Dense(128, activation='relu') (x)
    # x = Dense(128, activation='relu') (x)


    # out_high_1d = Dense(1, name='high_output_1d')(x)  # No activation, linear output
    # out_low_1d = Dense(1, name='low_output_1d')(x)    # No activation, linear output
    # out_priority_1d = Dense(1, activation='sigmoid', name='priority_output_1d')(x)

    # model = Model(inputs=inputs, outputs=[
    # out_high_1d, out_low_1d, out_priority_1d])

    # optimizer = keras.optimizers.Adam(learning_rate=0.001)
    # model.compile(optimizer=optimizer,
    #           loss={
    #             'high_output_1d': 'mse', 'low_output_1d': 'mse', 'priority_output_1d': 'binary_crossentropy',
    #             # 'high_output_2d': 'mse', 'low_output_2d': 'mse', 'priority_output_2d': 'binary_crossentropy',
    #             # 'high_output_3d': 'mse', 'low_output_3d': 'mse', 'priority_output_3d': 'binary_crossentropy',
    #             # 'high_output_5d': 'mse', 'low_output_5d': 'mse', 'priority_output_5d': 'binary_crossentropy'
    #           },
    #           metrics={
    #             'high_output_1d': ['mae'], 'low_output_1d': ['mae'], 'priority_output_1d': ['accuracy'],
    #             # 'high_output_2d': ['mae'], 'low_output_2d': ['mae'], 'priority_output_2d': ['accuracy'],
    #             # 'high_output_3d': ['mae'], 'low_output_3d': ['mae'], 'priority_output_3d': ['accuracy'],
    #             # 'high_output_5d': ['mae'], 'low_output_5d': ['mae'], 'priority_output_5d': ['accuracy']
    #           },
    #           loss_weights={
    #             'high_output_1d': 1.0, 'low_output_1d': 1.0, 'priority_output_1d': 1.0,
    #             # 'high_output_2d': 1.0, 'low_output_2d': 1.0, 'priority_output_2d': 1.0,
    #             # 'high_output_3d': 1.0, 'low_output_3d': 1.0, 'priority_output_3d': 1.0,
    #             # 'high_output_5d': 1.0, 'low_output_5d': 1.0, 'priority_output_5d': 1.0
    #           }
    #           )

    optimizer = keras.optimizers.Adam(learning_rate=0.00001,clipvalue=0.5)
    model.compile(optimizer=optimizer,
                  loss='mse',
                  metrics=['mae'])
    return model


# %%
model = build_model()

model.summary()

# %%

# Splitting y_train and y_dev into separate arrays for each output
# y_train_high = y_train[:, [0]]  # Extracting the high column
# y_train_low = y_train[:, [1]]   # Extracting the low column
# y_train_priority = y_train[:, [2]]   # Extracting the priority column

# # Do the same for y_dev
# y_dev_high = y_dev[:, [0]]
# y_dev_low = y_dev[:, [1]]
# y_dev_priority = y_dev[:, [2]]

# # Adjusting the fit call to provide a list (or dict) of outputs
# history = model.fit(
#     X_train, 
#     [y_train_high, y_train_low, y_train_priority],  # Now a list of targets
#     epochs=6000, 
#     batch_size=2048,
#     validation_data=(X_dev, [y_dev_high, y_dev_low, y_dev_priority])
# )

history = model.fit(X_train, y_train, epochs=6000, batch_size=4096,
                    validation_data=(X_dev, y_dev))


# %%
model.save('snn_1142_hlp1_5m_relu_trainloss12_mae20_valloss27_mae24.h5')




how can i see my model performance on my test set