公司网站管理图片,邻水建设局网站,北海教网站建设,windows优化大师官方免费下载文章目录1 导出曲线数据2 python简单的 绘制曲线3 Savitzky-Golay 滤波器--平滑曲线4 对y轴数值缩放处理5 设置图题、图例、字体、网格、保存曲线图6 补充6.1 python 曲线平滑处理——方法总结-详解6.2 Tensorboard可视化训练曲线导出数据用Python绘制6.3 PyTorch可视化工具-Te…
文章目录1 导出曲线数据2 python简单的 绘制曲线3 Savitzky-Golay 滤波器--平滑曲线4 对y轴数值缩放处理5 设置图题、图例、字体、网格、保存曲线图6 补充6.1 python 曲线平滑处理——方法总结-详解6.2 Tensorboard可视化训练曲线导出数据用Python绘制6.3 PyTorch可视化工具-Tensorboard在线查看训练曲线、网络结构图等6.4 PyTorch常用小工具-Tensorboard、Summary、Profiler7 源码下载、曲线数据下载1 导出曲线数据
训练损失曲线数据,用.csv格式导出,数据如下表所示。用python绘制出 step和Value的关系曲线 2 python简单的 绘制曲线
from matplotlib import pyplot as plt
import csv
import numpy as npfilename 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])) #读取第2、3列数据,放入list y.append(float(row[2])) # 可视化图线 plt.plot(x,y,g, linewidth1.0) #曲线颜色绿色线条宽度1plt.show() 可以看到上面的曲线震荡的很厉害不利于观察整体趋势需要滤波处理
3 Savitzky-Golay 滤波器–平滑曲线
对曲线进行平滑处理通过Savitzky-Golay 滤波器可以在scipy库里直接调用不需要再定义函数。
from matplotlib import pyplot as plt
import csv
import numpy as np
# 使用Savitzky-Golay 滤波器后得到平滑图线from scipy.signal import savgol_filterfilename 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])) #读取第2、3列数据,放入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, linewidth1.0) #曲线颜色绿色线条宽度1plt.show() y savgol_filter(y, 99, 1, mode nearest)4 对y轴数值缩放处理
对x,y值进行缩放有两种方法
# 方法① list转array在再缩放
ynp.array(y)/500 #list转array再缩放# 方法② 直接在plt.plotx,y/500中缩放
plt.plot(x, y,g)错误方法
y savgol_filter(y/500, 99, 1, mode nearest)
TypeError: unsupported operand type(s) for /: list and inty.append(float(row[2]/500)) #读取数据放入list
TypeError: unsupported operand type(s) for /: str and inty y /500
TypeError: unsupported operand type(s) for /: list and int完整代码
from matplotlib import pyplot as plt
import csv
import glob
from os.path import basename
import numpy as np# 使用Savitzky-Golay 滤波器后得到平滑图线
from scipy.signal import savgol_filterfiles sorted(glob.glob(D:/python/pltt/train_loss.csv)) #读取目录下所有以.csv结尾的文件这里可以添加绝对路径
for file in files:filename basename(file).rsplit(., 1)[0] #用.来分割文件名取前半部分例如XX.csv取XX print(\r filename , flush True) with open(file) as f: csvreader csv.reader(f, delimiter ,, quotechar) for line in range(1): #1代表从文件第2行开始读取next (csvreader) print(lines: ,line) #打印行数x [] y [] #横纵坐标分别建立了两个listfor row in csvreader:x.append(float(row[1])) #读取第2、3列数据 y.append(float(row[2])) #读取数据放入list ynp.array(y)/500 #list转array在缩放#Savitzky-Golay 滤波器实现曲线平滑scipy.signal.savgol_filter(y, window_length, polyorder)y--为要滤波的信号window_length--即窗口长度取值为奇数且不能超过len(x)。它越大则平滑效果越明显越小则更贴近原始曲线。polyorder--为多项式拟合的阶数。它越小则平滑效果越明显越大则更贴近原始曲线。y savgol_filter(y, 55, 1, mode nearest)# 可视化图线plt.plot(x, y,g)plt.show() 5 设置图题、图例、字体、网格、保存曲线图
from matplotlib import pyplot as plt
import csv
import glob
from os.path import basename
import numpy as np# 使用Savitzky-Golay 滤波器后得到平滑图线
from scipy.signal import savgol_filter#dpi参数指定绘图对象的分辨率即每英寸多少个像素 ;figsize:指定figure的宽和高单位为英寸
figplt.figure(dpi 80, figsize(15,8))#设置标题
plt.title(Train_loss,fontsize 25) #标题
plt.xlabel(Iterations, fontsize 25) #横坐标
plt.ylabel(Loss, fontsize 25) #纵坐标files sorted(glob.glob(D:/python/pltt/train_loss.csv)) #读取目录下所有以.csv结尾的文件这里可以添加绝对路径
for file in files:filename basename(file).rsplit(., 1)[0] #用.来分割文件名取前半部分例如XX.csv取XX print(\r filename , flush True) with open(file) as f: csvreader csv.reader(f, delimiter ,, quotechar) for line in range(1): #1代表从文件第2行开始读取next (csvreader) print(lines: ,line) #打印行数x [] y [] #横纵坐标分别建立了两个listfor row in csvreader:x.append(float(row[1])) #读取第2、3列数据 y.append(float(row[2])) #读取数据放入list #设置横纵坐标显示范围# plt.xlim((0,90000))#横轴范围# plt.ylim((0,200)) #纵轴范围plt.tick_params(labelsize20)#设置坐标刻度值的字体大小ynp.array(y)/500 #list转array再缩放否则报错#Savitzky-Golay 滤波器实现曲线平滑scipy.signal.savgol_filter(y, window_length, polyorder)y--为要滤波的信号window_length--即窗口长度取值为奇数且不能超过len(x)。它越大则平滑效果越明显越小则更贴近原始曲线。polyorder--为多项式拟合的阶数。它越小则平滑效果越明显越大则更贴近原始曲线。y_smooth savgol_filter(y, 55, 1, mode nearest)# 可视化图线plt.plot(x, y_smooth,g, label %s % filename, linewidth3.0)#plt.legend()函数的作用是给图像加图例。plt.legend(frameonTrue,locupper right,fontsize25) #分别为图例有边框、图例放在右上角、图例大小#plt.grid()#添加网格plt.savefig(D:/python/pltt/Train_loss .png,dpi 80) #保存了绘制的图像 print(Done processing str(len(files)) files.) plt.grid()#添加网格
plt.show() 6 补充
6.1 python 曲线平滑处理——方法总结-详解
python 曲线平滑处理——方法总结(Savitzky-Golay 滤波器、make_interp_spline插值法和convolve滑动平均滤波)
6.2 Tensorboard可视化训练曲线导出数据用Python绘制
Tensorboard可视化训练曲线导出数据用Python绘制
6.3 PyTorch可视化工具-Tensorboard在线查看训练曲线、网络结构图等
Tensorboard在线查看训练曲线、网络结构图等
6.4 PyTorch常用小工具-Tensorboard、Summary、Profiler
PyTorch常用小工具-Tensorboard、Summary、Profiler
7 源码下载、曲线数据下载
曲线数据表、源代码、曲线图 下载