---
title: 精度查看方法
description: "本节我们介绍一种借助开源的可视化工具Octave分析相对误差的方法。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/others/tbeaicpudevg/atlasopdev_10_0110.html
sourcePath: /source/zh/canncommercial/900/others/tbeaicpudevg/atlasopdev_10_0110.html
indexId: 2fac74ad5cdea4191fd5eacb246754a3f2cdc99ff3a3e5f0f0ed08706386ce3f73
---
# 精度查看方法

本节我们介绍一种借助开源的可视化工具Octave分析相对误差的方法。

首先需要做好以下准备工作：

- 构造数据：真实值和测量值，真实值通常使用numpy数据作为标杆，测量值则是算子的实际输出，两个数值都可以通过ST用例生成。
- 准备分析工具：在官网下载Octave工具并安装。

以下表数据为例，介绍使用Octave工具进行相对误差分析的方法。

图1 data.csv数据示例

1. 执行如下命令载入数据。

```
m = dlmread('data.csv',
','
);
```


  将文件中的数据载入矩阵m，data.csv是数据文件的名称， ','是文件分隔符。

2. 读取数据。

```
input = m(4:8940, 7);                       //读取第7列的全部数据
gpu_output = m(4:8940, 13);          //读取第13列全部数据
model_output = m(4:8940, 19);      //读取第19列全部数据
```


3. 计算误差。

```
gpu_diff = abs(model_output - gpu_output);                        //计算绝对误差
gpu_error = gpu_diff / gpu_output;                                   //计算相对误差
```


  此处gpu_output是真实值，model_output是测量值。

4. 进行可视化。

```
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工具可视化结果示例
