我目前正在尝试通过显示每个时期的 val_mse 来可视化我的预测模型的性能。过去适用于
model.fit()
的代码不适用于 tuner.search()
。谁能给我提供一些这方面的指导。谢谢你。
之前的代码:
import matplotlib.pyplot as plt
def plot_model(history):
hist = pd.DataFrame (history.history)
hist['epoch'] = history.epoch
plt.figure()
plt.xlabel('Epoch')
plt.ylabel('Mean Absolute Error')
plt.plot(hist['epoch'], hist['mae'],
label='Train Error')
plt.plot(hist['epoch'], hist['val_mae'],
label = 'Val Error')
plt.legend()
plt.ylim([0,20])
plt.figure()
plt.xlabel('Epoch')
plt.ylabel('Mean Square Error')
plt.plot (hist['epoch'], hist['mse'],
label='Train Error')
plt.plot (hist['epoch'], hist['val_mse'],
label = 'Val Error')
plt.legend()
plt.ylim([0,400])
plot_model(history)
keras.tuner 代码:
history = tuner.search(x = normed_train_data,
y = y_train,
epochs = 200,
batch_size=64,
validation_data=(normed_test_data, y_test),
callbacks = [early_stopping])
在使用
tuner.search
搜索最佳型号之前,您需要安装并导入keras_tuner
:
!pip install keras-tuner --upgrade
import keras_tuner as kt
from tensorflow import keras
然后,在模型定义中定义超参数(hp),例如如下:
def build_model(hp):
model = keras.Sequential()
model.add(keras.layers.Dense(
hp.Choice('units', [8, 16, 32]), # define the hyperparameter
activation='relu'))
model.add(keras.layers.Dense(1, activation='relu'))
model.compile(loss='mse')
return model
初始化调谐器:
tuner = kt.RandomSearch(build_model,objective='val_loss',max_trials=5)
现在,开始搜索并使用
tuner.search
: 获得最佳模型
tuner.search(x = normed_train_data,
y = y_train,
epochs = 200,
batch_size=64,
validation_data=(normed_test_data, y_test),
callbacks = [early_stopping])
best_model = tuner.get_best_models()[0]
因此,现在您可以使用此
best_model
来使用您的数据集训练和评估模型,并且损失将显着减少。
请检查this链接作为更多详细信息的参考。
Keras Tuner 不是这样工作的!
还有更多“KerasTuner”友好的方式通过使用 Tensorboard 回调来可视化训练曲线。
tensorboard_callback = keras.callbacks.TensorBoard("/content/tb_logs") # The logs will be written to "/content/tb_logs".
tuner.search(
x = normed_train_data,
y = y_train,
epochs = 200,
batch_size=64,
validation_data=(normed_test_data, y_test),
callbacks = [early_stopping, tensorboard_callback]
)
%load_ext tensorboard
%tensorboard --logdir /content/tb_logs
欲了解更多信息,请访问:https://keras.io/guides/keras_tuner/visualize_tuning/