8.绘制训练集和验证集的损失曲线 9.绘制训练集和验证集的准确率曲线
时间: 2023-09-08 07:10:58 浏览: 120
很抱歉,作为语言模型,我无法进行数据可视化操作。但是,我可以告诉你如何生成训练集和验证集的损失曲线和准确率曲线。
对于损失曲线,可以在每个 epoch 结束后记录训练集和验证集的损失,并将它们绘制在同一张图上。可以使用 Python 的 Matplotlib 库来实现。
对于准确率曲线,可以在每个 epoch 结束后记录训练集和验证集的准确率,并将它们绘制在同一张图上。同样,可以使用 Matplotlib 库来实现。
以下是示例代码:
```python
import matplotlib.pyplot as plt
# 记录每个 epoch 的损失和准确率
train_losses = []
val_losses = []
train_accs = []
val_accs = []
for epoch in range(num_epochs):
# 训练模型并记录训练集损失和准确率
train_loss, train_acc = train(model, train_loader, optimizer, criterion)
train_losses.append(train_loss)
train_accs.append(train_acc)
# 在验证集上测试模型并记录验证集损失和准确率
val_loss, val_acc = validate(model, val_loader, criterion)
val_losses.append(val_loss)
val_accs.append(val_acc)
# 打印当前 epoch 的信息
print(f"Epoch [{epoch+1}/{num_epochs}], Train Loss: {train_loss:.4f}, Train Acc: {train_acc:.2f}%, Val Loss: {val_loss:.4f}, Val Acc: {val_acc:.2f}%")
# 绘制损失曲线
plt.plot(train_losses, label="Train")
plt.plot(val_losses, label="Validation")
plt.xlabel("Epoch")
plt.ylabel("Loss")
plt.legend()
plt.show()
# 绘制准确率曲线
plt.plot(train_accs, label="Train")
plt.plot(val_accs, label="Validation")
plt.xlabel("Epoch")
plt.ylabel("Accuracy")
plt.legend()
plt.show()
```
阅读全文