提问 发文

根据tensorboard输出的csv文件画图

微微菌

| 2024-03-11 14:51 135 0 0

# -*- coding: utf-8 -*-
"""
Created on Sun Apr 4 10:05:28 2021

@author: 奥利给
"""

import csv
import matplotlib.pyplot as plt
import pandas as pd
import matplotlib.pyplot as plt
import time
import numpy as np
import os

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['font.family']='sans-serif'
#解决负号'-'显示为方块的问题
plt.rcParams['axes.unicode_minus'] = False
#-----以上为定义, 不要管他

def read_csv_xy(path):
'''
此函数用来读取tensorboard生成的csv文档并且根据步数返回对应loss值
'''
exampleFile = open(path) # 打开csv文件
exampleReader = csv.reader(exampleFile) # 读取csv文件
exampleData = list(exampleReader) # csv数据转换为列表
length_zu = len(exampleData) # 得到数据行数
length_yuan = len(exampleData[0]) # 得到每行长度

# 建立两个空list
x = []#list()
y = []#list()

for i in range(1, length_zu): # 从第二行开始读取
x.append(int(exampleData[i][1])) # 将第一列数据从第二行读取到最后一行赋给列表x
y.append(float(exampleData[i][2])) # 将第二列数据从第二行读取到最后一行赋给列表
return x,y

def draw_plot(path,label1,i):
i = int(i)
path1 = path
x1,y1 = read_csv_xy(path1)
# path2 = 'run-Apr05_14-51-39_deyiwang-desktop-tag-val_GIoU.csv'
# x2,y2 = read_csv_xy(path2)
# path3 = 'run-03-28_09-46-59_valid_Loss_group_valid_loss-tag-valid_Loss_group.csv'
# x3,y3 = read_csv_xy(path3)

plt.figure(i)
#点线图
plt.plot(x1, y1, line, color='black', linewidth=1.5, label = label1)
# plt.plot(x2, y2, line, color='red', marker='', linewidth=1.5, label = "loss-2")
# plt.plot(x3, y3, line, color='blue', marker='', linewidth=1.5, label = "loss-3")

#点图
plt.title(u"Loss变化曲线",size=10)
plt.legend()
plt.xlabel(u'时间点(点数)',size=10)
plt.ylabel(u'损失值',size=10)
#在展示图片前可以将画出的曲线保存到自己路径下的文件夹中
new_name = path1[:-4] + '.jpg'
plt.savefig(new_name)
# plt.show()
print ("all picture is starting")


if __name__=='__main__':


path = 'csv'
names = os.listdir(path)
i = 1
for name in names:
name = os.path.join(path,name)
if 'val' in name:
i += 1
print(name,'Val')
label1 = 'Val-loss'
draw_plot(name,label1,i)

elif 'Train' in name:
i += 1
print(name,'Train')
label1 = 'Train-loss'
draw_plot(name,label1,i)




收藏 0
分享
分享方式
微信

评论

游客

全部 0条评论

轻松设计高效搭建,减少3倍设计改稿与开发运维工作量

开始免费试用 预约演示

扫一扫关注公众号 扫一扫联系客服

©Copyrights 2016-2022 杭州易知微科技有限公司 浙ICP备2021017017号-3 浙公网安备33011002011932号

互联网信息服务业务 合字B2-20220090

400-8505-905 复制
免费试用
微信社区
易知微-数据可视化
微信扫一扫入群