【训练数据可视化】从多个json文件提取出分散保存参数值并绘图可视化

主要参考

简介

训练过程某些参数保存在多个json文件中,本博文主要介绍了如何将这些数据可视化化显示。

 图1 训练过程中保存的在json文件中的参数                                       

  图2 json文件中的参数

 

图3 多个json文件保存参数的最终可视化效果

代码

【完整工程含json文件】https://github.com/zxy2020/read_and_draw_json_data

import json
import os
import matplotlib.pyplot as plt

#读取并解析json数据
def get_all_fid(fid_dirs):
    fids_jsons = os.listdir(fid_dirs)
    # fids_jsons = fids_jsons.sort()
    fid_keys = ["FID_latent/young2old", "FID_latent/old2young", "FID_latent/mean"]  # json文件内的关键字段

    FID_latent_young2old = []
    FID_latent_old2young = []
    FID_latent_mean = []

    for fid in fids_jsons:
        if fid[-5:] != '.json':  # 如果文件后缀不是json文件,跳过
            continue
        print(fid)
        path_fid_json = os.path.join(fid_dirs, fid)
        file = open(path_fid_json)
        fileJson = json.load(file)
        # print(fileJson)
        keys = list(fileJson.keys())    # 获取json中所有的键值
        values = list(fileJson.values())

        if fid_keys[0] in keys:
            FID_latent_young2old.append(fileJson[fid_keys[0]])
        if fid_keys[1] in keys:
            FID_latent_old2young.append(fileJson[fid_keys[1]])
        # if fid_keys[2] in keys:
        #     FID_latent_mean.append(fileJson[fid_keys[2]])

    return FID_latent_young2old, FID_latent_old2young,len(fids_jsons)


def draw(x, y, y2, label1, label2, c1='b',c2='r'):
    plt.plot(x, y, label=label1, color=c1)
    plt.plot(x, y2, label=label2, color=c2)

#主函数
if __name__ == "__main__":
    fid_dirs = './json'  # 修改成自己的目录
    FID_latent_young2old, FID_latent_old2young,number_of_jsons= get_all_fid(fid_dirs)
    x = [x * 8000 for x in range(1, number_of_jsons+1)]  #这些json是迭代8000次生成,坐标值可根据实际随意,但是要与json文件个数对应,本博客使用的是10
    draw(x, FID_latent_young2old, FID_latent_old2young, label1="fid_young2old", label2="fid_old2young")
    plt.legend()  # 将线的注解label1,label2显示在图上
    savename= "FID_latent_across_iters"
    plt.title(savename)   #给图添加标题
    plt.savefig(savename + ".png", dpi=120)
    plt.show()  #显示在在保存后面,否则保存是空白图

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曾小蛙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值