Installing Dependencies
import time
import numpy as np
import tensorflow as tf
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
import matplotlib.pyplot as plt
import psutil
import pandas as pd
from sklearn.preprocessing import MinMaxScaler, StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.svm import SVR
from xgboost import XGBRegressor
from statsmodels.tsa.arima.model import ARIMA
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, GRU, Bidirectional, Dense, Conv1D, Flatten, Input, SimpleRNN, Attention
from tensorflow.keras.models import Model
Data Preprocessing, Data Cleaning and EDA
# Initialize performance metrics
process = psutil.Process()
start_time = time.time()
initial_cpu_percent = process.cpu_percent(interval=None)
initial_memory_usage = process.memory_info().rss / 1024 / 1024 # Memory in MB
# Load and preprocess data
data = pd.read_csv('temphumid data.csv', header=None, names=['Date', 'Time', 'Temp', 'Humidity'])
# Check for missing values and handle them
print("Initial data shape:", data.shape)
print("Missing values per column:")
print(data.isnull().sum())
# Handle missing values
data = data.dropna()
# Check if data contains duplicate rows
print("Duplicate rows in the dataset:", data.duplicated().sum())
data = data.drop_duplicates()
# Extract temperature and humidity values
data['Temperature'] = data['Temp'].str.extract(r'T=(\d+\.\d+)').astype(float)
data['Humidity'] = data['Humidity'].str.extract(r'H=(\d+\.\d+)').astype(float)
# Check data types
print("Data types of columns:")
print(data.dtypes)
# Check for outliers in Temperature and Humidity
print("Temperature statistics:")
print(data['Temperature'].describe())
print("Humidity statistics:")
print(data['Humidity'].describe())
Initial data shape: (336, 4) Missing values per column: Date 0 Time 0 Temp 0 Humidity 16 dtype: int64 Duplicate rows in the dataset: 0 Data types of columns: Date object Time object Temp object Humidity float64 Temperature float64 dtype: object Temperature statistics: count 320.000000 mean 21.353125 std 5.047454 min 9.000000 25% 18.000000 50% 20.000000 75% 23.000000 max 37.000000 Name: Temperature, dtype: float64 Humidity statistics: count 320.000000 mean 21.865625 std 7.625486 min 12.000000 25% 20.000000 50% 21.000000 75% 23.250000 max 140.000000 Name: Humidity, dtype: float64
EDA and Data Completion Checks
# Plot histograms of Temperature and Humidity
plt.figure(figsize=(12, 6))
plt.subplot(1, 2, 1)
plt.hist(data['Temperature'], bins=30, edgecolor='k')
plt.title('Temperature Distribution')
plt.xlabel('Temperature')
plt.ylabel('Frequency')
plt.subplot(1, 2, 2)
plt.hist(data['Humidity'], bins=30, edgecolor='k')
plt.title('Humidity Distribution')
plt.xlabel('Humidity')
plt.ylabel('Frequency')
plt.tight_layout()
plt.show()
# Check for data consistency
data['DateTime'] = pd.to_datetime(data['Date'] + ' ' + data['Time'], errors='coerce')
print("Missing DateTime values:", data['DateTime'].isnull().sum())
data = data.dropna(subset=['DateTime'])
data['Year'] = data['DateTime'].dt.year
data['Month'] = data['DateTime'].dt.month
data['Day'] = data['DateTime'].dt.day
data['Hour'] = data['DateTime'].dt.hour
data['Minute'] = data['DateTime'].dt.minute
data = data[['Year', 'Month', 'Day', 'Hour', 'Minute', 'Temperature', 'Humidity']]
# Plot time series of Temperature and Humidity
plt.figure(figsize=(14, 7))
plt.subplot(2, 1, 1)
#plt.plot(data['DateTime'], data['Temperature'], label='Temperature') #The DateTime column does not exist anymore. Replace with a suitable x-axis variable or a range of values.
plt.plot(range(len(data['Temperature'])), data['Temperature'], label='Temperature') # In this case, using the index as x-axis
plt.title('Temperature over Time')
plt.xlabel('Index') # Changed from 'DateTime' to 'Index'
plt.ylabel('Temperature')
plt.legend()
plt.subplot(2, 1, 2)
#plt.plot(data['DateTime'], data['Humidity'], label='Humidity', color='orange') #The DateTime column does not exist anymore. Replace with a suitable x-axis variable or a range of values.
plt.plot(range(len(data['Humidity'])), data['Humidity'], label='Humidity', color='orange') # In this case, using the index as x-axis
plt.title('Humidity over Time')
plt.xlabel('Index') # Changed from 'DateTime' to 'Index'
plt.ylabel('Humidity')
plt.legend()
plt.tight_layout()
plt.show()
Missing DateTime values: 0
Comparison of Different ML Techniques
# Normalize features
scaler = MinMaxScaler()
data[['Temperature', 'Humidity']] = scaler.fit_transform(data[['Temperature', 'Humidity']])
data[['Year', 'Month', 'Day', 'Hour', 'Minute']] = StandardScaler().fit_transform(data[['Year', 'Month', 'Day', 'Hour', 'Minute']])
# Prepare sequences for time series
def create_sequences(data, seq_length):
X, y_temp, y_humid = [], [], []
for i in range(len(data) - seq_length):
seq = data.iloc[i:i + seq_length]
X.append(seq[['Year', 'Month', 'Day', 'Hour', 'Minute', 'Temperature', 'Humidity']].values)
y_temp.append(data.iloc[i + seq_length]['Temperature'])
y_humid.append(data.iloc[i + seq_length]['Humidity'])
return np.array(X), np.array(y_temp), np.array(y_humid)
SEQ_LENGTH = 100
X, y_temp, y_humid = create_sequences(data, SEQ_LENGTH)
X_train, X_test, y_train_temp, y_test_temp, y_train_humid, y_test_humid = train_test_split(X, y_temp, y_humid, test_size=0.2, random_state=42)
# Reshape data for non-sequential models
X_train_reshaped = X_train.reshape(X_train.shape[0], -1)
X_test_reshaped = X_test.reshape(X_test.shape[0], -1)
# Confirm the shape of X_test
print(f"Shape of X_test: {X_test.shape}") # Should output something like (N, 100, 7)
# Define and train the LSTM model for temperature prediction
model_temp = Sequential([
LSTM(50, activation='relu', input_shape=(SEQ_LENGTH, X.shape[2])),
Dense(1)
])
model_temp.compile(optimizer='adam', loss='mse')
history_temp = model_temp.fit(X_train, y_train_temp, epochs=50, validation_split=0.2, verbose=1)
# Define and train the LSTM model for humidity prediction
model_humid = Sequential([
LSTM(50, activation='relu', input_shape=(SEQ_LENGTH, X.shape[2])),
Dense(1)
])
model_humid.compile(optimizer='adam', loss='mse')
history_humid = model_humid.fit(X_train, y_train_humid, epochs=50, validation_split=0.2, verbose=1)
# Additional Models: GRU, BiLSTM, CNN for Sequence Data, Transformer, SVR, XGBoost, ARIMA, ANN, RNN
# GRU Model
model_gru_temp = Sequential([
GRU(50, activation='relu', input_shape=(SEQ_LENGTH, X.shape[2])),
Dense(1)
])
model_gru_temp.compile(optimizer='adam', loss='mse')
history_gru_temp = model_gru_temp.fit(X_train, y_train_temp, epochs=50, validation_split=0.2, verbose=1)
model_gru_humid = Sequential([
GRU(50, activation='relu', input_shape=(SEQ_LENGTH, X.shape[2])),
Dense(1)
])
model_gru_humid.compile(optimizer='adam', loss='mse')
history_gru_humid = model_gru_humid.fit(X_train, y_train_humid, epochs=50, validation_split=0.2, verbose=1)
# Bidirectional LSTM Model
model_bilstm_temp = Sequential([
Bidirectional(LSTM(50, activation='relu'), input_shape=(SEQ_LENGTH, X.shape[2])),
Dense(1)
])
model_bilstm_temp.compile(optimizer='adam', loss='mse')
history_bilstm_temp = model_bilstm_temp.fit(X_train, y_train_temp, epochs=50, validation_split=0.2, verbose=1)
model_bilstm_humid = Sequential([
Bidirectional(LSTM(50, activation='relu'), input_shape=(SEQ_LENGTH, X.shape[2])),
Dense(1)
])
model_bilstm_humid.compile(optimizer='adam', loss='mse')
history_bilstm_humid = model_bilstm_humid.fit(X_train, y_train_humid, epochs=50, validation_split=0.2, verbose=1)
# CNN for Sequence Data
model_cnn_temp = Sequential([
Conv1D(64, kernel_size=2, activation='relu', input_shape=(SEQ_LENGTH, X.shape[2])),
Flatten(),
Dense(1)
])
model_cnn_temp.compile(optimizer='adam', loss='mse')
history_cnn_temp = model_cnn_temp.fit(X_train, y_train_temp, epochs=50, validation_split=0.2, verbose=1)
model_cnn_humid = Sequential([
Conv1D(64, kernel_size=2, activation='relu', input_shape=(SEQ_LENGTH, X.shape[2])),
Flatten(),
Dense(1)
])
model_cnn_humid.compile(optimizer='adam', loss='mse')
history_cnn_humid = model_cnn_humid.fit(X_train, y_train_humid, epochs=50, validation_split=0.2, verbose=1)
# Transformer Model
def transformer_model(input_shape):
inputs = Input(shape=input_shape)
x = Attention()([inputs, inputs])
x = Dense(50, activation='relu')(x)
x = Flatten()(x)
outputs = Dense(1)(x)
model = Model(inputs, outputs)
return model
model_transformer_temp = transformer_model((SEQ_LENGTH, X.shape[2]))
model_transformer_temp.compile(optimizer='adam', loss='mse')
history_transformer_temp = model_transformer_temp.fit(X_train, y_train_temp, epochs=50, validation_split=0.2, verbose=1)
model_transformer_humid = transformer_model((SEQ_LENGTH, X.shape[2]))
model_transformer_humid.compile(optimizer='adam', loss='mse')
history_transformer_humid = model_transformer_humid.fit(X_train, y_train_humid, epochs=50, validation_split=0.2, verbose=1)
# Simple Artificial Neural Network (ANN)
model_ann_temp = Sequential([
Dense(64, activation='relu', input_shape=(X_train_reshaped.shape[1],)),
Dense(32, activation='relu'),
Dense(1)
])
model_ann_temp.compile(optimizer='adam', loss='mse')
history_ann_temp = model_ann_temp.fit(X_train_reshaped, y_train_temp, epochs=50, validation_split=0.2, verbose=1)
model_ann_humid = Sequential([
Dense(64, activation='relu', input_shape=(X_train_reshaped.shape[1],)),
Dense(32, activation='relu'),
Dense(1)
])
model_ann_humid.compile(optimizer='adam', loss='mse')
history_ann_humid = model_ann_humid.fit(X_train_reshaped, y_train_humid, epochs=50, validation_split=0.2, verbose=1)
# Recurrent Neural Network (SimpleRNN)
model_rnn_temp = Sequential([
SimpleRNN(50, activation='relu', input_shape=(SEQ_LENGTH, X.shape[2])),
Dense(1)
])
model_rnn_temp.compile(optimizer='adam', loss='mse')
history_rnn_temp = model_rnn_temp.fit(X_train, y_train_temp, epochs=50, validation_split=0.2, verbose=1)
model_rnn_humid = Sequential([
SimpleRNN(50, activation='relu', input_shape=(SEQ_LENGTH, X.shape[2])),
Dense(1)
])
model_rnn_humid.compile(optimizer='adam', loss='mse')
history_rnn_humid = model_rnn_humid.fit(X_train, y_train_humid, epochs=50, validation_split=0.2, verbose=1)
# Support Vector Regressor (SVR)
svr_temp = SVR(kernel='rbf')
svr_humid = SVR(kernel='rbf')
svr_temp.fit(X_train_reshaped, y_train_temp)
svr_humid.fit(X_train_reshaped, y_train_humid)
y_pred_temp_svr = svr_temp.predict(X_test_reshaped)
y_pred_humid_svr = svr_humid.predict(X_test_reshaped)
# XGBoost Regressor
xgb_temp = XGBRegressor(n_estimators=100, objective='reg:squarederror')
xgb_humid = XGBRegressor(n_estimators=100, objective='reg:squarederror')
xgb_temp.fit(X_train_reshaped, y_train_temp)
xgb_humid.fit(X_train_reshaped, y_train_humid)
y_pred_temp_xgb = xgb_temp.predict(X_test_reshaped)
y_pred_humid_xgb = xgb_humid.predict(X_test_reshaped)
# ARIMA Model (Univariate for Temperature and Humidity)
def train_arima(y_train, y_test):
model_arima = ARIMA(y_train, order=(5, 1, 0))
model_arima_fit = model_arima.fit()
y_pred_arima = model_arima_fit.forecast(steps=len(y_test))
return y_pred_arima
y_pred_temp_arima = train_arima(y_train_temp, y_test_temp)
y_pred_humid_arima = train_arima(y_train_humid, y_test_humid)
# Function to calculate additional metrics
def calculate_metrics(y_true, y_pred):
mse = mean_squared_error(y_true, y_pred)
rmse = np.sqrt(mse)
mae = mean_absolute_error(y_true, y_pred)
r2 = r2_score(y_true, y_pred)
return mse, rmse, mae, r2
# Evaluate and compare model performance
models = {
'LSTM': (y_test_temp, model_temp.predict(X_test), y_test_humid, model_humid.predict(X_test)),
'GRU': (y_test_temp, model_gru_temp.predict(X_test), y_test_humid, model_gru_humid.predict(X_test)),
'Bidirectional LSTM': (y_test_temp, model_bilstm_temp.predict(X_test), y_test_humid, model_bilstm_humid.predict(X_test)),
'CNN': (y_test_temp, model_cnn_temp.predict(X_test), y_test_humid, model_cnn_humid.predict(X_test)),
'Transformer': (y_test_temp, model_transformer_temp.predict(X_test), y_test_humid, model_transformer_humid.predict(X_test)),
'ANN': (y_test_temp, model_ann_temp.predict(X_test_reshaped), y_test_humid, model_ann_humid.predict(X_test_reshaped)),
'RNN': (y_test_temp, model_rnn_temp.predict(X_test), y_test_humid, model_rnn_humid.predict(X_test)),
'SVR': (y_test_temp, y_pred_temp_svr, y_test_humid, y_pred_humid_svr),
'XGBoost': (y_test_temp, y_pred_temp_xgb, y_test_humid, y_pred_humid_xgb),
'ARIMA': (y_test_temp, y_pred_temp_arima, y_test_humid, y_pred_humid_arima)
}
for model_name, (y_test_temp, y_pred_temp, y_test_humid, y_pred_humid) in models.items():
mse_temp, rmse_temp, mae_temp, r2_temp = calculate_metrics(y_test_temp, y_pred_temp)
mse_humid, rmse_humid, mae_humid, r2_humid = calculate_metrics(y_test_humid, y_pred_humid)
print(f"\n--- {model_name} Model Performance ---")
print(f"Temperature MSE: {mse_temp:.4f}, RMSE: {rmse_temp:.4f}, MAE: {mae_temp:.4f}, R2 Score: {r2_temp:.4f}")
print(f"Humidity MSE: {mse_humid:.4f}, RMSE: {rmse_humid:.4f}, MAE: {mae_humid:.4f}, R2 Score: {r2_humid:.4f}")
# Visualization for all models
plt.figure(figsize=(14, 28))
model_names = ['LSTM', 'GRU', 'Bidirectional LSTM', 'CNN', 'Transformer', 'ANN', 'RNN', 'SVR', 'XGBoost', 'ARIMA']
preds_temp = [
model_temp.predict(X_test), model_gru_temp.predict(X_test), model_bilstm_temp.predict(X_test),
model_cnn_temp.predict(X_test), model_transformer_temp.predict(X_test),
model_ann_temp.predict(X_test_reshaped), model_rnn_temp.predict(X_test),
y_pred_temp_svr, y_pred_temp_xgb, y_pred_temp_arima
]
preds_humid = [
model_humid.predict(X_test), model_gru_humid.predict(X_test), model_bilstm_humid.predict(X_test),
model_cnn_humid.predict(X_test), model_transformer_humid.predict(X_test),
model_ann_humid.predict(X_test_reshaped), model_rnn_humid.predict(X_test),
y_pred_humid_svr, y_pred_humid_xgb, y_pred_humid_arima
]
for i, model_name in enumerate(model_names):
plt.subplot(10, 2, 2*i+1)
plt.plot(y_test_temp, label='Actual Temperature')
plt.plot(preds_temp[i], label=f'Predicted Temperature ({model_name})', linestyle=':')
plt.title(f'Temperature Prediction ({model_name})')
plt.xlabel('Sample Index')
plt.ylabel('Temperature (Normalized)')
plt.legend()
plt.subplot(10, 2, 2*i+2)
plt.plot(y_test_humid, label='Actual Humidity')
plt.plot(preds_humid[i], label=f'Predicted Humidity ({model_name})', linestyle=':')
plt.title(f'Humidity Prediction ({model_name})')
plt.xlabel('Sample Index')
plt.ylabel('Humidity (Normalized)')
plt.legend()
plt.tight_layout()
plt.show()
Shape of X_test: (44, 100, 7)
/usr/local/lib/python3.10/dist-packages/keras/src/layers/rnn/rnn.py:204: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead. super().__init__(**kwargs)
Epoch 1/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 2s 110ms/step - loss: 0.2174 - val_loss: 0.1370 Epoch 2/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 42ms/step - loss: 0.1025 - val_loss: 0.0591 Epoch 3/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 54ms/step - loss: 0.0429 - val_loss: 0.0333 Epoch 4/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 67ms/step - loss: 0.0313 - val_loss: 0.0330 Epoch 5/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 66ms/step - loss: 0.0291 - val_loss: 0.0213 Epoch 6/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 71ms/step - loss: 0.0178 - val_loss: 0.0211 Epoch 7/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 79ms/step - loss: 0.0188 - val_loss: 0.0173 Epoch 8/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 68ms/step - loss: 0.0138 - val_loss: 0.0130 Epoch 9/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 74ms/step - loss: 0.0113 - val_loss: 0.0112 Epoch 10/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 43ms/step - loss: 0.0111 - val_loss: 0.0102 Epoch 11/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 43ms/step - loss: 0.0084 - val_loss: 0.0095 Epoch 12/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 45ms/step - loss: 0.0087 - val_loss: 0.0090 Epoch 13/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 53ms/step - loss: 0.0078 - val_loss: 0.0081 Epoch 14/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 44ms/step - loss: 0.0070 - val_loss: 0.0076 Epoch 15/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 42ms/step - loss: 0.0060 - val_loss: 0.0073 Epoch 16/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 43ms/step - loss: 0.0075 - val_loss: 0.0070 Epoch 17/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 48ms/step - loss: 0.0080 - val_loss: 0.0068 Epoch 18/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 42ms/step - loss: 0.0063 - val_loss: 0.0066 Epoch 19/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 42ms/step - loss: 0.0059 - val_loss: 0.0063 Epoch 20/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 43ms/step - loss: 0.0052 - val_loss: 0.0062 Epoch 21/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 44ms/step - loss: 0.0054 - val_loss: 0.0060 Epoch 22/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 42ms/step - loss: 0.0053 - val_loss: 0.0059 Epoch 23/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 41ms/step - loss: 0.0055 - val_loss: 0.0063 Epoch 24/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 41ms/step - loss: 0.0052 - val_loss: 0.0057 Epoch 25/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 45ms/step - loss: 0.0060 - val_loss: 0.0055 Epoch 26/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 70ms/step - loss: 0.0052 - val_loss: 0.0057 Epoch 27/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 73ms/step - loss: 0.0037 - val_loss: 0.0052 Epoch 28/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 70ms/step - loss: 0.0042 - val_loss: 0.0049 Epoch 29/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 72ms/step - loss: 0.0050 - val_loss: 0.0049 Epoch 30/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 73ms/step - loss: 0.0045 - val_loss: 0.0042 Epoch 31/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 111ms/step - loss: 0.0043 - val_loss: 0.0039 Epoch 32/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 84ms/step - loss: 0.0034 - val_loss: 0.0044 Epoch 33/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 102ms/step - loss: 0.0040 - val_loss: 0.0039 Epoch 34/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 45ms/step - loss: 0.0038 - val_loss: 0.0040 Epoch 35/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 41ms/step - loss: 0.0027 - val_loss: 0.0036 Epoch 36/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 58ms/step - loss: 0.0036 - val_loss: 0.0036 Epoch 37/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 44ms/step - loss: 0.0031 - val_loss: 0.0043 Epoch 38/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 45ms/step - loss: 0.0034 - val_loss: 0.0038 Epoch 39/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 51ms/step - loss: 0.0033 - val_loss: 0.0036 Epoch 40/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 51ms/step - loss: 0.0029 - val_loss: 0.0036 Epoch 41/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 43ms/step - loss: 0.0031 - val_loss: 0.0033 Epoch 42/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 58ms/step - loss: 0.0028 - val_loss: 0.0031 Epoch 43/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 84ms/step - loss: 765.4301 - val_loss: 0.0033 Epoch 44/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 78ms/step - loss: 0.0027 - val_loss: 0.0036 Epoch 45/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 43ms/step - loss: 0.0028 - val_loss: 0.0039 Epoch 46/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 57ms/step - loss: 0.0029 - val_loss: 0.0039 Epoch 47/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 46ms/step - loss: 0.0031 - val_loss: 0.0040 Epoch 48/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 44ms/step - loss: 0.0026 - val_loss: 0.0039 Epoch 49/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 44ms/step - loss: 0.0030 - val_loss: 0.0039 Epoch 50/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 47ms/step - loss: 0.0029 - val_loss: 0.0038 Epoch 1/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 7s 565ms/step - loss: 0.0197 - val_loss: 0.0043 Epoch 2/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 77ms/step - loss: 0.0041 - val_loss: 0.0024 Epoch 3/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 97ms/step - loss: 0.0021 - val_loss: 0.0024 Epoch 4/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 44ms/step - loss: 0.0024 - val_loss: 0.0018 Epoch 5/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 50ms/step - loss: 0.0016 - val_loss: 0.0010 Epoch 6/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 42ms/step - loss: 9.2647e-04 - val_loss: 8.7336e-04 Epoch 7/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 49ms/step - loss: 6.9592e-04 - val_loss: 7.5505e-04 Epoch 8/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 44ms/step - loss: 7.5054e-04 - val_loss: 6.2536e-04 Epoch 9/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 60ms/step - loss: 5.5258e-04 - val_loss: 5.7104e-04 Epoch 10/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 46ms/step - loss: 5.1190e-04 - val_loss: 6.7359e-04 Epoch 11/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 67ms/step - loss: 4.1128e-04 - val_loss: 8.4431e-04 Epoch 12/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 82ms/step - loss: 4.7969e-04 - val_loss: 7.3593e-04 Epoch 13/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 45ms/step - loss: 4.2294e-04 - val_loss: 6.6688e-04 Epoch 14/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 79ms/step - loss: 4.2601e-04 - val_loss: 6.6135e-04 Epoch 15/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 43ms/step - loss: 4.1271e-04 - val_loss: 5.9554e-04 Epoch 16/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 43ms/step - loss: 3.3592e-04 - val_loss: 5.8639e-04 Epoch 17/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 64ms/step - loss: 4.9727e-04 - val_loss: 6.6255e-04 Epoch 18/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 43ms/step - loss: 4.0106e-04 - val_loss: 5.9719e-04 Epoch 19/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 45ms/step - loss: 3.7805e-04 - val_loss: 5.8831e-04 Epoch 20/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 51ms/step - loss: 3.7993e-04 - val_loss: 5.6213e-04 Epoch 21/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 55ms/step - loss: 4.0298e-04 - val_loss: 5.8307e-04 Epoch 22/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 52ms/step - loss: 3.9114e-04 - val_loss: 5.9259e-04 Epoch 23/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 54ms/step - loss: 3.6900e-04 - val_loss: 5.6467e-04 Epoch 24/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 48ms/step - loss: 3.8331e-04 - val_loss: 5.7039e-04 Epoch 25/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 52ms/step - loss: 3.2578e-04 - val_loss: 6.4833e-04 Epoch 26/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 43ms/step - loss: 3.4861e-04 - val_loss: 6.0785e-04 Epoch 27/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 44ms/step - loss: 3.5595e-04 - val_loss: 5.6910e-04 Epoch 28/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 48ms/step - loss: 3.1741e-04 - val_loss: 6.5443e-04 Epoch 29/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 71ms/step - loss: 3.7065e-04 - val_loss: 5.9125e-04 Epoch 30/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 44ms/step - loss: 3.4821e-04 - val_loss: 5.4444e-04 Epoch 31/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 56ms/step - loss: 3.4524e-04 - val_loss: 5.1945e-04 Epoch 32/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 98ms/step - loss: 3.8499e-04 - val_loss: 5.8240e-04 Epoch 33/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 76ms/step - loss: 4.0890e-04 - val_loss: 5.6525e-04 Epoch 34/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 71ms/step - loss: 3.8775e-04 - val_loss: 5.5212e-04 Epoch 35/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 88ms/step - loss: 3.1965e-04 - val_loss: 5.8655e-04 Epoch 36/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 89ms/step - loss: 4.1176e-04 - val_loss: 5.5179e-04 Epoch 37/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 55ms/step - loss: 3.5216e-04 - val_loss: 5.4770e-04 Epoch 38/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 48ms/step - loss: 3.1787e-04 - val_loss: 5.5830e-04 Epoch 39/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 48ms/step - loss: 3.7560e-04 - val_loss: 5.9857e-04 Epoch 40/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 44ms/step - loss: 3.8309e-04 - val_loss: 5.7760e-04 Epoch 41/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 58ms/step - loss: 3.5351e-04 - val_loss: 5.1776e-04 Epoch 42/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 58ms/step - loss: 3.2774e-04 - val_loss: 6.2961e-04 Epoch 43/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 43ms/step - loss: 3.5911e-04 - val_loss: 6.0126e-04 Epoch 44/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 67ms/step - loss: 2.8423e-04 - val_loss: 5.3386e-04 Epoch 45/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 44ms/step - loss: 3.6795e-04 - val_loss: 6.2375e-04 Epoch 46/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 48ms/step - loss: 3.7571e-04 - val_loss: 6.1244e-04 Epoch 47/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 54ms/step - loss: 3.0814e-04 - val_loss: 5.3247e-04 Epoch 48/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 44ms/step - loss: 3.6056e-04 - val_loss: 6.0977e-04 Epoch 49/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 58ms/step - loss: 3.0234e-04 - val_loss: 5.9378e-04 Epoch 50/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 90ms/step - loss: 3.3805e-04 - val_loss: 5.5064e-04 Epoch 1/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 4s 210ms/step - loss: 0.2286 - val_loss: 0.1758 Epoch 2/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 66ms/step - loss: 0.1470 - val_loss: 0.1227 Epoch 3/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 90ms/step - loss: 0.1056 - val_loss: 0.0859 Epoch 4/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 110ms/step - loss: 0.0832 - val_loss: 0.0648 Epoch 5/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 133ms/step - loss: 0.0483 - val_loss: 0.0571 Epoch 6/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 127ms/step - loss: 0.0514 - val_loss: 0.0537 Epoch 7/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 135ms/step - loss: 0.0477 - val_loss: 0.0481 Epoch 8/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 140ms/step - loss: 0.0432 - val_loss: 0.0424 Epoch 9/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 105ms/step - loss: 0.0407 - val_loss: 0.0381 Epoch 10/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 92ms/step - loss: 0.0327 - val_loss: 0.0350 Epoch 11/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 63ms/step - loss: 0.0334 - val_loss: 0.0321 Epoch 12/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 60ms/step - loss: 0.0283 - val_loss: 0.0293 Epoch 13/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 59ms/step - loss: 0.0237 - val_loss: 0.0266 Epoch 14/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 60ms/step - loss: 0.0239 - val_loss: 0.0234 Epoch 15/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 58ms/step - loss: 0.0178 - val_loss: 0.0205 Epoch 16/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 58ms/step - loss: 0.0173 - val_loss: 0.0182 Epoch 17/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 61ms/step - loss: 0.0141 - val_loss: 0.0155 Epoch 18/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 58ms/step - loss: 0.0093 - val_loss: 0.0133 Epoch 19/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 57ms/step - loss: 0.0084 - val_loss: 0.0115 Epoch 20/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 57ms/step - loss: 0.0079 - val_loss: 0.0100 Epoch 21/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 58ms/step - loss: 0.0072 - val_loss: 0.0093 Epoch 22/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 56ms/step - loss: 0.0061 - val_loss: 0.0083 Epoch 23/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 57ms/step - loss: 0.0066 - val_loss: 0.0075 Epoch 24/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 56ms/step - loss: 0.0051 - val_loss: 0.0070 Epoch 25/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 61ms/step - loss: 0.0047 - val_loss: 0.0065 Epoch 26/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 65ms/step - loss: 0.0049 - val_loss: 0.0060 Epoch 27/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 55ms/step - loss: 0.0048 - val_loss: 0.0057 Epoch 28/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 63ms/step - loss: 0.0047 - val_loss: 0.0053 Epoch 29/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 63ms/step - loss: 0.0042 - val_loss: 0.0050 Epoch 30/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 58ms/step - loss: 0.0044 - val_loss: 0.0049 Epoch 31/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 63ms/step - loss: 0.0037 - val_loss: 0.0047 Epoch 32/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 60ms/step - loss: 0.0036 - val_loss: 0.0048 Epoch 33/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 64ms/step - loss: 0.0038 - val_loss: 0.0046 Epoch 34/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 61ms/step - loss: 0.0038 - val_loss: 0.0045 Epoch 35/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 87ms/step - loss: 0.0031 - val_loss: 0.0043 Epoch 36/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 91ms/step - loss: 0.0033 - val_loss: 0.0040 Epoch 37/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 85ms/step - loss: 0.0031 - val_loss: 0.0039 Epoch 38/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 89ms/step - loss: 0.0030 - val_loss: 0.0039 Epoch 39/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 88ms/step - loss: 0.0031 - val_loss: 0.0036 Epoch 40/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 89ms/step - loss: 0.0033 - val_loss: 0.0035 Epoch 41/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 70ms/step - loss: 0.0027 - val_loss: 0.0034 Epoch 42/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 57ms/step - loss: 0.0029 - val_loss: 0.0035 Epoch 43/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 57ms/step - loss: 0.0028 - val_loss: 0.0036 Epoch 44/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 60ms/step - loss: 0.0029 - val_loss: 0.0035 Epoch 45/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 61ms/step - loss: 0.0030 - val_loss: 0.0034 Epoch 46/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 61ms/step - loss: 0.0029 - val_loss: 0.0034 Epoch 47/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 58ms/step - loss: 0.0025 - val_loss: 0.0032 Epoch 48/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 62ms/step - loss: 0.0024 - val_loss: 0.0031 Epoch 49/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 56ms/step - loss: 0.0023 - val_loss: 0.0034 Epoch 50/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 58ms/step - loss: 0.0031 - val_loss: 0.0032 Epoch 1/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 3s 129ms/step - loss: 0.0097 - val_loss: 0.0023 Epoch 2/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 59ms/step - loss: 0.0019 - val_loss: 0.0012 Epoch 3/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 65ms/step - loss: 0.0011 - val_loss: 0.0012 Epoch 4/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 56ms/step - loss: 0.0012 - val_loss: 7.3132e-04 Epoch 5/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 62ms/step - loss: 8.9586e-04 - val_loss: 5.5832e-04 Epoch 6/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 55ms/step - loss: 6.3542e-04 - val_loss: 3.3891e-04 Epoch 7/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 58ms/step - loss: 6.7030e-04 - val_loss: 3.7915e-04 Epoch 8/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 60ms/step - loss: 5.3575e-04 - val_loss: 4.6083e-04 Epoch 9/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 59ms/step - loss: 4.7418e-04 - val_loss: 5.1554e-04 Epoch 10/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 58ms/step - loss: 4.0566e-04 - val_loss: 4.6008e-04 Epoch 11/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 62ms/step - loss: 4.0425e-04 - val_loss: 5.0065e-04 Epoch 12/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 85ms/step - loss: 4.5933e-04 - val_loss: 5.3334e-04 Epoch 13/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 80ms/step - loss: 3.7626e-04 - val_loss: 4.8068e-04 Epoch 14/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 102ms/step - loss: 3.7827e-04 - val_loss: 5.3000e-04 Epoch 15/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 92ms/step - loss: 3.6887e-04 - val_loss: 5.3902e-04 Epoch 16/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 86ms/step - loss: 4.2376e-04 - val_loss: 4.8741e-04 Epoch 17/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 83ms/step - loss: 4.0194e-04 - val_loss: 5.2577e-04 Epoch 18/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 57ms/step - loss: 3.6639e-04 - val_loss: 5.1680e-04 Epoch 19/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 55ms/step - loss: 3.3778e-04 - val_loss: 5.2618e-04 Epoch 20/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 64ms/step - loss: 3.7698e-04 - val_loss: 5.0672e-04 Epoch 21/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 62ms/step - loss: 3.6510e-04 - val_loss: 6.3779e-04 Epoch 22/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 56ms/step - loss: 3.9091e-04 - val_loss: 4.8827e-04 Epoch 23/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 63ms/step - loss: 4.0840e-04 - val_loss: 6.0910e-04 Epoch 24/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 57ms/step - loss: 2.9982e-04 - val_loss: 5.3923e-04 Epoch 25/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 56ms/step - loss: 3.8770e-04 - val_loss: 5.3016e-04 Epoch 26/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 63ms/step - loss: 2.9571e-04 - val_loss: 6.1871e-04 Epoch 27/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 59ms/step - loss: 2.6946e-04 - val_loss: 5.3642e-04 Epoch 28/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 62ms/step - loss: 3.3434e-04 - val_loss: 5.8954e-04 Epoch 29/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 61ms/step - loss: 3.4915e-04 - val_loss: 5.6770e-04 Epoch 30/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 58ms/step - loss: 3.2833e-04 - val_loss: 5.9943e-04 Epoch 31/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 62ms/step - loss: 3.2903e-04 - val_loss: 5.1574e-04 Epoch 32/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 64ms/step - loss: 3.8013e-04 - val_loss: 5.6834e-04 Epoch 33/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 65ms/step - loss: 3.4723e-04 - val_loss: 5.1962e-04 Epoch 34/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 58ms/step - loss: 3.0699e-04 - val_loss: 6.8539e-04 Epoch 35/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 67ms/step - loss: 3.5827e-04 - val_loss: 4.9922e-04 Epoch 36/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 57ms/step - loss: 3.4312e-04 - val_loss: 6.5161e-04 Epoch 37/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 63ms/step - loss: 3.5067e-04 - val_loss: 5.2721e-04 Epoch 38/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 61ms/step - loss: 3.7089e-04 - val_loss: 6.0619e-04 Epoch 39/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 62ms/step - loss: 3.3841e-04 - val_loss: 6.7682e-04 Epoch 40/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 60ms/step - loss: 3.2378e-04 - val_loss: 6.1151e-04 Epoch 41/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 58ms/step - loss: 3.6945e-04 - val_loss: 5.9251e-04 Epoch 42/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 62ms/step - loss: 2.7138e-04 - val_loss: 6.3632e-04 Epoch 43/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 91ms/step - loss: 2.5070e-04 - val_loss: 6.8907e-04 Epoch 44/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 86ms/step - loss: 2.7608e-04 - val_loss: 6.1547e-04 Epoch 45/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 77ms/step - loss: 3.2581e-04 - val_loss: 5.8252e-04 Epoch 46/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 85ms/step - loss: 2.6949e-04 - val_loss: 6.5230e-04 Epoch 47/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 90ms/step - loss: 3.1181e-04 - val_loss: 5.7784e-04 Epoch 48/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 92ms/step - loss: 2.8253e-04 - val_loss: 6.0751e-04 Epoch 49/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 94ms/step - loss: 3.4354e-04 - val_loss: 6.5129e-04 Epoch 50/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 60ms/step - loss: 3.0260e-04 - val_loss: 5.8269e-04 Epoch 1/50
/usr/local/lib/python3.10/dist-packages/keras/src/layers/rnn/bidirectional.py:107: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead. super().__init__(**kwargs)
5/5 ━━━━━━━━━━━━━━━━━━━━ 4s 164ms/step - loss: 0.1780 - val_loss: 0.0589 Epoch 2/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 64ms/step - loss: 0.0375 - val_loss: 0.0134 Epoch 3/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 75ms/step - loss: 0.0167 - val_loss: 0.0252 Epoch 4/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 63ms/step - loss: 0.0174 - val_loss: 0.0080 Epoch 5/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 66ms/step - loss: 0.0075 - val_loss: 0.0074 Epoch 6/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 64ms/step - loss: 0.0067 - val_loss: 0.0088 Epoch 7/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 68ms/step - loss: 0.0074 - val_loss: 0.0065 Epoch 8/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 68ms/step - loss: 0.0050 - val_loss: 0.0054 Epoch 9/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 65ms/step - loss: 0.0046 - val_loss: 0.0059 Epoch 10/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 74ms/step - loss: 0.0041 - val_loss: 0.0054 Epoch 11/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 67ms/step - loss: 0.0041 - val_loss: 0.0049 Epoch 12/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 120ms/step - loss: 0.0033 - val_loss: 0.0049 Epoch 13/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 113ms/step - loss: 0.0034 - val_loss: 0.0047 Epoch 14/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 118ms/step - loss: 0.0031 - val_loss: 0.0045 Epoch 15/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 112ms/step - loss: 0.0025 - val_loss: 0.0046 Epoch 16/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 117ms/step - loss: 0.0028 - val_loss: 0.0044 Epoch 17/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 122ms/step - loss: 0.0021 - val_loss: 0.0043 Epoch 18/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 122ms/step - loss: 0.0031 - val_loss: 0.0042 Epoch 19/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 77ms/step - loss: 0.0027 - val_loss: 0.0040 Epoch 20/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 103ms/step - loss: 0.0028 - val_loss: 0.0040 Epoch 21/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 75ms/step - loss: 0.0029 - val_loss: 0.0040 Epoch 22/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 65ms/step - loss: 0.0023 - val_loss: 0.0038 Epoch 23/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 69ms/step - loss: 0.0025 - val_loss: 0.0037 Epoch 24/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 65ms/step - loss: 0.0025 - val_loss: 0.0037 Epoch 25/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 69ms/step - loss: 0.0023 - val_loss: 0.0036 Epoch 26/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 65ms/step - loss: 0.0026 - val_loss: 0.0036 Epoch 27/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 73ms/step - loss: 0.0026 - val_loss: 0.0035 Epoch 28/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 68ms/step - loss: 0.0021 - val_loss: 0.0035 Epoch 29/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 68ms/step - loss: 0.0025 - val_loss: 0.0034 Epoch 30/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 69ms/step - loss: 0.0026 - val_loss: 0.0034 Epoch 31/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 71ms/step - loss: 0.0020 - val_loss: 0.0034 Epoch 32/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 75ms/step - loss: 0.0022 - val_loss: 0.0034 Epoch 33/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 64ms/step - loss: 0.0021 - val_loss: 0.0034 Epoch 34/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 69ms/step - loss: 0.0022 - val_loss: 0.0033 Epoch 35/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 65ms/step - loss: 0.0025 - val_loss: 0.0033 Epoch 36/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 76ms/step - loss: 0.0021 - val_loss: 0.0033 Epoch 37/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 66ms/step - loss: 0.0021 - val_loss: 0.0032 Epoch 38/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 69ms/step - loss: 0.0023 - val_loss: 0.0032 Epoch 39/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 66ms/step - loss: 0.0026 - val_loss: 0.0032 Epoch 40/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 112ms/step - loss: 0.0018 - val_loss: 0.0031 Epoch 41/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 115ms/step - loss: 0.0022 - val_loss: 0.0031 Epoch 42/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 108ms/step - loss: 0.0025 - val_loss: 0.0032 Epoch 43/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 124ms/step - loss: 0.0024 - val_loss: 0.0030 Epoch 44/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 63ms/step - loss: 0.0026 - val_loss: 0.0031 Epoch 45/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 74ms/step - loss: 0.0023 - val_loss: 0.0031 Epoch 46/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 67ms/step - loss: 0.0021 - val_loss: 0.0030 Epoch 47/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 69ms/step - loss: 0.0022 - val_loss: 0.0030 Epoch 48/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 68ms/step - loss: 0.0024 - val_loss: 0.0030 Epoch 49/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 71ms/step - loss: 0.0020 - val_loss: 0.0030 Epoch 50/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 64ms/step - loss: 0.0024 - val_loss: 0.0031 Epoch 1/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 4s 165ms/step - loss: 0.0048 - val_loss: 0.0023 Epoch 2/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 73ms/step - loss: 0.0015 - val_loss: 0.0020 Epoch 3/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 65ms/step - loss: 0.0018 - val_loss: 9.1858e-04 Epoch 4/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 65ms/step - loss: 9.7813e-04 - val_loss: 8.5242e-04 Epoch 5/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 79ms/step - loss: 7.2915e-04 - val_loss: 6.7254e-04 Epoch 6/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 119ms/step - loss: 5.8373e-04 - val_loss: 5.9286e-04 Epoch 7/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 112ms/step - loss: 4.9948e-04 - val_loss: 5.7230e-04 Epoch 8/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 125ms/step - loss: 4.5703e-04 - val_loss: 4.5626e-04 Epoch 9/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 97ms/step - loss: 4.6776e-04 - val_loss: 4.5321e-04 Epoch 10/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 66ms/step - loss: 4.5662e-04 - val_loss: 4.0127e-04 Epoch 11/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 65ms/step - loss: 3.0844e-04 - val_loss: 4.0113e-04 Epoch 12/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 68ms/step - loss: 3.0008e-04 - val_loss: 4.3697e-04 Epoch 13/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 72ms/step - loss: 3.4973e-04 - val_loss: 3.7079e-04 Epoch 14/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 66ms/step - loss: 2.8340e-04 - val_loss: 3.8951e-04 Epoch 15/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 70ms/step - loss: 3.2325e-04 - val_loss: 3.8321e-04 Epoch 16/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 65ms/step - loss: 2.9186e-04 - val_loss: 3.5295e-04 Epoch 17/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 72ms/step - loss: 3.6499e-04 - val_loss: 3.6518e-04 Epoch 18/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 67ms/step - loss: 3.0057e-04 - val_loss: 3.3455e-04 Epoch 19/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 74ms/step - loss: 4.1357e-04 - val_loss: 3.3867e-04 Epoch 20/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 64ms/step - loss: 2.9882e-04 - val_loss: 3.4634e-04 Epoch 21/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 69ms/step - loss: 3.7627e-04 - val_loss: 3.3256e-04 Epoch 22/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 69ms/step - loss: 2.5843e-04 - val_loss: 3.5680e-04 Epoch 23/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 68ms/step - loss: 3.3933e-04 - val_loss: 3.5353e-04 Epoch 24/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 71ms/step - loss: 3.3093e-04 - val_loss: 3.5145e-04 Epoch 25/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 70ms/step - loss: 3.6856e-04 - val_loss: 3.6696e-04 Epoch 26/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 70ms/step - loss: 2.8626e-04 - val_loss: 3.6314e-04 Epoch 27/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 67ms/step - loss: 3.1330e-04 - val_loss: 3.8745e-04 Epoch 28/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 67ms/step - loss: 2.7339e-04 - val_loss: 3.3101e-04 Epoch 29/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 67ms/step - loss: 3.4059e-04 - val_loss: 3.6986e-04 Epoch 30/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 116ms/step - loss: 3.1532e-04 - val_loss: 3.0549e-04 Epoch 31/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 110ms/step - loss: 3.1673e-04 - val_loss: 3.2916e-04 Epoch 32/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 118ms/step - loss: 3.3019e-04 - val_loss: 3.1366e-04 Epoch 33/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 122ms/step - loss: 2.6236e-04 - val_loss: 3.4538e-04 Epoch 34/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 118ms/step - loss: 3.2517e-04 - val_loss: 3.1015e-04 Epoch 35/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 101ms/step - loss: 2.8608e-04 - val_loss: 3.9888e-04 Epoch 36/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 67ms/step - loss: 3.0139e-04 - val_loss: 3.1340e-04 Epoch 37/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 70ms/step - loss: 3.4539e-04 - val_loss: 3.2356e-04 Epoch 38/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 66ms/step - loss: 2.5443e-04 - val_loss: 3.6846e-04 Epoch 39/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 72ms/step - loss: 2.9539e-04 - val_loss: 3.4100e-04 Epoch 40/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 66ms/step - loss: 2.8048e-04 - val_loss: 3.4515e-04 Epoch 41/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 70ms/step - loss: 2.5742e-04 - val_loss: 3.2702e-04 Epoch 42/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 65ms/step - loss: 3.1594e-04 - val_loss: 3.4229e-04 Epoch 43/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 67ms/step - loss: 2.7937e-04 - val_loss: 3.8594e-04 Epoch 44/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 73ms/step - loss: 2.9196e-04 - val_loss: 3.4086e-04 Epoch 45/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 65ms/step - loss: 3.2898e-04 - val_loss: 4.2202e-04 Epoch 46/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 69ms/step - loss: 2.8839e-04 - val_loss: 3.2520e-04 Epoch 47/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 70ms/step - loss: 2.4450e-04 - val_loss: 4.2458e-04 Epoch 48/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 71ms/step - loss: 3.3956e-04 - val_loss: 3.3164e-04 Epoch 49/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 70ms/step - loss: 2.9027e-04 - val_loss: 4.0235e-04 Epoch 50/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 72ms/step - loss: 2.4188e-04 - val_loss: 3.4590e-04 Epoch 1/50
/usr/local/lib/python3.10/dist-packages/keras/src/layers/convolutional/base_conv.py:107: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead. super().__init__(activity_regularizer=activity_regularizer, **kwargs)
5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 48ms/step - loss: 0.2270 - val_loss: 0.0926 Epoch 2/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 0.0767 - val_loss: 0.0769 Epoch 3/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 0.0526 - val_loss: 0.0450 Epoch 4/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - loss: 0.0278 - val_loss: 0.0423 Epoch 5/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - loss: 0.0307 - val_loss: 0.0207 Epoch 6/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 0.0130 - val_loss: 0.0164 Epoch 7/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 0.0117 - val_loss: 0.0112 Epoch 8/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 0.0079 - val_loss: 0.0110 Epoch 9/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 0.0061 - val_loss: 0.0089 Epoch 10/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 0.0044 - val_loss: 0.0057 Epoch 11/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 0.0040 - val_loss: 0.0063 Epoch 12/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 0.0033 - val_loss: 0.0072 Epoch 13/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 0.0035 - val_loss: 0.0064 Epoch 14/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 22ms/step - loss: 0.0037 - val_loss: 0.0066 Epoch 15/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 18ms/step - loss: 0.0031 - val_loss: 0.0058 Epoch 16/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - loss: 0.0028 - val_loss: 0.0049 Epoch 17/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 18ms/step - loss: 0.0025 - val_loss: 0.0050 Epoch 18/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 0.0023 - val_loss: 0.0046 Epoch 19/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 21ms/step - loss: 0.0019 - val_loss: 0.0046 Epoch 20/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - loss: 0.0017 - val_loss: 0.0043 Epoch 21/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 22ms/step - loss: 0.0018 - val_loss: 0.0043 Epoch 22/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - loss: 0.0017 - val_loss: 0.0045 Epoch 23/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 0.0018 - val_loss: 0.0040 Epoch 24/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - loss: 0.0018 - val_loss: 0.0051 Epoch 25/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 0.0026 - val_loss: 0.0055 Epoch 26/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - loss: 0.0023 - val_loss: 0.0046 Epoch 27/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - loss: 0.0016 - val_loss: 0.0053 Epoch 28/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 23ms/step - loss: 0.0020 - val_loss: 0.0056 Epoch 29/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - loss: 0.0027 - val_loss: 0.0051 Epoch 30/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 18ms/step - loss: 0.0019 - val_loss: 0.0052 Epoch 31/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 0.0021 - val_loss: 0.0039 Epoch 32/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - loss: 0.0013 - val_loss: 0.0047 Epoch 33/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - loss: 0.0011 - val_loss: 0.0038 Epoch 34/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - loss: 0.0012 - val_loss: 0.0038 Epoch 35/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - loss: 8.3365e-04 - val_loss: 0.0043 Epoch 36/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 8.4295e-04 - val_loss: 0.0039 Epoch 37/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 7.5557e-04 - val_loss: 0.0039 Epoch 38/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 8.8004e-04 - val_loss: 0.0042 Epoch 39/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 9.2670e-04 - val_loss: 0.0043 Epoch 40/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 7.2197e-04 - val_loss: 0.0039 Epoch 41/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 7.0027e-04 - val_loss: 0.0040 Epoch 42/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 7.8434e-04 - val_loss: 0.0043 Epoch 43/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 7.5543e-04 - val_loss: 0.0041 Epoch 44/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 5.4302e-04 - val_loss: 0.0044 Epoch 45/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 4.9424e-04 - val_loss: 0.0043 Epoch 46/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - loss: 6.0492e-04 - val_loss: 0.0043 Epoch 47/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 5.3862e-04 - val_loss: 0.0041 Epoch 48/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 5.5602e-04 - val_loss: 0.0042 Epoch 49/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 4.1688e-04 - val_loss: 0.0040 Epoch 50/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 4.3712e-04 - val_loss: 0.0044 Epoch 1/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 43ms/step - loss: 0.1017 - val_loss: 0.0738 Epoch 2/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 0.0631 - val_loss: 0.0734 Epoch 3/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 0.0481 - val_loss: 0.0239 Epoch 4/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - loss: 0.0170 - val_loss: 0.0187 Epoch 5/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 0.0106 - val_loss: 0.0125 Epoch 6/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 0.0115 - val_loss: 0.0084 Epoch 7/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 0.0058 - val_loss: 0.0142 Epoch 8/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 0.0075 - val_loss: 0.0047 Epoch 9/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 0.0034 - val_loss: 0.0058 Epoch 10/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 0.0028 - val_loss: 0.0045 Epoch 11/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 0.0023 - val_loss: 0.0045 Epoch 12/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 21ms/step - loss: 0.0016 - val_loss: 0.0042 Epoch 13/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 0.0013 - val_loss: 0.0040 Epoch 14/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - loss: 0.0014 - val_loss: 0.0042 Epoch 15/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 0.0013 - val_loss: 0.0033 Epoch 16/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 9.2146e-04 - val_loss: 0.0035 Epoch 17/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 7.9072e-04 - val_loss: 0.0036 Epoch 18/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 6.8407e-04 - val_loss: 0.0034 Epoch 19/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 6.0997e-04 - val_loss: 0.0035 Epoch 20/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 5.3490e-04 - val_loss: 0.0036 Epoch 21/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 5.0427e-04 - val_loss: 0.0033 Epoch 22/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 4.9029e-04 - val_loss: 0.0032 Epoch 23/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 4.7309e-04 - val_loss: 0.0034 Epoch 24/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 4.1752e-04 - val_loss: 0.0033 Epoch 25/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 3.4328e-04 - val_loss: 0.0036 Epoch 26/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 3.8962e-04 - val_loss: 0.0032 Epoch 27/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 3.2574e-04 - val_loss: 0.0032 Epoch 28/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 3.6312e-04 - val_loss: 0.0032 Epoch 29/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 3.0985e-04 - val_loss: 0.0039 Epoch 30/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 3.6688e-04 - val_loss: 0.0032 Epoch 31/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 3.0324e-04 - val_loss: 0.0032 Epoch 32/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 2.3007e-04 - val_loss: 0.0035 Epoch 33/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 2.5933e-04 - val_loss: 0.0031 Epoch 34/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 2.5943e-04 - val_loss: 0.0031 Epoch 35/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 2.8332e-04 - val_loss: 0.0035 Epoch 36/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 2.6120e-04 - val_loss: 0.0034 Epoch 37/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 2.5375e-04 - val_loss: 0.0032 Epoch 38/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 2.2615e-04 - val_loss: 0.0031 Epoch 39/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 1.8712e-04 - val_loss: 0.0033 Epoch 40/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 1.6540e-04 - val_loss: 0.0030 Epoch 41/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 2.1310e-04 - val_loss: 0.0034 Epoch 42/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 1.4861e-04 - val_loss: 0.0032 Epoch 43/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 1.1967e-04 - val_loss: 0.0030 Epoch 44/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - loss: 1.3759e-04 - val_loss: 0.0031 Epoch 45/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - loss: 1.2204e-04 - val_loss: 0.0033 Epoch 46/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - loss: 1.2269e-04 - val_loss: 0.0033 Epoch 47/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - loss: 1.7761e-04 - val_loss: 0.0032 Epoch 48/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 1.5512e-04 - val_loss: 0.0031 Epoch 49/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 1.8741e-04 - val_loss: 0.0030 Epoch 50/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 2.9340e-04 - val_loss: 0.0030 Epoch 1/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 52ms/step - loss: 0.2171 - val_loss: 0.0249 Epoch 2/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0419 - val_loss: 0.0309 Epoch 3/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0454 - val_loss: 0.0177 Epoch 4/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 0.0220 - val_loss: 0.0219 Epoch 5/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0173 - val_loss: 0.0261 Epoch 6/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 0.0181 - val_loss: 0.0183 Epoch 7/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0135 - val_loss: 0.0128 Epoch 8/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - loss: 0.0121 - val_loss: 0.0064 Epoch 9/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 0.0064 - val_loss: 0.0048 Epoch 10/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0053 - val_loss: 0.0053 Epoch 11/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - loss: 0.0042 - val_loss: 0.0055 Epoch 12/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - loss: 0.0039 - val_loss: 0.0054 Epoch 13/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 21ms/step - loss: 0.0040 - val_loss: 0.0047 Epoch 14/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 22ms/step - loss: 0.0026 - val_loss: 0.0046 Epoch 15/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - loss: 0.0031 - val_loss: 0.0045 Epoch 16/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 22ms/step - loss: 0.0027 - val_loss: 0.0047 Epoch 17/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - loss: 0.0031 - val_loss: 0.0044 Epoch 18/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 32ms/step - loss: 0.0025 - val_loss: 0.0041 Epoch 19/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 22ms/step - loss: 0.0023 - val_loss: 0.0038 Epoch 20/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - loss: 0.0022 - val_loss: 0.0038 Epoch 21/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 21ms/step - loss: 0.0023 - val_loss: 0.0041 Epoch 22/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 21ms/step - loss: 0.0021 - val_loss: 0.0040 Epoch 23/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 21ms/step - loss: 0.0024 - val_loss: 0.0037 Epoch 24/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 24ms/step - loss: 0.0022 - val_loss: 0.0037 Epoch 25/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 22ms/step - loss: 0.0021 - val_loss: 0.0037 Epoch 26/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 21ms/step - loss: 0.0017 - val_loss: 0.0041 Epoch 27/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - loss: 0.0020 - val_loss: 0.0035 Epoch 28/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 0.0022 - val_loss: 0.0036 Epoch 29/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 0.0020 - val_loss: 0.0038 Epoch 30/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0017 - val_loss: 0.0038 Epoch 31/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0018 - val_loss: 0.0035 Epoch 32/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0019 - val_loss: 0.0034 Epoch 33/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0018 - val_loss: 0.0033 Epoch 34/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 0.0016 - val_loss: 0.0034 Epoch 35/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 0.0016 - val_loss: 0.0034 Epoch 36/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0013 - val_loss: 0.0032 Epoch 37/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - loss: 0.0017 - val_loss: 0.0036 Epoch 38/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0015 - val_loss: 0.0032 Epoch 39/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0016 - val_loss: 0.0037 Epoch 40/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0016 - val_loss: 0.0035 Epoch 41/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0015 - val_loss: 0.0033 Epoch 42/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 0.0015 - val_loss: 0.0033 Epoch 43/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 0.0014 - val_loss: 0.0038 Epoch 44/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - loss: 0.0017 - val_loss: 0.0034 Epoch 45/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0015 - val_loss: 0.0032 Epoch 46/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0014 - val_loss: 0.0037 Epoch 47/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 0.0014 - val_loss: 0.0033 Epoch 48/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0015 - val_loss: 0.0032 Epoch 49/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 0.0012 - val_loss: 0.0032 Epoch 50/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0012 - val_loss: 0.0033 Epoch 1/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 48ms/step - loss: 0.0444 - val_loss: 0.0212 Epoch 2/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - loss: 0.0220 - val_loss: 0.0132 Epoch 3/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - loss: 0.0151 - val_loss: 0.0127 Epoch 4/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0091 - val_loss: 0.0070 Epoch 5/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0058 - val_loss: 0.0062 Epoch 6/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0047 - val_loss: 0.0057 Epoch 7/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - loss: 0.0038 - val_loss: 0.0040 Epoch 8/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 0.0039 - val_loss: 0.0033 Epoch 9/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0023 - val_loss: 0.0043 Epoch 10/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - loss: 0.0027 - val_loss: 0.0018 Epoch 11/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 18ms/step - loss: 0.0015 - val_loss: 0.0027 Epoch 12/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 0.0014 - val_loss: 0.0021 Epoch 13/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0013 - val_loss: 0.0047 Epoch 14/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0019 - val_loss: 0.0022 Epoch 15/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0011 - val_loss: 0.0027 Epoch 16/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 0.0011 - val_loss: 0.0030 Epoch 17/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 8.9862e-04 - val_loss: 0.0034 Epoch 18/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 9.9630e-04 - val_loss: 0.0020 Epoch 19/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 18ms/step - loss: 7.6646e-04 - val_loss: 0.0021 Epoch 20/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - loss: 7.0278e-04 - val_loss: 0.0023 Epoch 21/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 6.4480e-04 - val_loss: 0.0023 Epoch 22/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 5.9669e-04 - val_loss: 0.0027 Epoch 23/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 5.7335e-04 - val_loss: 0.0027 Epoch 24/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 6.3140e-04 - val_loss: 0.0023 Epoch 25/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 5.3928e-04 - val_loss: 0.0018 Epoch 26/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 5.5678e-04 - val_loss: 0.0020 Epoch 27/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - loss: 4.4080e-04 - val_loss: 0.0022 Epoch 28/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 5.5211e-04 - val_loss: 0.0021 Epoch 29/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 8.7456e-04 - val_loss: 0.0022 Epoch 30/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 7.8867e-04 - val_loss: 0.0020 Epoch 31/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - loss: 0.0011 - val_loss: 0.0031 Epoch 32/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - loss: 0.0014 - val_loss: 0.0036 Epoch 33/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 0.0011 - val_loss: 0.0032 Epoch 34/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - loss: 0.0021 - val_loss: 0.0034 Epoch 35/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 0.0032 - val_loss: 0.0028 Epoch 36/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - loss: 0.0026 - val_loss: 0.0041 Epoch 37/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - loss: 0.0027 - val_loss: 0.0038 Epoch 38/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - loss: 0.0025 - val_loss: 0.0057 Epoch 39/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - loss: 0.0022 - val_loss: 0.0043 Epoch 40/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - loss: 0.0017 - val_loss: 0.0022 Epoch 41/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - loss: 0.0011 - val_loss: 0.0025 Epoch 42/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - loss: 0.0014 - val_loss: 0.0030 Epoch 43/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - loss: 9.1209e-04 - val_loss: 0.0032 Epoch 44/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - loss: 6.8688e-04 - val_loss: 0.0041 Epoch 45/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 6.7994e-04 - val_loss: 0.0032 Epoch 46/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 6.7307e-04 - val_loss: 0.0024 Epoch 47/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 3.7984e-04 - val_loss: 0.0026 Epoch 48/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 2.9605e-04 - val_loss: 0.0025 Epoch 49/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 2.8811e-04 - val_loss: 0.0030 Epoch 50/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 4.8015e-04 - val_loss: 0.0026 Epoch 1/50
/usr/local/lib/python3.10/dist-packages/keras/src/layers/core/dense.py:87: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead. super().__init__(activity_regularizer=activity_regularizer, **kwargs)
5/5 ━━━━━━━━━━━━━━━━━━━━ 2s 61ms/step - loss: 0.6610 - val_loss: 0.1794 Epoch 2/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - loss: 0.1797 - val_loss: 0.0532 Epoch 3/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - loss: 0.0746 - val_loss: 0.0623 Epoch 4/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 0.0554 - val_loss: 0.0490 Epoch 5/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 0.0334 - val_loss: 0.0272 Epoch 6/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - loss: 0.0175 - val_loss: 0.0276 Epoch 7/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 0.0149 - val_loss: 0.0353 Epoch 8/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - loss: 0.0121 - val_loss: 0.0303 Epoch 9/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - loss: 0.0077 - val_loss: 0.0225 Epoch 10/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 21ms/step - loss: 0.0063 - val_loss: 0.0225 Epoch 11/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 0.0043 - val_loss: 0.0217 Epoch 12/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - loss: 0.0037 - val_loss: 0.0207 Epoch 13/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 23ms/step - loss: 0.0039 - val_loss: 0.0212 Epoch 14/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 0.0029 - val_loss: 0.0216 Epoch 15/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 0.0027 - val_loss: 0.0214 Epoch 16/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 0.0021 - val_loss: 0.0211 Epoch 17/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 0.0017 - val_loss: 0.0209 Epoch 18/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 0.0015 - val_loss: 0.0204 Epoch 19/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 0.0015 - val_loss: 0.0200 Epoch 20/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 0.0014 - val_loss: 0.0199 Epoch 21/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - loss: 0.0010 - val_loss: 0.0198 Epoch 22/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 0.0011 - val_loss: 0.0203 Epoch 23/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 0.0012 - val_loss: 0.0204 Epoch 24/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 0.0011 - val_loss: 0.0201 Epoch 25/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 9.0186e-04 - val_loss: 0.0202 Epoch 26/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 8.3115e-04 - val_loss: 0.0204 Epoch 27/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 9.8379e-04 - val_loss: 0.0200 Epoch 28/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 7.7710e-04 - val_loss: 0.0198 Epoch 29/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 5.7296e-04 - val_loss: 0.0198 Epoch 30/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - loss: 5.9020e-04 - val_loss: 0.0198 Epoch 31/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 7.3897e-04 - val_loss: 0.0198 Epoch 32/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 5.1103e-04 - val_loss: 0.0196 Epoch 33/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 5.4716e-04 - val_loss: 0.0197 Epoch 34/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 4.4596e-04 - val_loss: 0.0197 Epoch 35/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 4.2973e-04 - val_loss: 0.0197 Epoch 36/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 4.4015e-04 - val_loss: 0.0197 Epoch 37/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 5.2950e-04 - val_loss: 0.0195 Epoch 38/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 5.0071e-04 - val_loss: 0.0198 Epoch 39/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 4.8294e-04 - val_loss: 0.0198 Epoch 40/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 4.0737e-04 - val_loss: 0.0197 Epoch 41/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 3.7901e-04 - val_loss: 0.0199 Epoch 42/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 4.0296e-04 - val_loss: 0.0200 Epoch 43/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 3.3956e-04 - val_loss: 0.0199 Epoch 44/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 2.4681e-04 - val_loss: 0.0197 Epoch 45/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 2.7650e-04 - val_loss: 0.0195 Epoch 46/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 2.2959e-04 - val_loss: 0.0198 Epoch 47/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 2.4933e-04 - val_loss: 0.0199 Epoch 48/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 2.5094e-04 - val_loss: 0.0199 Epoch 49/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 2.1004e-04 - val_loss: 0.0201 Epoch 50/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - loss: 2.0434e-04 - val_loss: 0.0199 Epoch 1/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 42ms/step - loss: 0.1475 - val_loss: 0.0312 Epoch 2/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 0.0588 - val_loss: 0.0221 Epoch 3/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 0.0299 - val_loss: 0.0287 Epoch 4/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 0.0224 - val_loss: 0.0128 Epoch 5/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 0.0124 - val_loss: 0.0081 Epoch 6/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 0.0114 - val_loss: 0.0061 Epoch 7/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 0.0048 - val_loss: 0.0072 Epoch 8/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 0.0043 - val_loss: 0.0064 Epoch 9/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - loss: 0.0026 - val_loss: 0.0054 Epoch 10/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - loss: 0.0018 - val_loss: 0.0053 Epoch 11/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 0.0014 - val_loss: 0.0052 Epoch 12/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 0.0011 - val_loss: 0.0047 Epoch 13/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 8.5041e-04 - val_loss: 0.0052 Epoch 14/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 6.9990e-04 - val_loss: 0.0054 Epoch 15/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 5.4019e-04 - val_loss: 0.0048 Epoch 16/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 5.0801e-04 - val_loss: 0.0050 Epoch 17/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 3.5608e-04 - val_loss: 0.0051 Epoch 18/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 2.8790e-04 - val_loss: 0.0050 Epoch 19/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 2.5623e-04 - val_loss: 0.0048 Epoch 20/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - loss: 2.4832e-04 - val_loss: 0.0049 Epoch 21/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - loss: 2.2195e-04 - val_loss: 0.0049 Epoch 22/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 1.7247e-04 - val_loss: 0.0049 Epoch 23/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 1.4855e-04 - val_loss: 0.0050 Epoch 24/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - loss: 1.3100e-04 - val_loss: 0.0049 Epoch 25/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 1.2019e-04 - val_loss: 0.0049 Epoch 26/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 1.0675e-04 - val_loss: 0.0049 Epoch 27/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 8.3957e-05 - val_loss: 0.0049 Epoch 28/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 8.5094e-05 - val_loss: 0.0050 Epoch 29/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 7.7191e-05 - val_loss: 0.0049 Epoch 30/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 5.6804e-05 - val_loss: 0.0049 Epoch 31/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - loss: 7.8296e-05 - val_loss: 0.0049 Epoch 32/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 5.6535e-05 - val_loss: 0.0049 Epoch 33/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 6.0680e-05 - val_loss: 0.0050 Epoch 34/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - loss: 4.4269e-05 - val_loss: 0.0049 Epoch 35/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 3.1694e-05 - val_loss: 0.0050 Epoch 36/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 3.7144e-05 - val_loss: 0.0050 Epoch 37/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 3.1286e-05 - val_loss: 0.0051 Epoch 38/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 3.7118e-05 - val_loss: 0.0050 Epoch 39/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 2.9546e-05 - val_loss: 0.0049 Epoch 40/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - loss: 2.8901e-05 - val_loss: 0.0050 Epoch 41/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - loss: 2.1354e-05 - val_loss: 0.0049 Epoch 42/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 2.7530e-05 - val_loss: 0.0051 Epoch 43/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 2.8451e-05 - val_loss: 0.0049 Epoch 44/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 1.9078e-05 - val_loss: 0.0049 Epoch 45/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 1.6847e-05 - val_loss: 0.0049 Epoch 46/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 2.3632e-05 - val_loss: 0.0050 Epoch 47/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 1.8036e-05 - val_loss: 0.0050 Epoch 48/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 1.3934e-05 - val_loss: 0.0050 Epoch 49/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 10ms/step - loss: 1.2589e-05 - val_loss: 0.0050 Epoch 50/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 9ms/step - loss: 1.8497e-05 - val_loss: 0.0049 Epoch 1/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 2s 131ms/step - loss: 0.2011 - val_loss: 0.0956 Epoch 2/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 43ms/step - loss: 0.0715 - val_loss: 0.0486 Epoch 3/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 42ms/step - loss: 0.0464 - val_loss: 0.0344 Epoch 4/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 47ms/step - loss: 0.0292 - val_loss: 0.0261 Epoch 5/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 45ms/step - loss: 0.0238 - val_loss: 0.0221 Epoch 6/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 36ms/step - loss: 0.0210 - val_loss: 0.0180 Epoch 7/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 24ms/step - loss: 0.0150 - val_loss: 0.0144 Epoch 8/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 29ms/step - loss: 0.0106 - val_loss: 0.0134 Epoch 9/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 28ms/step - loss: 0.0082 - val_loss: 0.0108 Epoch 10/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 24ms/step - loss: 0.0067 - val_loss: 0.0088 Epoch 11/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 24ms/step - loss: 0.0055 - val_loss: 0.0076 Epoch 12/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 27ms/step - loss: 0.0055 - val_loss: 0.0067 Epoch 13/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 28ms/step - loss: 0.0038 - val_loss: 0.0058 Epoch 14/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 24ms/step - loss: 0.0034 - val_loss: 0.0053 Epoch 15/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 0.0038 - val_loss: 0.0048 Epoch 16/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 24ms/step - loss: 0.0035 - val_loss: 0.0045 Epoch 17/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 0.0025 - val_loss: 0.0046 Epoch 18/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 28ms/step - loss: 0.0027 - val_loss: 0.0047 Epoch 19/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 0.0024 - val_loss: 0.0044 Epoch 20/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 0.0023 - val_loss: 0.0042 Epoch 21/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 0.0022 - val_loss: 0.0042 Epoch 22/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 24ms/step - loss: 0.0024 - val_loss: 0.0042 Epoch 23/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 31ms/step - loss: 0.0023 - val_loss: 0.0040 Epoch 24/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 24ms/step - loss: 0.0020 - val_loss: 0.0039 Epoch 25/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 28ms/step - loss: 0.0020 - val_loss: 0.0039 Epoch 26/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 27ms/step - loss: 0.0018 - val_loss: 0.0039 Epoch 27/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 0.0019 - val_loss: 0.0035 Epoch 28/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 24ms/step - loss: 0.0021 - val_loss: 0.0034 Epoch 29/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 27ms/step - loss: 0.0019 - val_loss: 0.0034 Epoch 30/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 24ms/step - loss: 0.0018 - val_loss: 0.0032 Epoch 31/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 27ms/step - loss: 0.0017 - val_loss: 0.0031 Epoch 32/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 0.0016 - val_loss: 0.0031 Epoch 33/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 24ms/step - loss: 0.0016 - val_loss: 0.0031 Epoch 34/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 0.0016 - val_loss: 0.0030 Epoch 35/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 27ms/step - loss: 0.0018 - val_loss: 0.0030 Epoch 36/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 24ms/step - loss: 0.0014 - val_loss: 0.0029 Epoch 37/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 27ms/step - loss: 0.0016 - val_loss: 0.0030 Epoch 38/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 0.0016 - val_loss: 0.0029 Epoch 39/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 24ms/step - loss: 0.0014 - val_loss: 0.0030 Epoch 40/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 0.0013 - val_loss: 0.0030 Epoch 41/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 28ms/step - loss: 0.0012 - val_loss: 0.0030 Epoch 42/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 24ms/step - loss: 0.0014 - val_loss: 0.0029 Epoch 43/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 29ms/step - loss: 0.0015 - val_loss: 0.0029 Epoch 44/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 0.0013 - val_loss: 0.0029 Epoch 45/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 27ms/step - loss: 0.0014 - val_loss: 0.0029 Epoch 46/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 32ms/step - loss: 0.0012 - val_loss: 0.0029 Epoch 47/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 27ms/step - loss: 0.0010 - val_loss: 0.0028 Epoch 48/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 26ms/step - loss: 0.0014 - val_loss: 0.0028 Epoch 49/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 24ms/step - loss: 0.0013 - val_loss: 0.0029 Epoch 50/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 28ms/step - loss: 0.0012 - val_loss: 0.0029 Epoch 1/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 2s 105ms/step - loss: 0.0566 - val_loss: 0.0328 Epoch 2/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 44ms/step - loss: 0.0278 - val_loss: 0.0203 Epoch 3/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 40ms/step - loss: 0.0146 - val_loss: 0.0133 Epoch 4/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 43ms/step - loss: 0.0066 - val_loss: 0.0091 Epoch 5/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 49ms/step - loss: 0.0035 - val_loss: 0.0076 Epoch 6/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 44ms/step - loss: 0.0028 - val_loss: 0.0072 Epoch 7/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 41ms/step - loss: 0.0024 - val_loss: 0.0068 Epoch 8/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 50ms/step - loss: 0.0018 - val_loss: 0.0065 Epoch 9/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 46ms/step - loss: 0.0014 - val_loss: 0.0061 Epoch 10/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 45ms/step - loss: 0.0012 - val_loss: 0.0056 Epoch 11/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 47ms/step - loss: 0.0011 - val_loss: 0.0051 Epoch 12/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 46ms/step - loss: 8.8872e-04 - val_loss: 0.0048 Epoch 13/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 8.3822e-04 - val_loss: 0.0047 Epoch 14/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 7.6649e-04 - val_loss: 0.0045 Epoch 15/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 24ms/step - loss: 7.1898e-04 - val_loss: 0.0044 Epoch 16/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 29ms/step - loss: 7.9470e-04 - val_loss: 0.0045 Epoch 17/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 31ms/step - loss: 7.5968e-04 - val_loss: 0.0042 Epoch 18/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 24ms/step - loss: 6.3461e-04 - val_loss: 0.0041 Epoch 19/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 6.2430e-04 - val_loss: 0.0041 Epoch 20/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 5.8142e-04 - val_loss: 0.0039 Epoch 21/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 28ms/step - loss: 5.1831e-04 - val_loss: 0.0039 Epoch 22/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 28ms/step - loss: 5.4782e-04 - val_loss: 0.0038 Epoch 23/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 27ms/step - loss: 5.0897e-04 - val_loss: 0.0038 Epoch 24/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 4.9939e-04 - val_loss: 0.0038 Epoch 25/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 4.6567e-04 - val_loss: 0.0038 Epoch 26/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 30ms/step - loss: 4.4506e-04 - val_loss: 0.0037 Epoch 27/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 4.3628e-04 - val_loss: 0.0038 Epoch 28/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 26ms/step - loss: 4.6819e-04 - val_loss: 0.0037 Epoch 29/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 26ms/step - loss: 4.1473e-04 - val_loss: 0.0038 Epoch 30/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 4.3574e-04 - val_loss: 0.0036 Epoch 31/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 4.0611e-04 - val_loss: 0.0037 Epoch 32/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 26ms/step - loss: 4.0890e-04 - val_loss: 0.0036 Epoch 33/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 3.5014e-04 - val_loss: 0.0038 Epoch 34/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 24ms/step - loss: 3.5743e-04 - val_loss: 0.0038 Epoch 35/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 28ms/step - loss: 3.4902e-04 - val_loss: 0.0037 Epoch 36/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 30ms/step - loss: 4.1168e-04 - val_loss: 0.0037 Epoch 37/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 3.8281e-04 - val_loss: 0.0037 Epoch 38/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 3.6232e-04 - val_loss: 0.0037 Epoch 39/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 24ms/step - loss: 3.3370e-04 - val_loss: 0.0037 Epoch 40/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 24ms/step - loss: 3.6855e-04 - val_loss: 0.0037 Epoch 41/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 29ms/step - loss: 3.2658e-04 - val_loss: 0.0037 Epoch 42/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 30ms/step - loss: 3.1498e-04 - val_loss: 0.0037 Epoch 43/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 3.1839e-04 - val_loss: 0.0037 Epoch 44/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 2.7585e-04 - val_loss: 0.0037 Epoch 45/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 24ms/step - loss: 3.4662e-04 - val_loss: 0.0037 Epoch 46/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 2.9255e-04 - val_loss: 0.0038 Epoch 47/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 31ms/step - loss: 3.2340e-04 - val_loss: 0.0036 Epoch 48/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 29ms/step - loss: 2.8702e-04 - val_loss: 0.0037 Epoch 49/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - loss: 2.8504e-04 - val_loss: 0.0037 Epoch 50/50 5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 24ms/step - loss: 2.4736e-04 - val_loss: 0.0036 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 158ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 157ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 287ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 1s 297ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 1s 474ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 2s 2s/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 50ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 47ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 43ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 47ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 43ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 42ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 145ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 144ms/step --- LSTM Model Performance --- Temperature MSE: 0.0036, RMSE: 0.0599, MAE: 0.0412, R2 Score: 0.8834 Humidity MSE: 0.0004, RMSE: 0.0206, MAE: 0.0161, R2 Score: 0.4629 --- GRU Model Performance --- Temperature MSE: 0.0029, RMSE: 0.0535, MAE: 0.0399, R2 Score: 0.9067 Humidity MSE: 0.0004, RMSE: 0.0201, MAE: 0.0161, R2 Score: 0.4897 --- Bidirectional LSTM Model Performance --- Temperature MSE: 0.0045, RMSE: 0.0671, MAE: 0.0467, R2 Score: 0.8535 Humidity MSE: 0.0005, RMSE: 0.0214, MAE: 0.0163, R2 Score: 0.4213 --- CNN Model Performance --- Temperature MSE: 0.0056, RMSE: 0.0745, MAE: 0.0532, R2 Score: 0.8193 Humidity MSE: 0.0015, RMSE: 0.0392, MAE: 0.0313, R2 Score: -0.9440 --- Transformer Model Performance --- Temperature MSE: 0.0072, RMSE: 0.0851, MAE: 0.0651, R2 Score: 0.7641 Humidity MSE: 0.0014, RMSE: 0.0374, MAE: 0.0283, R2 Score: -0.7759 --- ANN Model Performance --- Temperature MSE: 0.0169, RMSE: 0.1300, MAE: 0.1047, R2 Score: 0.4498 Humidity MSE: 0.0075, RMSE: 0.0865, MAE: 0.0632, R2 Score: -8.4925 --- RNN Model Performance --- Temperature MSE: 0.0037, RMSE: 0.0608, MAE: 0.0471, R2 Score: 0.8797 Humidity MSE: 0.0009, RMSE: 0.0296, MAE: 0.0242, R2 Score: -0.1106 --- SVR Model Performance --- Temperature MSE: 0.0081, RMSE: 0.0898, MAE: 0.0689, R2 Score: 0.7373 Humidity MSE: 0.0014, RMSE: 0.0370, MAE: 0.0312, R2 Score: -0.7392 --- XGBoost Model Performance --- Temperature MSE: 0.0022, RMSE: 0.0473, MAE: 0.0283, R2 Score: 0.9271 Humidity MSE: 0.0005, RMSE: 0.0226, MAE: 0.0162, R2 Score: 0.3520 --- ARIMA Model Performance --- Temperature MSE: 0.0318, RMSE: 0.1782, MAE: 0.1308, R2 Score: -0.0335 Humidity MSE: 0.0008, RMSE: 0.0288, MAE: 0.0236, R2 Score: -0.0528 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 18ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 6ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 4ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 18ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 7ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 5ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step
Plotting Results of ML Models to Choose a Suitable Model for Prediction
# Additional Graphs for Model Comparison
# Collect metrics for each model
model_metrics = {
'Model': [],
'MSE (Temp)': [],
'RMSE (Temp)': [],
'MAE (Temp)': [],
'R2 (Temp)': [],
'MSE (Humid)': [],
'RMSE (Humid)': [],
'MAE (Humid)': [],
'R2 (Humid)': []
}
# Gather data for plotting
for model_name, (y_test_temp, y_pred_temp, y_test_humid, y_pred_humid) in models.items():
mse_temp, rmse_temp, mae_temp, r2_temp = calculate_metrics(y_test_temp, y_pred_temp)
mse_humid, rmse_humid, mae_humid, r2_humid = calculate_metrics(y_test_humid, y_pred_humid)
model_metrics['Model'].append(model_name)
model_metrics['MSE (Temp)'].append(mse_temp)
model_metrics['RMSE (Temp)'].append(rmse_temp)
model_metrics['MAE (Temp)'].append(mae_temp)
model_metrics['R2 (Temp)'].append(r2_temp)
model_metrics['MSE (Humid)'].append(mse_humid)
model_metrics['RMSE (Humid)'].append(rmse_humid)
model_metrics['MAE (Humid)'].append(mae_humid)
model_metrics['R2 (Humid)'].append(r2_humid)
# Convert to DataFrame for easier plotting
metrics_df = pd.DataFrame(model_metrics)
# Plotting the metrics
plt.figure(figsize=(15, 10))
# MSE for Temperature
plt.subplot(2, 2, 1)
plt.bar(metrics_df['Model'], metrics_df['MSE (Temp)'], color='skyblue')
plt.title('MSE for Temperature Prediction')
plt.xticks(rotation=45)
plt.ylabel('MSE')
# RMSE for Temperature
plt.subplot(2, 2, 2)
plt.bar(metrics_df['Model'], metrics_df['RMSE (Temp)'], color='orange')
plt.title('RMSE for Temperature Prediction')
plt.xticks(rotation=45)
plt.ylabel('RMSE')
# MSE for Humidity
plt.subplot(2, 2, 3)
plt.bar(metrics_df['Model'], metrics_df['MSE (Humid)'], color='lightgreen')
plt.title('MSE for Humidity Prediction')
plt.xticks(rotation=45)
plt.ylabel('MSE')
# RMSE for Humidity
plt.subplot(2, 2, 4)
plt.bar(metrics_df['Model'], metrics_df['RMSE (Humid)'], color='salmon')
plt.title('RMSE for Humidity Prediction')
plt.xticks(rotation=45)
plt.ylabel('RMSE')
plt.tight_layout()
plt.show()
# Plotting MAE and R2 for further comparison
plt.figure(figsize=(15, 10))
# MAE for Temperature
plt.subplot(2, 2, 1)
plt.bar(metrics_df['Model'], metrics_df['MAE (Temp)'], color='purple')
plt.title('MAE for Temperature Prediction')
plt.xticks(rotation=45)
plt.ylabel('MAE')
# R2 Score for Temperature
plt.subplot(2, 2, 2)
plt.bar(metrics_df['Model'], metrics_df['R2 (Temp)'], color='cyan')
plt.title('R2 Score for Temperature Prediction')
plt.xticks(rotation=45)
plt.ylabel('R2 Score')
# MAE for Humidity
plt.subplot(2, 2, 3)
plt.bar(metrics_df['Model'], metrics_df['MAE (Humid)'], color='darkred')
plt.title('MAE for Humidity Prediction')
plt.xticks(rotation=45)
plt.ylabel('MAE')
# R2 Score for Humidity
plt.subplot(2, 2, 4)
plt.bar(metrics_df['Model'], metrics_df['R2 (Humid)'], color='lime')
plt.title('R2 Score for Humidity Prediction')
plt.xticks(rotation=45)
plt.ylabel('R2 Score')
plt.tight_layout()
plt.show()
LSTM (Long Short-Term Memory): Temperature: This model does a good job predicting temperature, with low average errors and a high score indicating it explains most of the variability in the data. Humidity: It also performs well with small average errors, but it doesn’t explain humidity data as effectively as temperature.
GRU (Gated Recurrent Unit): Temperature: GRU is even better at predicting temperature than LSTM, with slightly lower errors and a higher score indicating better performance. Humidity: It’s similar to LSTM in terms of average errors but explains humidity data a bit better.
Bidirectional LSTM: Temperature: This model’s temperature predictions are less accurate than LSTM, with higher errors and a lower performance score. Humidity: It performs similarly to LSTM in terms of errors, but the score is lower, meaning it explains less of the variability in humidity data.
CNN (Convolutional Neural Network): Temperature: CNN has the highest errors for temperature predictions and a lower performance score, indicating it’s not as good at this task. Humidity: It has very high errors for humidity predictions and a very poor score, meaning it performs badly here.
Transformer: Temperature: Transformers have higher errors and a lower score for temperature, indicating they’re less effective. Humidity: They also perform poorly for humidity with higher errors and a negative score, suggesting they’re not suitable.
ANN (Artificial Neural Network): Temperature: ANN has the highest errors and the lowest score, showing it’s not effective for temperature predictions. Humidity: It performs even worse for humidity, with very high errors and a very low score.
RNN (Recurrent Neural Network): Temperature: RNN is slightly worse than LSTM, with higher errors and a slightly lower score. Humidity: RNN has higher errors and a very poor performance score for humidity. SVR (Support Vector Regression): Temperature: SVR has higher errors and a lower score compared to the better models, indicating it's not as accurate. Humidity: It performs similarly to LSTM for humidity with moderate errors but a negative score, suggesting poor overall performance.
XGBoost: Temperature: XGBoost performs very well for temperature with the lowest errors and the highest score, making it the best for this task. Humidity: It also does well for humidity with low errors, but its performance score is lower than LSTM for this task.
ARIMA (AutoRegressive Integrated Moving Average): Temperature: ARIMA performs the worst for temperature with the highest errors and a very low score. Humidity: It performs reasonably well for humidity, with low errors but a lower score.
Why Choose LSTM:
Temperature: LSTM is a strong performer, but GRU and XGBoost are slightly better for temperature prediction. However, LSTM is still a robust choice, especially if you need a model with long-term memory capabilities.
Humidity: LSTM performs well with low errors, though GRU is a bit better. The LSTM model strikes a good balance between accuracy and performance for humidity.
Reasons to Choose LSTM:
Balanced Performance: LSTM provides a good balance between accuracy and explaining variance for temperature, which is crucial if both temperature and humidity predictions are important.
Consistency: LSTM offers stable performance across different types of data (temperature and humidity), which can be beneficial in a real-world scenario where consistency is key.
Long-Term Dependencies: LSTM’s strength is in capturing long-term dependencies and sequential data patterns, which can be advantageous if your data has temporal aspects or requires understanding patterns over time.
Versatility: LSTM is more versatile and can handle various types of sequential data, making it a reliable choice if your data involves time series or sequential dependencies.