绘制损失函数曲线 plt.plot(train_losses, label='Train Loss') plt.plot(test_losses, label='Test Loss') plt.ylim([0, 1]) # 设置y轴范围为0~1 plt.legend() plt.show() # 绘制准确率曲线 plt.plot(train_accs, label='Train Acc') plt.plot(test_accs, label='Test Acc') plt.ylim([0, 1]) # 设置y轴范围为0~1 plt.legend() plt.show(),使用interp函数来平滑数据
时间: 2024-02-27 10:53:06 浏览: 84
可以使用 `numpy.interp` 函数来平滑损失函数和准确率曲线。以下是一个示例代码,演示如何使用 `numpy.interp` 函数来平滑数据并绘制曲线:
```
import numpy as np
import matplotlib.pyplot as plt
# 假设有原始的训练损失、测试损失、训练准确率、测试准确率数据
train_losses = [0.5, 0.4, 0.3, 0.25, 0.2, 0.15, 0.1, 0.05]
test_losses = [0.6, 0.5, 0.4, 0.35, 0.3, 0.25, 0.2, 0.15]
train_accs = [0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 0.98, 0.99]
test_accs = [0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95]
# 创建插值数据点
interp_x = np.linspace(0, len(train_losses) - 1, 1000)
# 训练损失曲线
interp_train_losses = np.interp(interp_x, range(len(train_losses)), train_losses)
plt.plot(interp_x, interp_train_losses, label='Train Loss')
# 测试损失曲线
interp_test_losses = np.interp(interp_x, range(len(test_losses)), test_losses)
plt.plot(interp_x, interp_test_losses, label='Test Loss')
# 训练准确率曲线
interp_train_accs = np.interp(interp_x, range(len(train_accs)), train_accs)
plt.plot(interp_x, interp_train_accs, label='Train Acc')
# 测试准确率曲线
interp_test_accs = np.interp(interp_x, range(len(test_accs)), test_accs)
plt.plot(interp_x, interp_test_accs, label='Test Acc')
# 设置y轴范围为0~1
plt.ylim([0, 1])
# 显示图例
plt.legend()
# 显示图像
plt.show()
```
在这个示例中,我们首先创建了一个包含1000个插值数据点的数组 `interp_x`,然后使用 `numpy.interp` 函数将原始数据插值到这些数据点上。最后,我们使用 `matplotlib.pyplot.plot` 函数将平滑后的数据绘制成曲线。
阅读全文