tensorboard平滑曲线代码
“tensorboard提供了下载借口,可以下载没有经过平滑后的数据,但是之前说了,没有平滑的曲线非常的不好看,现在我们需要做的是将下载下来的原始数据在本地进行平滑“”。代码如下:
import pandas as pd
import numpy as np
import os
def smooth(csv_path,weight=0.85): #weight是平滑度,tensorboard 默认0.6
data = pd.read_csv(filepath_or_buffer=csv_path,header=0,names=['Step','Value'],dtype={'Step':np.int,'Value':np.float})
scalar = data['Value'].values
last = scalar[0]
smoothed = []
for point in scalar:
smoothed_val = last * weight + (1 - weight) * point
smoothed.append(smoothed_val)
last = smoothed_val
save = pd.DataFrame({'Step':data['Step'].values,'Value':smoothed})
save.to_csv('smooth_'+csv_path)
if __name__=='__main__':
smooth('test.csv')
多方参考最终形成自己版本:
clear; close all; clc;
%importdata 函数允许加载各种数据的不同格式的文件
data=importdata('smooth_unet.csv'); %读取csv数据文件
plot(data.data(:,2), data.data(:,3)/max(data.data(:,3)),'color', [0.67 0 1], 'LineWidth',2)
set(gca,'xlim',[0,200000],'xtick',[0, 50000, 100000, 150000, 200000], 'xticklabel',{'0', '50k', '100k', '150k', '200k'});
set(gca,'ylim',[-0.1,0.9],'ytick',[-0.1,0.1, 0.3, 0.5,0.7,0.9], 'yticklabel',{'0', '0.2', '0.4', '0.6', '0.8','1.0'});
% R2014b之前版本设置坐标轴和显示
xlabel('Number of iterations', 'FontSize',13); % 标签和字体大小
ylabel('Normalized loss','FontSize',13);
set(gcf,'color','white') % 去掉周围灰边
set(gca,'FontSize',13); % 坐标轴刻度的字体大小
print(gcf,'unet','-dtiff','-r300') % 保存图片并设置分辨率