精度查看方法
本节我们介绍一种借助开源的可视化工具Octave分析相对误差的方法。
首先需要做好以下准备工作:
- 构造数据:真实值和测量值,真实值通常使用numpy数据作为标杆,测量值则是算子的实际输出,两个数值都可以通过ST用例生成。
- 准备分析工具:在官网下载Octave工具并安装,下载地址:https://www.gnu.org/software/octave/download.html。
以下表数据为例,介绍使用Octave工具进行相对误差分析的方法。
图1 data.csv数据示例
- 执行如下命令载入数据。
m = dlmread('data.csv', ',');
将文件中的数据载入矩阵m,data.csv是数据文件的名称, ','是文件分隔符。
- 读取数据。
input = m(4:8940, 7); //读取第7列的全部数据 gpu_output = m(4:8940, 13); //读取第13列全部数据 model_output = m(4:8940, 19); //读取第19列全部数据
- 计算误差。
gpu_diff = abs(model_output - gpu_output); //计算绝对误差 gpu_error = gpu_diff / gpu_output; //计算相对误差
此处gpu_output是真实值,model_output是测量值。
- 进行可视化。
plot(input, gpu_error, 'o'); xlabel('x'); //x轴标签 ylabel('value'); //y轴标签 title(''Diff of model and cpu or gpu); //title hold on; //在同一张上面再次绘制 plot(x, cpu_error, 'o'); //这里省略了cpu_error的计算过程,和gpu_error同理 hold off; Axis([0 1 -0.002 0.002]); //x y 轴区间 legend('gpu_error', 'cpu_error'); //对颜色注释
可视化结果如下图所示。
图2 Octave工具可视化结果示例
父主题: TBE算子精度优化