【TBE算子开发】数据可视化分析(Octave)
可视化(Visualization):
为了清晰有效地传递信息,数据可视化使用统计图形、图表、信息图表和其他工具。可以使用点、线或条对数字数据进行编码,以便在视觉上传达定量信息。
有效的可视化可以帮助用户分析和推理数据和证据。它使复杂的数据更容易理解、理解和使用。
Visualization的定义我盗用维基上的几句话,就不做具体展开。
至于工具的使用如webGL OpenGL DirectX 这些三维图形库。或者简单的CSS+javaScript 的二维图形变化等。甚至OpenCV库也可。
从不那么底层的角度,推荐Matlab、Octave或者python下的numpy和matplotlib库。都可达到绘制好看的图表的效果。
这里我简单介绍下Octave的使用。Octave是个科学计算的工具,可以当成轻量级的matlab,关键它是免费。(在stanford教授吴恩达关于机器学习的公开课中被强推)
可以在官网直接下载。
https://ftp.gnu.org/gnu/octave/
https://www.gnu.org/software/octave/download.html
详细使用方法见附件。
这里介绍基本的数据处理和图表的绘制(可视化)。
首先读取数据
load data.txt
m = load('data.txt')
存储数据
save data.txt m
save('data.txt', m)
这里要求data.txt 里面是数据的矩阵,不允许字符串的出现。
而在实际处理.xlsx数据肯定有许多字符串类型。
因此这里推荐一个 dlmread指令。(也有xlsread可以读取excel表格,具体使用和配置自己google)
首先把xslx要读取的数据的sheet转成csv格式(注意转csv格式只会保存当前页) 或文本文件,或者Unicode文本
然后用
m = dlmread('data.txt', '\t');(ps第一个是文件名, 第二个是分隔符,默认读取好像是制表符分隔,这里可省略'\t')
m = dlmread('data.csv', ',');
然后m就存成了excel表的矩阵。(矩阵中数字存成double的数据,非数字的全都为0)
假设上述是我们的表格。我要读取上述两列的全部数据
Input = m(:, 7); (第7列全部)
GpuOutput = m(:, 13); (第13列全部)
若是要读取第七列和十三列的4-8940行的数据
则
Input = m(4:8940, 7);
GpuOutput = m(4:8940, 13);
//处理数据
model = m(4:8940, 19);
Diff_Gpu = model - GpuOutput;
for i = 1:8937
Diff_Gpu(i) = Diff_Gpu(i)/GpuOutput(i);
/***********************************************/
Diff_Cpu同理
/**********************************************/
然后绘制
plot(x, Diff_Gpu, 'o'); (Input为x轴,GpuOutput为y轴,用圆圈绘制)
xlabel('x'); //x轴标签
ylabel('value');//y轴标签
title(''Diff of model and cpu or gpu); //title
hold on; //在同一张上面再次绘制
plot(x, Diff_Cpu, 'o');
hold off;
Axis([0 1 -0.002 0.002]); //x y 轴区间
legend('Diff2Gpu', 'Diff2Cpu'); //对颜色注释
最终如下图
我们可以用上述功能实现图表的可视化分析。
也支持三维函数的可视化。如下:
更多精彩内容,请访问昇腾开发者社区
- 点赞
- 收藏
- 关注作者
评论(0)