注:细线是具体值,粗线是高斯平滑处理后的均值曲线
#coding=gbk
import matplotlib.pyplot as plt
import numpy as np
from scipy.ndimage import gaussian_filter1d
# 生成一些示例数据
np.random.seed(0)
timesteps = np.linspace(1000, 0, 1000)
data = 0.4 + 0.2 * np.random.randn(1000) + 0.1 * np.log(1 + timesteps) / np.log(1000) # 模拟逐渐增加的噪声数据
# 计算每个时间步的高斯平滑后的均值
smoothed_values = gaussian_filter1d(data, sigma=10) # sigma 参数控制平滑的程度
# 绘制图像
plt.figure(figsize=(8, 5))
plt.plot(timesteps, data, color='dodgerblue', linewidth=0.5, alpha=0.7) # 细线,表示原始数据
plt.plot(timesteps, smoothed_values, color='dodgerblue', linewidth=3) # 粗线,表示高斯平滑后的均值
# 添加标签和标题
plt.xlabel('Timestep', fontsize=14, fontweight='bold')
plt.ylabel('ConvNet Importance', fontsize=14, fontweight='bold')
plt.ylim(0, 1)
plt.xlim(1000, 0)
# 显示网格
plt.grid(False)
# 显示图像
plt.show()