平滑处理loss曲线

10 篇文章 0 订阅

两种方式:
1、
直接取10个点的均值进行绘制,无中间步骤
(大致是这个意思,具体参考哪个博客找不到了)

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

loss=np.loadtxt('iter+loss.txt')#log文件
#loss=np.loadtxt('smoothloss.txt')#log文件


#第一列iter,第二列loss
x=loss[:,0]
y=loss[:,1]

fig=plt.figure(figsize=(7,5))

pd.Series(y,x).plot(label='loss')#原始曲线
pd.Series(y,x).ewm(span=10).mean().plot(label='smoth loss')#平滑后曲线

plt.show()

输出图像:
在这里插入图片描述

2、
smoothed_val=last*weight+(1-weight)*loss#核心公式

先对数据进行处理,在用处理好的数据绘制曲线
代码:

import pandas as pd
import numpy as np
import os

fp=open('iter+loss.txt',"r", encoding='utf-8')

weight=0.85
last=0.0146

for line in fp.readlines():
    iter=line.split(' ')

    loss=line[-7:-1]
    #print(loss)
    loss=float(loss)
    #print(type(loss))#str-->float
    smoothed_val=last*weight+(1-weight)*loss#核心公式
    last=smoothed_val
    
    with open('smoothloss.txt','a') as fp2:
        fp2.write(iter[0]+' '+str(smoothed_val)+'\n')
fp.close()

处理前:
在这里插入图片描述
处理后:
在这里插入图片描述

输出图像:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值