文档
注册

AI CPU算子ST测试用例定义文件参数解释

表1 AI CPU算子ST测试用例定义json文件

参数

说明

Test_xxx_xx

-

必选。string类型。

测试用例的名称。

Input[xx]

-

必选。

算子的输入。

须知:

一个算子所有Input中参数取值的个数都要一致,否则测试用例生成会失败。

例如:Input[01]的format支持的类型个数2,则Input[02]的format支持的类型个数也需要为2。

同理,所有Input[xx]中的type、shape、data_distribute和value_range的取值个数也需要保持一致。

-

Name

必选。

算子输入的名称,string类型。

若配置期望函数,则算子输入的名称需与期望函数中输入的名称保持完全一致。

-

Format

必选。

String或者String的一维数组。

输入tensor数据的排布格式,不允许为空。

常见的数据排布格式如下:

  • NCHW
  • NHWC
  • ND:表示支持任意格式。
  • NC1HWC0:华为自研的5维数据格式。其中,C0与微架构强相关,该值等于cube单元的size,例如16;C1是将C维度按照C0切分:C1=C/C0, 若结果不整除,最后一份数据需要padding到C0。
  • FRACTAL_Z:卷积的权重的格式。
  • FRACTAL_NZ:华为自研的分形格式,在cube单元计算时,输出矩阵的数据格式为NW1H1H0W0。整个矩阵被分为(H1*W1)个分形,按照column major排布,形状如N字形;每个分形内部有(H0*W0)个元素,按照row major排布,形状如z字形。考虑到数据排布格式,将NW1H1H0W0数据格式称为Nz格式。其中,H0,W0表示一个分形的大小,示意图如下所示:

  • RESERVED:预留,当Format配置为该值,则type必须配置为“UNDEFINED”,代表算子的此输入可选。

注意,Format、Type和Shape的数量需保持一致。

-

OriginFormat

可选。Tensor的原始format。

不带此字段时,默认Tensor的实现format与原始format一致。

-

Type

必选。

String或者String的一维数组。

输入数据支持的数据类型。

  • bool
  • int8
  • uint8
  • int16
  • uint16
  • int32
  • int64
  • uint32
  • uint64
  • float16
  • float
  • double
  • complex64
  • complex128
  • UNDEFINED:当输入类型为可选时。

注意,Format、Type和Shape的数量需保持一致。

-

Shape

必选。

int类型,一维或者二维数组。

输入tensor支持的形状。

例如:

[8, 3, 256, 256]或[[1, 3, 256, 256], [8, 3, 256, 256]]。

若输入非法的形状会报错,例如:[0]。

注意,Format、Type和Shape的数量需保持一致。

-

OriginShape

可选。Tensor的原始shape。

不带此字段时,默认Tensor的实现shape与原始shape一致。

-

Value

可选。

路径String或者Tensor数组。

若用户需要指定输入数据时,可通过增加“Value”字段进行配置。有如下两种配置方式:

直接输入tensor数据,如tensor的值为[1,2,3,4]。

"Value": [1,2,3,4]

输入二进制数据文件的路径,如数据文件为test.bin时。

"Value": "home/HiHwAiUser/projects/test.bin"

二进制数据bin文件需用户自己准备。可以输入绝对路径。若用户添加了“Value”字段,“DataDistribute”和“ValueRange”字段将会被隐藏。同时需要保证“Format”,"Type","Shape"字段的值与“Value”数据一致。

-

ValueRange

必选。

int类型或者float类型,一维或者二维数组。

取值范围,不能为空。

为[min_value, max_value]且min_value <=max_value。

-

DataDistribute

必选。

String或者String的一维数组。

使用哪种数据分布方式生成测试数据,支持的分布方式有:
  • uniform:返回均匀分布随机值
  • normal:返回正态分布(高斯分布)随机值
  • beta:返回Beta分布随机值
  • laplace:返回拉普拉斯分布随机值
  • triangular:返回三角形分布随机值
  • relu:返回均匀分布+Relu激活后的随机值
  • sigmoid:返回均匀分布 + sigmoid激活后的随机值
  • softmax:返回均匀分布 + softmax激活后的随机值
  • tanh:返回均匀分布 + tanh激活后的随机值

-

isConst

可选。

bool类型,默认为false。

  • true:若用户需要配置常量输入的用例,则配置该字段,并且其值为true。
  • false:若该字段值为false,则需要配置张量输入用例。

Output[xx]

-

必选。

算子输出。

须知:

Output中参数取值的个数都要与Input一致,否则测试用例生成会失败。

例如:Input的format支持的类型个数2,则Output的format支持的类型个数也需要为2。

-

Name

必选。

算子输入的名称,string类型。

若配置期望函数,则算子输出的名称与期望函数中输出的名称需保持完全一致。

-

Format

必选。

String或者String的一维数组。

输出tensor数据的排布格式,不允许为空。

常见的数据排布格式如下:

  • NCHW
  • NHWC
  • ND:表示支持任意格式。
  • NC1HWC0:华为自研的5维数据格式。其中,C0与微架构强相关,该值等于cube单元的size,例如16;C1是将C维度按照C0切分:C1=C/C0, 若结果不整除,最后一份数据需要padding到C0。
  • FRACTAL_Z:卷积的权重的格式。
  • FRACTAL_NZ:华为自研的分形格式,在cube单元计算时,输出矩阵的数据格式为NW1H1H0W0。整个矩阵被分为(H1*W1)个分形,按照column major排布,形状如N字形;每个分形内部有(H0*W0)个元素,按照row major排布,形状如z字形。考虑到数据排布格式,将NW1H1H0W0数据格式称为Nz格式。其中,H0,W0表示一个分形的大小,示意图如下所示:

注意,Format、Type和Shape的数量需保持一致。

-

OriginFormat

可选。Tensor的原始format。

不带此字段时,默认Tensor的实现format与原始format一致。

-

Type

必选。

String或者String的一维数组。

输出数据支持的数据类型:

  • bool
  • int8
  • uint8
  • int16
  • uint16
  • int32
  • int64
  • uint32
  • uint64
  • float16
  • float
  • double
  • complex64
  • complex128

注意,Format、Type和Shape的数量需保持一致。

-

Shape

必选。

int类型,一维或者二维数组。

输入tensor支持的形状。

例如:

[8, 3, 256, 256]或[[1, 3, 256, 256], [8, 3, 256, 256]]。

若输入非法的形状会报错,例如:[0]。

注意,Format、Type和Shape的数量需保持一致。

-

OriginShape

可选。Tensor的原始shape。

不带此字段时,默认Tensor的实现shape与原始shape一致。

Attribute

-

可选。

-

Name

若配置attr,则为必选。

string类型。

属性的名称,不为空。

-

Type

若配置attr,则为必选属性支持的类型。

string类型。

输出数据支持的数据类型:

  • bool
  • int
  • float
  • string
  • list_bool
  • list_int
  • list_float
  • list_string
  • list_list_int

-

Value

若配置attr,则为必选,且不允许为null。

string类型。

属性值,根据type的不同,属性值不同。

  • bool: true/false
  • int: 10
  • float: 1.0
  • string: “NCHW”
  • list_bool: [false, true]
  • list_int: [1, 224, 224, 3]
  • list_float: [1.0, 0.0]
  • list_string: [“str1”, “str2”]
  • list_list_int: [[1, 3, 5, 7], [2, 4, 6, 8]]

Expected Result Verification

-

可选。

-

Script Path

算子期望数据生成函数路径。

-

Script Function

算子期望数据生成函数名称。

K-Level Test Cases

-

可选。

-

Fuzz Script Path

可选。

路径String类型。

fuzz生成测试参数的脚本路径的绝对路径或者相对路径。

-

Fuzz Case Num

可选。

int类型。

利用fuzz脚本生成测试用例数量,范围为1-2000。

-

Fuzz Function

可选。

String类型。

fuzz脚本中生成fuzz输入的函数名,默认为:“fuzz_branch”。

  • 当算子信息定义文件(*.ini)中inputx.paramType=optional时,生成的算子测试用例中inputx的"format"需配置为"UNDEFINED"或"RESERVED","type"为"UNDEFINED"。
  • 算子信息定义文件(*.ini)Tensor的实现format中包含华为自研数据格式,且Tensor的实现format与原始format不同时,用户需在"OriginFormat"和"OriginShape"中填入原始format和shape,将OriginFormat与OriginShape转成离线模型需要的format与shape。
    • "OriginFormat"输入为原始算子支持的数据格式,个数必须与"Format"个数保持一致。
    • "OriginShape"的输入值必须与"Shape"一一对应,且与"Format"和"OriginFormat"格式相匹配。
  • Input[xx]、Output[xx]、Attr中除了name和Attr的Type以外的所有参数均支持fuzz输入。
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词