如何记录每个epoch的RMSE
时间: 2024-03-02 20:52:42 浏览: 192
要记录每个 epoch 的 RMSE,可以在训练模型时使用一个回调函数,例如 Keras 中的 `Callback`。在每个 epoch 结束时,回调函数可以计算并记录当前的 RMSE 值,可以将这些 RMSE 值保存到一个列表中。代码示例如下:
```python
from keras.callbacks import Callback
import numpy as np
class RMSECallback(Callback):
def __init__(self, x_val, y_val):
super().__init__()
self.x_val = x_val
self.y_val = y_val
self.rmse = []
def on_epoch_end(self, epoch, logs=None):
y_pred = self.model.predict(self.x_val)
rmse = np.sqrt(np.mean((self.y_val - y_pred)**2))
self.rmse.append(rmse)
print(f"RMSE at epoch {epoch}: {rmse}")
```
在使用模型时,例如:
```python
rmse_callback = RMSECallback(x_val, y_val)
model.fit(x_train, y_train, epochs=10, callbacks=[rmse_callback])
```
训练过程中,每个 epoch 结束时,都会输出当前的 RMSE 值,并将其保存到 `rmse_callback.rmse` 列表中。
阅读全文