Керас распечатать модель RMSE после тренировки - PullRequest
0 голосов
/ 20 апреля 2020

Можно ли распечатать модель RSME после тренировки с Keras? Я пытаюсь подписаться на этот другой пост по этой теме, но мне не везет ..

Например, когда мой скрипт запускается, я хотел бы знать, как я могу включить это окончательное значение RSME на моем графике показателей в конце с matplotlib

enter image description here

Это может быть немного излишним, но это весь мой сценарий 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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...