如何为Keras模型添加指标?需在现有MAE和R2中新增RMSE
给Keras模型添加RMSE指标的解决方案
没问题,给你的Keras模型新增RMSE指标其实和你已经在用的r2_keras思路完全一致,只需要自定义一个RMSE的指标函数,再把它加入模型编译的指标列表里就行。
步骤1:定义RMSE自定义指标函数
因为Keras没有直接内置RMSE作为可调用的指标(虽然损失用了MSE,但RMSE是它的平方根),我们用Keras后端函数来实现,保证和模型兼容:
from keras import backend as K def rmse_keras(y_true, y_pred): # 先计算预测值和真实值的平方差,再取均值,最后开平方得到RMSE return K.sqrt(K.mean(K.square(y_pred - y_true), axis=-1))
步骤2:修改模型编译代码
把刚定义的rmse_keras加入metrics参数列表里,和已有的MAE、r2_keras放在一起:
model = Sequential() model.add(LSTM( input_shape=(n_past, nb_features), units=100, return_sequences=True)) model.add(Dropout(0.2)) model.add(LSTM( units=50, return_sequences=False)) model.add(Dropout(0.2)) model.add(Dense(units=1)) model.add(Activation("linear")) # 这里新增rmse_keras到指标列表 model.compile(loss='mean_squared_error', optimizer='rmsprop', metrics=['mae', r2_keras, rmse_keras])
这样训练的时候,模型就会在每一轮输出MAE、R²和RMSE这三个指标的结果了。
内容的提问来源于stack exchange,提问作者Lebo Bocaso
相关产品推荐
相关产品推荐

