python 绘制训练曲线--基于Numpy.convolve曲线平均滤波

文章目录

  • 1 训练曲线--震荡的非常厉害
  • 2 基于Numpy.convolve曲线平均滤波
  • 3 python 绘制训练曲线 平滑处理--Savitzky-Golay 滤波器曲线平滑
  • 4 python 绘制训练曲线--插值法 曲线平滑处理

1 训练曲线–震荡的非常厉害

上一篇文章用python自己绘制训练曲线震荡的非常厉害(下图绿色曲线),而tensorboard的曲线比较平滑(下下图黑色曲线),

原因是tensorboard显示的曲线是经过平滑处理过的(其灰黑色的背景就平滑处理前的波形)

python 绘制训练曲线--基于Numpy.convolve曲线平均滤波_第1张图片
python 绘制训练曲线--基于Numpy.convolve曲线平均滤波_第2张图片

2 基于Numpy.convolve曲线平均滤波

滑动平均概念:

滑动平均滤波法(又称:递推平均滤波法),它把连续取N个采样值看成一个队列 ,队列的长度固定为N ,每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据(先进先出原则) 。把队列中的N个数据进行算术平均运算,就可获得新的滤波结果。

N值的选取:流量,N=12;压力:N=4;液面,N=4 ~ 12;温度,N=1~4

滑动平均的优缺点:

优点: 对周期性干扰有良好的抑制作用,平滑度高,适用于高频振荡的系统。

缺点: 灵敏度低,对偶然出现的脉冲性干扰的抑制作用较差,不易消除由于脉冲干扰所引起的采样值偏差,不适用于脉冲干扰比较严重的场合,比较浪费RAM 。

from matplotlib import pyplot as plt
import csv
import numpy as np

#基于Numpy.convolve实现滑动平均滤波
def moving_average(interval, windowsize):
    window = np.ones(int(windowsize)) / float(windowsize)
    re = np.convolve(interval, window, 'same')
    return re


filename = "D:/python/pltt/train_loss.csv"  #.csv文件路径,这里可以添加绝对路径                                          
with open(filename) as f:                                                                                
    csvreader = csv.reader(f, delimiter = ",", quotechar='"')                                       
    for line in range(1):  #1代表从文件第2行开始读取
        next (csvreader)  
    print("lines: ",line) #打印行数

    x = []   #横纵坐标分别建立了两个list                                                                                  
    y = []   
    for row in csvreader:
        x.append(float(row[1]))   #读取第23列数据,放入list                                                            
        y.append(float(row[2]))  

    # 插值法 对曲线平滑处理
    y_smooth = moving_average(y, 15)

    # 可视化图线                                                                  
    plt.plot(x,y_smooth,'g', linewidth=1.0) #曲线颜色绿色,线条宽度1
                                            
plt.show()      

python 绘制训练曲线--基于Numpy.convolve曲线平均滤波_第3张图片

3 python 绘制训练曲线 平滑处理–Savitzky-Golay 滤波器曲线平滑

python 绘制训练曲线 平滑处理–Savitzky-Golay 滤波器曲线平滑

4 python 绘制训练曲线–插值法 曲线平滑处理

python 绘制训练曲线–插值法 曲线平滑处理

python 绘制训练曲线–基于Numpy.convolve曲线平均滤波

你可能感兴趣的:(论文格式必会的那些技能,深度学习,Python,python,numpy,开发语言)