plt将tensorboard几张loss图合为一张的代码

本文介绍了一个使用Python的Matplotlib和NumPy库从CSV文件中读取数据并绘制损失函数图表的方法。通过定义一个读取CSV文件的函数,该程序能够处理特定格式的数据,并将训练次数与对应的损失值用图表展示出来。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
from matplotlib.font_manager import FontProperties
import csv

'''读取csv文件'''

def readcsv(files):
    csvfile = open(files, 'r')
    plots = csv.reader(csvfile, delimiter=',')
    x = []
    y = []
    for row in plots:
        y.append(float(row[2]))
        x.append(float(row[1]))
    return x, y

mpl.rcParams['font.family'] = 'sans-serif'
mpl.rcParams['font.sans-serif'] = 'NSimSun,Times New Roman'

plt.figure()
x2, y2 = readcsv("./g_loss.csv")
plt.plot(x2, y2, color='darkorange', label='g_loss')
# plt.plot(x2, y2, '.', color='red')

# x, y = readcsv("dloss.csv")
# plt.plot(x, y, 'g', label='Without BN')
#
# x1, y1 = readcsv("gloss.csv")
# plt.plot(x1, y1, color='black', label='Without DW and PW')

x4, y4 = readcsv("./d_loss.csv")
plt.plot(x4, y4, color='mediumblue', label='d_loss', linestyle='dashed')

plt.xticks(fontsize=16)
plt.yticks(fontsize=16)

plt.ylim(0, 40)
plt.xlim(0, 18000)


#设置横纵坐标的名称以及对应字体格式
font2 = {'family' : 'Times New Roman',
'weight' : 'normal',
'size'   : 20,
}
font_set = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=20)    # matplotlib内无中文字节码,需要自行手动添加
plt.xlabel('训练次数',  font2, fontproperties=font_set)
plt.ylabel('loss值',  font2, fontproperties=font_set)

#设置图例并且设置图例的字体及大小
font1 = {'family' : 'Times New Roman',
'weight' : 'normal',
'size'   : 23,
}
plt.legend(fontsize=16, prop=font1)

# 设置汉字显示正确
# plt.rcParams['font.sans-serif'] = ['SimHei']
# plt.rcParams['axes.unicode_minus'] = False
# 设置保存完全的图
plt.tight_layout()
plt.savefig('loss.png')
plt.show()

结果图:

 

 

<think>嗯,用户想找关于Adam优化器的表或示意。首先,我需要回忆Adam优化器的基本原理,比如自适应学习率、动量项等,这样在解释表时才能准确。然后,我应该考虑常见的表类型,比如收敛曲线、参数更新路径比较,或者是梯度更新过程的示意。 接下来,用户可能需要知道在哪里能找到这些表。学术论文和教材应该是个好来源,比如Goodfellow的《深度学习》或者原论文。另外,像Towards Data Science、Machine Learning Mastery这样的技术博客通常会有直观的示。在线课程比如Coursera的机器学习课程也可能有相关表。 同时,用户可能需要自己生成表,这时候应该推荐他们使用Python库如Matplotlib或Plotly来绘制学习率变化、损失曲线等。另外,机器学习框架如TensorFlow的TensorBoard可能有内置的可视化工具,可以展示训练过程中的参数变化。 还要注意引用的问题,用户提供的引用中有几个来源可能相关,比如引用[2]的GeeksforGeeks可能有相关文章,引用[3]的会议论文列表里可能有Adam的原论文或其他优化方法的比较。需要检查这些引用是否确实包含Adam的内容,如果引用中的资料不相关,可能需要建议其他资源,比如原论文或权威教材。 另外,用户的问题是关于表,可能需要区分理论示意和实际训练中的可视化。比如,参数空间中的路径属于理论示意,而训练损失曲线则是实际应用中的表。要确保回答中涵盖这两种类型,并指导用户如何获取或生成。 最后,要生成相关问题,可能涉及Adam与其他优化器的比较、超参数调整、实际应用中的问题等。这些问题需要自然延伸当前主题,帮助用户进一步探索。</think>关于Adam优化器的表和示意获取途径及解读: ### 一、核心表类型 1. **参数更新路径示意** - 展示Adam在非凸函数优化中的路径轨迹,对比SGD、RMSProp等优化器 - 特点:在参数空间中显示带有动量修正和自适应学习率的更新方向[^1] 2. **学习率自适应过程** - 呈现不同参数对应的学习率缩放过程: $$ \hat{m}_t = \frac{m_t}{1-\beta_1^t} $$ $$ \hat{v}_t = \frac{v_t}{1-\beta_2^t} $$ $$ \theta_{t+1} = \theta_t - \frac{\eta}{\sqrt{\hat{v}_t} + \epsilon} \hat{m}_t $$ [^2] 3. **收敛速度对比** - 常用损失函数曲线,展示Adam与其他优化器的收敛速度差异 ### 二、获取途径 1. **学术资源**: - 原始论文《Adam: A Method for Stochastic Optimization》中的收敛性证明示意 - Goodfellow《深度学习》第8章优化章节 2. **技术博客**: - Towards Data Science的交互式优化器对比文章 - Machine Learning Mastery的优化器可视化专题 3. **可视化工具**: ```python import matplotlib.pyplot as plt from keras.optimizers import Adam # 绘制学习率变化曲线 epochs = range(1,101) lr = [Adam(learning_rate=0.001).lr * (1./(1. + 0.01*e)) for e in epochs] plt.plot(epochs, lr) ``` ### 三、典型应用示意案例 1. **梯度更新方向修正**: - 展示动量项对梯度方向的修正过程 - 包含一阶矩估计和二阶矩估计的指数移动平均过程 2. **超参数敏感性**: - β1(默认0.9)和β2(默认0.999)对训练过程的影响 - 不同ε值(1e-8到1e-4)下的收敛稳定性对比 建议通过TensorBoard的优化器分析模块获取实时训练可视化: ```python from torch.utils.tensorboard import SummaryWriter writer = SummaryWriter() # 在训练循环中记录参数 for epoch in epochs: writer.add_scalar('Loss/train', loss, epoch) ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值