画loss曲线图并使其平滑,做滤波处理

import numpy as np
import  matplotlib.pyplot as plt
import pandas as pd
# 读取存储为txt文件的数据
def data_read(dir_path):
    with open(dir_path, "r") as f:
        raw_data = f.read()
        # data = raw_data[1:-1].split(" ,")   # [-1:1]是为了去除文件中的前后中括号"[]"
        data = raw_data[0:-1].split()  # [-1:1]是为了去除文件中的前后中括号"[]"
        # data =
        data = np.asfarray(data, float)
    return data

def moving_average(interval, windowsize):
    window = np.ones(int(windowsize)) / float(windowsize)
    re = np.convolve(interval, window, 'same')
    return re
if __name__ == "__main__":
    train_loss_path = r"output_l.txt"  # 存储文件路径
    rolling_intv = 50

#/*
    y_train_loss = data_read(train_loss_path)  # loss值,即y轴
    y_train_loss = pd.DataFrame(y_train_loss)
    y_train_loss = list(np.hstack(y_train_loss.rolling(rolling_intv, min_periods=1).mean().values))
#*/
    # y_train_loss = data_read(train_loss_path)
    # y_train_loss = moving_average(y_train_loss, 2)
    x_train_loss = range(len(y_train_loss))  # loss的数量,即x轴

    plt.figure()

    # 去除顶部和右边框框
ax = plt.axes()
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)

plt.xlabel('iters')  # x轴标签
plt.ylabel('loss')  # y轴标签

# 以x_train_loss为横坐标,y_train_loss为纵坐标,曲线宽度为1,实线,增加标签,训练损失,
# 默认颜色,如果想更改颜色,可以增加参数color='red',这是红色。
plt.plot(x_train_loss, y_train_loss, linewidth=1, linestyle="solid", label="val loss")
plt.xlim(0, 300)
plt.legend()
plt.title('Loss curve')
plt.show()
plt.savefig("loss.png")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值