Можно ли распечатать модель RSME после тренировки с Keras? Я пытаюсь подписаться на этот другой пост по этой теме, но мне не везет ..
Например, когда мой скрипт запускается, я хотел бы знать, как я могу включить это окончательное значение RSME на моем графике показателей в конце с matplotlib
Это может быть немного излишним, но это весь мой сценарий MLP:
РЕДАКТИРОВАТЬ, обновленный рабочий код для печати RSME ON METRICS PLOT
import time, datetime
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import tensorflow as tf
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras import backend
# This function keeps the learning rate at 0.001
# and decreases it exponentially after that.
def scheduler(epoch):
if epoch < 1:
return 0.001
else:
return 0.001 * tf.math.exp(0.01 * (1 - epoch))
callback = tf.keras.callbacks.LearningRateScheduler(scheduler)
#function to calculate RSME
def rmse(y_true, y_pred):
return backend.sqrt(backend.mean(backend.square(y_pred - y_true), axis=-1))
# load training/baseline dataset
#df = pd.read_csv('School District Test Data/hourly_summary.csv', index_col='Date', parse_dates=True)
df = pd.read_csv('OrigKw.csv', index_col='Date', parse_dates=True)
start = datetime.datetime.now()
print('Lets GO!')
print(df.columns)
dfTrain = df.copy()
# split into input (X) and output (Y) variables
X = dfTrain.drop(['Demand'],1)
Y = dfTrain['Demand']
#define training & testing data set
offset = int(X.shape[0] * 0.7)
X_train, Y_train = X[:offset], Y[:offset]
X_test, Y_test = X[offset:], Y[offset:]
epochs=10
#define model
model = Sequential()
model.add(Dense(120, input_dim=37, kernel_initializer='normal', activation='relu'))
model.add(Dense(88, kernel_initializer='normal', activation='relu'))
model.add(Dense(66, kernel_initializer='normal', activation='relu'))
model.add(Dense(44, kernel_initializer='normal', activation='relu'))
model.add(Dense(12, kernel_initializer='normal', activation='relu'))
model.add(Dense(8, kernel_initializer='normal', activation='relu'))
model.add(Dense(1, kernel_initializer='normal'))
model.summary()
model.compile(loss='mse', optimizer='adam', metrics=[rmse])
# train model, test callback option
history = model.fit(X_train, Y_train, epochs=epochs, batch_size=1, verbose=2, callbacks=[callback])
#history = model.fit(X_train, Y_train, epochs=60, batch_size=1, verbose=2)
# calculate training time
end = datetime.datetime.now()
diff = (end - start)
diff_seconds = int(diff.total_seconds())
minute_seconds, seconds = divmod(diff_seconds, 60)
hours, minutes = divmod(minute_seconds, 60)
score = history.history['rmse'][-1]
hms = f'train time = {hours}h {minutes}m {seconds}s, rsme = {round(score)}'
print(hms)
# plot metrics
plt.plot(history.history['rmse'])
plt.title('kW RSME Vs Epoch')
plt.text(1, 6, hms)
plt.xlim(0, epochs)
plt.ylim(5, 30)
plt.savefig('metricsPlot.png')
# save model
model.save_weights('deepLearnModel.h5')
print('[INFO] Saved model to disk')