当前位置: 首页 > article >正文

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

文章目录

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

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

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

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

在这里插入图片描述
在这里插入图片描述

2 Savitzky-Golay 滤波器–平滑曲线

对曲线进行平滑处理,通过Savitzky-Golay 滤波器,可以在scipy库里直接调用,不需要再定义函数。

from matplotlib import pyplot as plt
import csv
import numpy as np
# 使用Savitzky-Golay 滤波器后得到平滑图线

from scipy.signal import savgol_filter

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]))  

     #Savitzky-Golay 滤波器实现曲线平滑
        '''
        scipy.signal.savgol_filter(y, window_length, polyorder)
            y--代表曲线点坐标(x,y)中的y值,为要滤波的信号
            window_length--即窗口长度取值为奇数且不能超过len(x)。它越大,则平滑效果越明显;越小,则更贴近原始曲线。
            polyorder--为多项式拟合的阶数。它越小,则平滑效果越明显;越大,则更贴近原始曲线。
            mode--滤波器的填充信号的扩展类型
        '''
    y = savgol_filter(y, 99, 1, mode= 'nearest')
    
    # 可视化图线                                                                  
    plt.plot(x,y,'g', linewidth=1.0) #曲线颜色绿色,线条宽度1
                                            
plt.show()  

不同滤波参数的平滑效果

   y = savgol_filter(y, 99, 1, mode= 'nearest')

在这里插入图片描述

y = savgol_filter(y, 33, 10, mode= 'nearest')

在这里插入图片描述

 y = savgol_filter(y, 55, 2, mode= 'nearest')

在这里插入图片描述

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

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

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

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

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

5 用python自己绘制训练曲线

Tensorboard可视化训练曲线导出数据用绘制


http://www.kler.cn/a/4935.html

相关文章:

  • Qt C++读写NFC标签NDEF网址URI
  • pytest 参数介绍
  • Mysql进阶篇
  • MiniMind - 从0训练语言模型
  • 03_Redis基本操作
  • scrapy爬取图片
  • FFmpeg编程入门
  • 强化学习之入门笔记(二)
  • 零售数据分析之操作篇8:用历史聚合巧算库存
  • python实战应用讲解-【numpy专题篇】常见问题解惑(十四)(附python示例代码)
  • 【最小生成树】一文学懂prim、kruskal算法
  • 【教程】使用ChatGPT制作基于Tkinter的桌面时钟
  • 刷算法题
  • js常见的六种继承方式
  • cocosCreator 事件系统
  • WebGL着色器 GLSL入门
  • ContextCapture Master 倾斜摄影测量实景三维建模技术应用
  • Linux重置root密码
  • 大学生在线课程MOOC系统设计与实现(程序)
  • andriod12(sdk33)以上整合蓝牙app
  • 2023数据科学峰会 百分点科技正式发布数据科学基础平台
  • 【Linux面试】-(腾讯,百度,美团,滴滴)
  • C++ 解决背包问题(动态规划)
  • 【Selenium】模拟按键输入的Keys类属性列表
  • 初识Python
  • python面向对象编程解释