写段python代码,将每个epoch得到的train loss和valid loss画图,横坐标为epoch
时间: 2024-02-13 10:01:28 浏览: 161
好的,可以使用matplotlib库来实现这个功能,具体代码如下:
```python
import matplotlib.pyplot as plt
# 定义一个函数,用于绘制训练集和验证集的loss曲线
def plot_loss(train_loss, val_loss):
epochs = range(1, len(train_loss) + 1)
plt.plot(epochs, train_loss, 'bo', label='Training loss')
plt.plot(epochs, val_loss, 'b', label='Validation loss')
plt.title('Training and validation loss')
plt.xlabel('Epochs')
plt.ylabel('Loss')
plt.legend()
plt.show()
```
这段代码中,我们首先导入了matplotlib库,然后定义了一个名为`plot_loss`的函数,该函数接收两个参数,分别为训练集的loss和验证集的loss。然后我们使用`range`函数生成了一个从1到epoch数的整数列表,作为横坐标。接着,我们使用`plt.plot`函数绘制训练集和验证集的loss曲线,并分别用蓝色圆点和蓝线表示。然后我们添加了标题、横坐标和纵坐标标签,最后使用`plt.legend`函数添加图例,并使用`plt.show`函数显示图像。
你可以在每个epoch训练结束后调用该函数,将训练集和验证集的loss传入,即可绘制出对应的loss曲线。
阅读全文