《人工智能 科学计算 共性算子功能要求》_第1页
《人工智能 科学计算 共性算子功能要求》_第2页
《人工智能 科学计算 共性算子功能要求》_第3页
《人工智能 科学计算 共性算子功能要求》_第4页
《人工智能 科学计算 共性算子功能要求》_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ICS35.040

CCSL71

团体标准

T/CESAXXXX—202X

人工智能科学计算共性算子功能要求

Artificialintelligence-Scientificcomputing-Functionalrequirements

ofcommonoperators

征求意见稿

在提交反馈意见时,请将您知道的相关专利连同支持性文件一并附上。

已授权的专利证明材料为专利证书复印件或扉页,已公开但尚未授权的专利申请

证明材料为专利公开通知书复印件或扉页,未公开的专利申请的证明材料为专利申请

号和申请日期。

202X-XX-XX发布202X-XX-XX实施

中国电子工业标准化技术协会发布

T/CESAXXXX—202X

人工智能科学计算共性算子功能要求

1范围

本文件规定了人工智能科学计算类算子(主要包括高阶微分、复数操作、傅里叶变换、线性代数、

分数阶微分、积分操作6类)的功能要求。

本文件适用于人工智能算子库的设计、开发与应用,也可用于指导人工智能领域计算框架与算子库

和芯片的系统集成与开发。

2规范性引用文件

下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,

仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本

文件。

GB/T41867-2022信息技术人工智能术语

ISO/IEC2382:2015InformationtechnologyVocabulary

IEEE2941.1-2022IEEEStandardforOperatorInterfacesofArtificialIntelligence

3术语和定义

GB/T41867-2022和IEEE2941.1-2022界定的以及下列术语和定义适用于本文件。

3.1

科学计算sciencecomputing

科学计算是指利用计算机再现、预测和发现客观世界运动规律和演化特性的全过程,包括建立物理

模型,研究计算方法,设计并行算法,研制应用程序,开展模拟计算和分析计算结果等过程。

3.2

共性算子commonoperator

共性算子是指在人工智能科学计算领域中,能够跨越不同科学和工程学科的界限,服务于多种计算

模型和算法的基础计算单元或操作。

4缩略语

下列缩略语适用于本文件。

ASIC:专用集成电路(applicationspecificintegratedcircuit)

CPU:中央处理器(centralprocessingunit)

FPGA:现场可编程门阵列(fieldprogrammablegatearray)

GPU:图形处理器(graphicprocessingunit)

1

T/CESAXXXX—202X

NPU:神经网络处理器(neural-networkprocessingunit)

5约定

5.1起始下标

除特别说明外,约定编号和计数从0开始。

5.2参数顺序

为了方便理解,本文件中的接口函数参数列表采用输入参数在前,输出参数在后方式,实际使用中

不做此要求。

5.3编程语言

接口函数可用多种编程语言实现。

5.4自动广播

本文件不强制要求二元逐元素操作的张量的维度一致,但标准实现者应将低维张量操作数自动广播

以匹配高维张量操作数的维数来完成运算。例如:当其中一个张量操作数的维度为0,也即标量时,

要求标准实现者在操作内部将标量自动广播成和另一个操作数形状相同的张量来完成计算,不限定具体

实现方式,比如可以直接通过专用硬件实现。

5.5错误处理

本文件的接口错误处理原则为对于不可修复错误,直接退出操作,而对于可修复错误,采用返回错

误码方式,由标准使用者决定如何处理错误,返回错误码时应优先返回相对具体的错误码,在没有对应

具体错误码的情况,再返回一般性错误码。本标准规定的错误码见表1。

表1错误码

名称类别

没有错误无

类型不匹配(STATUS_TYPE_MISMATCH)逻辑错误

维度不匹配(STATUS_DIMENSIONS_MISMATCH)逻辑错误

对象未初始化(STATUS_UNINITIALIZED_OBJECT)逻辑错误

非法参数(STATUS_INVALID_ARGUMENT)逻辑错误

内存不足(STATUS_ALLOC_FAILED)运行错误

超出范围(STATUS_OUT_OF_RANGE)运行错误

其他内部错误(STATUS_INTERNAL_ERROR)运行错误

注:本标准允许使用者提供其他自定义的错误返回码。

5.6线程安全

接口函数应该适用于多线程环境:

a)同一个接口函数能够被多线程同时调用;

b)不同线程可以调用不同接口函数序列。如果不存在数据竞争,那么执行顺序可以任意,但是要

保证同一序列的结果与其串行结果一致;如果存在数据竞争,则由调用者负责同步操作,而接口不提供

同步这样的线程管理功能。

2

T/CESAXXXX—202X

5.7张量对象不透明性

张量类对象对接口使用者不透明,需通过对应的句柄和相应的接口函数对其进行管理、访问和操作,

给予标准实现者更大的自由度去为不同的场景和硬件进行优化。

5.8稠密张量和稀疏张量接口一致性

本标准中稠密和稀疏张量的构建操作采用不同的接口,而基于两种张量的各类操作则采用统一的接

口,即不对参数中的张量是否稀疏进行任何假设,但是要求标准实现者在Tensor类中要有标识张量是

否稀疏的成员变量。

5.9量化的支持

5.9.1量化方式

本标准支持对称和非对称两种量化方式。

5.9.2量化数据类型

量化数据类型见表2。

表2量化数据类型

量化数据类型

8位有符号对称量化整数(QT_SYM_INT8)

8位有符号非对称量化整数(QT_ASYM_INT8)

8位有符号通道级对称量化整数(QT_SYM_PER_CHANNEL_INT8)

8位无符号非对称量化整数(QT_ASYM_UINT8)

16位有符号对称量化整数(QT_SYM_INT16)

16位有符号非对称量化整数(QT_ASYM_INT16)

16位有符号通道级对称量化整数(QT_SYM_PER_CHANNEL_INT16)

16位无符号非对称量化整数(QT_ASYM_UINT16)

5.9.3量化的粒度

量化的粒度主要可分为张量级和通道级:

a)张量级量化:张量内部所有数据共享同一个scale。支持的数据类型有:8位有符号对称量化整

数和16位有符号对称量化整数,可选支持8位无符号非对称量化整数、8位有符号非对称量化整数、

16位无符号非对称量化整数和16位有符号非对称量化整数。

b)通道级量化:张量内部同一通道的数据共享同一个scale。支持的数据类型有:8位有符号通道

级对称量化整数和16位有符号通道级对称量化整数。

6数据结构

6.1元素类型

用于描述元素的数据类型。支持无符号整数:8位、16位、32位、64位;有符号整数:8位、16

位、32位、64位;浮点实数:16位、32位、64位;浮点复数:(32+32)位、(64+64)位;布尔类型,

字符串类型等。

3

T/CESAXXXX—202X

6.2形状信息

用于描述张量维数和每一维的大小。如果张量维数为,每一维对应的大小为,则

张量的形状可以表示为,最左边的为第1维,最右边的为第维。例如:标量维数为

��0,�1,�2,…,��−1

0,形状为;向量维数为1,形状为;矩阵维数为,形状为。

[�0,�1,�2,…,��−1]�

6.3布局信[]息[�0]2[�0,�1]

用于描述张量的存储格式以及张量各个维度的逻辑顺序。存储格式包括稠密存储和稀疏存储。逻辑

顺序指张量遍历读取和存储具体数据时,各个维度的优先顺序。

当使用稠密存储时,对于形状为,逻辑顺序为[]的维向量来说,

首先取逻辑顺序中最左边第个元素,对应到当前要遍历的维度,按照的次序存

[�0,�1,�2,…,��−1]�0,�1,�2,…,��−1�

储,其次取逻辑顺序中最左边第个元素,对应到当前要遍历的维度,按照的次

1�0��0(0,1,2,…,��0−1)

序存储,以此类推。例如:张量形状为[2,3],逻辑顺序为[0,1],则先取逻辑顺1序最左侧的第一个元1素,

2�1��(0,1,2,…,��−1)

对应维度,其次取逻辑顺序中的第二个元素,对应维度=,则张量数据物理

�0=0

上第一个元0素对应的坐标为[0,0],第二个元素对应的坐标为[1,0],第三个元素1对应的坐标为[0,1],以此

��=�0=2�1=1���1=3

类推。

当使用稠密存储时,默认的逻辑顺序为[n-1,n-2,…,0]。

当使用稀疏存储时,标准实现者需要对所采用的具体格式进行详细说明。

6.4设备信息

用于描述张量数据存储的设备类型和设备编号。其中设备类型包括CPU、GPU、FPGA、ASIC、

NPU等任何支持AI操作的设备。如果存在多个同类型的设备,可通过指定设备编号来区分。

6.5其它扩展

用于提供自定义的扩展功能,比如内存管理等相关信息。

7科学计算算子接口

7.1接口概述

科学计算算子接口名称和描述见表3。

表3科学计算算子接口概述

接口名称接口描述

高阶微分反向计算雅可比矩阵、海森矩阵、逐元素加法、逐元素减法、逐元素乘法、逐元素除法、逐元素双曲正切

函数运算、逐元素正弦函数运算、逐元素余弦函数运算、逐元素Sigmoid函数运算、矩阵乘法、矩阵幂运算、

张量拷贝、张量拼接、张量扩展、张量删除维度、张量增加维度、张量缩放和偏置、张量重排、张量逐元

素正负判断、张量类型转换、张量切片、张量求和、张量均值

复数操作判断是否是复数、计算相位角、由极坐标表示计算复平面坐标、复数取模、复数转换为实数、实数转化为

复数、复数爱因斯坦求和、以均匀分布随机数创建稠密复数张量、创建元素值全为指定复数的稠密复数张

量、创建元素值全为0+0i的稠密复数张量、复数张量切片

傅里叶变二维离散傅里叶变换、二维离散逆傅里叶变换

线性代数计算一般方阵的特征值与特征向量

4

T/CESAXXXX—202X

分数阶微分数阶微分

积分操作蒙特卡洛积分、高斯积分、梯形公式积分

7.2应用场景

科学计算算子接口应用场景见表4。

表4科学计算算子应用场景

名称场景涉及的算子

流体力学高阶微分、积分操作、线性代数

结构力学分数阶微分、积分操作、线性代数

电磁仿真傅里叶变换、积分操作、线性代数

控制论复数操作、积分操作、线性代数

生命科学高阶微分、积分操作、线性代数

物质科学复数操作、积分操作、线性代数

地质学积分操作、线性代数

气象学复数操作、积分操作、线性代数

空间科学复数操作、积分操作、线性代数

物理学复数操作、积分操作、线性代数、傅里叶变换

计算机图形学积分操作、线性代数

7.3接口列表

7.3.1高阶微分

7.3.1.1反向计算雅可比矩阵

该算子使用反向传播计算函数的雅可比矩阵。

Jacobian对象被创建后,采用惰性求值方法进行计算,对其进行多维索引来获取整个雅可比矩阵或

子矩阵,进行实际求值计算并返回结果。在实际求值的过程中,对计算完毕的子矩阵进行缓存,避免在

后续的索引过程中产生重复计算。该接口的参数列表见表5。

表5反向计算雅可比矩阵参数列表

参数类型参数说明

待微分函数输入要计算雅可比矩阵的函数。此函数的输入参数应该是数组、标量。它应该返回数组或标量。

输入张量输入表示自变量,待微分函数的输入

是否有附加数据输入布尔变量,指待微分函数是否返回一个元组,其中第一个元素是数学函数的输出,第二个

元素是附加数据。

此变量为真表示待微分函数返回的是这样的元组结构,它会正确计算海森矩阵。默认情况

下此变量为假,即假设函数只返回一个纯数值作为输出。

是否是全纯函数输入布尔变量,指示待微分函数是否是全纯函数

雅可比矩阵输出表示计算结果

函数返回值:

——没有错误:操作成功。

5

T/CESAXXXX—202X

——对象未初始化:表示输入张量没有初始化。

——类型不匹配:表示参数的数据类型不一致。

——分配失败:表张量分配空间不足。

——内部错误:表示内部调用出错。

7.3.1.2海森矩阵

该算子用于计算函数的海森矩阵。

Hessian对象被创建后,采用部分惰性求值方法进行计算,对其进行多维索引来获取整个海森矩阵

或子矩阵,进行实际求值计算并返回结果。在实际求值的过程中,对计算完毕的子矩阵进行缓存,避免

在后续的索引过程中产生重复计算。该接口的参数列表见表6。

表6海森矩阵参数列表

参数类型参数说明

待微分函数输入要计算海森矩阵的函数。此函数的输入参数应该是数组、标量。它应该返回数组或标量。

输入张量输入表示自变量,待微分函数的输入

是否有附加数据输入布尔变量,指待微分函数是否返回一个元组,其中第一个元素是数学函数的输出,第二个

元素是附加数据。

此变量为真表示待微分函数返回的是这样的元组结构,它会正确计算海森矩阵。默认情况

下此变量为假,即假设函数只返回一个纯数值作为输出。

是否是全纯函数输入布尔变量,指示待微分函数是否是全纯函数

海森矩阵输出表示计算结果

函数返回值:

——没有错误:操作成功。

——对象未初始化:表示输入张量没有初始化。

——类型不匹配:表示参数的数据类型不一致。

——分配失败:表张量分配空间不足。

——内部错误:表示内部调用出错。

7.3.1.3逐元素加法

正向传播对两个张量逐元素求和。

反向传播对逐元素加法操作的结果C,计算其对A和B的导数。该接口的参数列表见表7。

C=A+B

表7逐元素加法正向传播参数列表

参数类型参数说明

输入张量输入元素类型可以为整数、浮点数

输入张量输入与第一个输入张量在计算上兼容

输出张量输出表示计算结果

表8逐元素加法反向传播的参数列表

参数类型参数说明

输入张量输入关于输出张量的梯度(从网络后续部分传回的)。

输出张量输出关于输入张量A的梯度,与输入的梯度相同。

输出张量输出关于输入张量B的梯度,与输入的梯度相同。

6

T/CESAXXXX—202X

函数返回值:

——没有错误:操作成功。

——对象未初始化:表示输入张量没有初始化。

——类型不匹配:表示参数的数据类型不一致。

——分配失败:表张量分配空间不足。

——内部错误:表示内部调用出错。

注:前向传播参考IEEE2941.1-2022标准中的张量加法操作接口。

7.3.1.4逐元素减法

正向传播对两个张量逐元素求差。

反向传播对逐元素减法操作的结果C,计算其对A和B的导数。该接口正向、反向传播的参数

C=A−B

列表见表9和表10。

表9逐元素减法正向传播参数列表

参数类型参数说明

输入张量输入元素类型可以为整数、浮点数

输入张量输入与第一个输入张量在计算上兼容

输出张量输出表示计算结果

表10逐元素减法反向传播参数列表

参数类型参数说明

输入张量输入关于输出张量的梯度(从网络后续部分传回的)。

输出张量输出关于输入张量A的梯度,与输入的梯度相同。

输出张量输出关于输入张量B的梯度,为输入的梯度的负值。

函数返回值:

——没有错误:操作成功。

——对象未初始化:表示输入张量没有初始化。

——类型不匹配:表示参数的数据类型不一致。

——分配失败:表张量分配空间不足。

——内部错误:表示内部调用出错。

注:前向传播参考IEEE2941.1-2022标准中的张量减法操作接口。

7.3.1.5逐元素乘法

正向传播对两个张量逐元素求乘积。

反向传播对逐元素乘法操作的结果C,计算其对A和B的导数。该接口正向、反向传播的参数

C=A∗B

列表见表11和表12。

表11逐元素乘法正向传播参数列表

参数类型参数说明

输入张量输入元素类型可以为整数、浮点数

输出张量输出与第一个输入张量在计算上兼容

输出张量输出表示计算结果

7

T/CESAXXXX—202X

表12逐元素乘法反向传播参数列表

参数类型参数说明

输入张量输入关于输出张量C的梯度dC:从网络后续部分传回的梯度。

输出张量输出关于输入张量A的梯度,计算为dC*B。

输出张量输出关于输入张量B的梯度,计算为dC*A。

函数返回值:

——没有错误:操作成功。

——对象未初始化:表示输入张量没有初始化。

——类型不匹配:表示参数的数据类型不一致。

——分配失败:表张量分配空间不足。

——内部错误:表示内部调用出错。

注:前向传播参考IEEE2941.1-2022标准中的张量乘法操作接口。

7.3.1.6逐元素除法

正向传播对两个张量逐元素做除法。

反向传播对逐元素除法操作的结果C,计算其对A和B的导数。该接口正向、反向传播的参数

C=A/B

列表见表13和表14。

表13逐元素除法正向传播参数列表

参数类型参数说明

输入张量输入元素类型可以为整数、浮点数

输入张量输入与第一个输入张量在计算上兼容

输出张量输出表示计算结果

表14逐元素除法反向传播参数列表

参数类型参数说明

输入张量输入关于输出张量C的梯度dC:从网络后续部分传回的梯度。

输出张量输出关于输入张量A的梯度,计算为dC/B。

输出张量输出关于输入张量B的梯度,计算为-dC*A/B2。

函数返回值:

——没有错误:操作成功。

——对象未初始化:表示输入张量没有初始化。

——类型不匹配:表示参数的数据类型不一致。

——分配失败:表张量分配空间不足。

——内部错误:表示内部调用出错。

注:前向传播参考IEEE2941.1-2022标准中的张量除法操作接口。

7.3.1.7逐元素双曲正切函数运算

对逐元素双曲正切函数运算操作的结果C,计算其对A的导数。该接口正向、反

向传播的参数列表见表15和表16。

C=tanh(A)

表15逐元素正切函数运算正向传播参数列表

参数类型参数说明

8

T/CESAXXXX—202X

输入张量输入元素类型可以为浮点数

输出张量输出表示计算结果

表16逐元素正切函数运算反向传播参数列表

参数类型参数说明

输入张量输入关于输出张量C的梯度dC:从网络后续部分传回的梯度。

输出张量输出关于输入张量A的梯度,计算为dC*(1+tanh2(A))。

函数返回值:

——没有错误:操作成功。

——对象未初始化:表示输入张量没有初始化。

——类型不匹配:表示参数的数据类型不一致。

——分配失败:表张量分配空间不足。

——内部错误:表示内部调用出错。

注:前向传播参考IEEE2941.1-2022标准中的正切函数接口。

7.3.1.8逐元素正弦函数运算

对逐元正弦函数运算操作的结果C,计算其对A的导数。该接口正向、反向传播的

参数列表见表17和表18。

C=sin(A)

表17逐元素正弦函数运算正向传播参数列表

参数类型参数说明

输入张量输入元素类型可以为浮点数

输出张量输出表示计算结果

表18逐元素正弦函数运算反向传播参数列表

参数类型参数说明

输入张量输入关于输出张量C的梯度dC:从网络后续部分传回的梯度。

输出张量输出关于输入张量A的梯度,计算为dC*cos(A)。

函数返回值:

——没有错误:操作成功。

——对象未初始化:表示输入张量没有初始化。

——类型不匹配:表示参数的数据类型不一致。

——分配失败:表张量分配空间不足。

——内部错误:表示内部调用出错。

注:前向传播参考IEEE2941.1-2022标准中的正弦函数接口。

7.3.1.9逐元素余弦函数运算

对逐元余弦函数运算操作的结果C,计算其对A的导数。该接口正向、反向传播的

参数列表见表19和表20。

C=cos(A)

表19逐元素余弦函数运算正向传播参数列表

参数类型参数说明

输入张量输入元素类型可以为浮点数

9

T/CESAXXXX—202X

输出张量输出表示计算结果

表20逐元素余弦函数运算反向传播参数列表

参数类型参数说明

输入张量输入关于输出张量C的梯度dC:从网络后续部分传回的梯度。

输出张量输出关于输入张量A的梯度,计算为-dC*sin(A)。

函数返回值:

——没有错误:操作成功。

——对象未初始化:表示输入张量没有初始化。

——类型不匹配:表示参数的数据类型不一致。

——分配失败:表张量分配空间不足。

——内部错误:表示内部调用出错。

注:前向传播参考IEEE2941.1-2022标准中的余弦函数接口。

7.3.1.10逐元素Sigmoid函数运算

对逐元素Sigmoid函数运算操作的结果C,计算其对A的导数。该接口正向、

反向传播的参数列表见表21和表22。

C=Sigmoid(A)

表21逐元素Sigmoid函数运算正向传播参数列表

参数类型参数说明

输入张量输入元素类型可以为浮点数

输出张量输出表示计算结果

表22逐元素Sigmoid函数运算反向传播参数列表

参数类型参数说明

输入张量输入关于输出张量C的梯度dC:从网络后续部分传回的梯度。

输出张量输出关于输入张量A的梯度,计算为dC⋅C⋅(1−C)。

函数返回值:

——没有错误:操作成功。

——对象未初始化:表示输入张量没有初始化。

——类型不匹配:表示参数的数据类型不一致。

——分配失败:表张量分配空间不足。

——内部错误:表示内部调用出错。

7.3.1.11矩阵乘法

前向传播用于计算两个矩阵乘积。反向传播基于输出矩阵C的梯度,计算其对输入矩阵A和B的

梯度影响。该接口正向、反向传播的参数列表见表23和表24。

表23矩阵乘法正向传播参数列表

参数类型参数说明

输入张量输入描述用于矩阵乘法的第一个输入张量mat1

输入张量输入描述用于矩阵乘法的第二个输入张量mat2

输出张量输出输出张量mat1和张量mat2的乘积

10

T/CESAXXXX—202X

表24矩阵乘法反向传播参数列表

参数类型参数说明

前向输出张量输入关于输出矩阵C的梯度dC:从网络后续部分传回的梯度,具有形状(m,p)。

输出张量输出关于矩阵A的梯度dA,计算为dC*B.T,其中B.T是矩阵B的转置,dA具有形状(m,n)。

输出张量输出关于矩阵B的梯度dB,计算为A.T*dC,其中A.T是矩阵A的转置,dB具有形状(n,p)。

函数返回值:

——没有错误:操作成功。

——对象未初始化:表示输入张量没有初始化。

——类型不匹配:表示参数的数据类型不一致。

——分配失败:表张量分配空间不足。

——内部错误:表示内部调用出错。

注:前向传播参考IEEE2941.1-2022标准中的矩阵乘法接口。

7.3.1.12矩阵幂运算

正向传播计算矩阵的幂,即。反向传播基于输出矩阵C的梯度,计算其对输入矩阵A的梯

度影响。该接口正向、反向传播的参数�列表见表25和表26。

C=�

表25矩阵幂运算正向传播参数列表

参数类型参数说明

输入张量输入元素类型可以为浮点实数

幂输入一个非负整数,表示幂指数

输出张量输出表示计算结果

表26矩阵幂运算反向传播参数列表

参数类型参数说明

输入张量输入关于输出矩阵C的梯度dC:从网络后续部分传回的梯度,具有形状(m,m)。

输出张量输出关于矩阵A的梯度dA。

函数返回值:

——没有错误:操作成功。

——对象未初始化:表示输入张量没有初始化。

——类型不匹配:表示参数的数据类型不一致。

——分配失败:表张量分配空间不足。

——内部错误:表示内部调用出错。

7.3.1.13张量拷贝

在前向传播时,张量拷贝操作创建了一个内容相同的新张量。此算子将对拷贝结果的张量计算其关

于原始张量的高阶微分。反向传播将关于副本张量的梯度传递回原始张量。该接口正向、反向传播的参

数列表见表27和表28。

表27张量拷贝正向传播参数列表

参数类型参数说明

输入张量输入被复制的张量

输出张量输出复制操作后的张量

11

T/CESAXXXX—202X

表28张量拷贝反向传播参数列表

参数类型参数说明

输入张量输入关于张量副本的梯度dCopies:从网络后续部分传回的梯度,与张量副本的形状相同。

输出张量输出关于原张量T的梯度dT:是所有副本梯度的累加,具有与原张量T相同的形状。

函数返回值:

——没有错误:操作成功。

——对象未初始化:表示输入张量没有初始化。

——类型不匹配:表示参数的数据类型不一致。

——分配失败:表张量分配空间不足。

——内部错误:表示内部调用出错。

注:前向传播参考IEEE2941.1-2022标准中的复制张量接口。

7.3.1.14张量拼接

前向传播将多个张量沿着指定轴拼接成一个新的张量。反向传播将关于拼接后张量的梯度分配回原

始张量。该接口正向、反向传播的参数列表见表29和表30。

表29张量拼接正向传播参数列表

参数类型参数说明

输入张量数组输入一个包含要拼接的张量的列表。

轴输入一个整数,指定要沿其拼接的轴。

输出张量输出所有输入张量沿着指定轴拼接后的结果。

表30张量拼接反向传播参数列表

参数类型参数说明

输入张量输入关于拼接后张量的梯度dConcatenated:从网络后续部分传回的梯度。

输出张量列表输出关于原始张量的梯度列表[dT1,dT2,...,dTk]:每个原始张量的梯度。

函数返回值:

——没有错误:操作成功。

——对象未初始化:表示输入张量没有初始化。

——类型不匹配:表示参数的数据类型不一致。

——分配失败:表张量分配空间不足。

——内部错误:表示内部调用出错。

注:前向传播参考IEEE2941.1-2022标准中的张量合并接口。

7.3.1.15张量扩展

这个算子在前向传播中将一个张量扩展到一个更大的形状,在反向传播中将关于扩展后张量的梯度

压缩回原始张量的形状。该接口正向、反向传播的参数列表见表31和表32。

表31张量扩展正向传播参数列表

参数类型参数说明

输入张量输入待扩展的张量,任意数据类型。

形状输入给定输入张量扩展后的形状,应为一维数组。

输出张量输出扩展后的张量,形状和输入形状相同。

12

T/CESAXXXX—202X

表32张量扩展反向传播参数列表

参数类型参数说明

前向输出张量输入关于扩展后张量的梯度dExpanded:从网络后续部分传来的梯度。

高阶导数张量输出关于原始张量T的梯度dT:与原始张量T相同形状的梯度。

函数返回值:

——没有错误:操作成功。

——对象未初始化:表示输入张量没有初始化。

——类型不匹配:表示参数的数据类型不一致。

——分配失败:表张量分配空间不足。

——内部错误:表示内部调用出错。

注:前向传播参考IEEE2941.1-2022标准中的扩张张量接口。

7.3.1.16张量删除维度

此算子用于张量删除维度操作(squeeze)。反向传播在传入梯度已删除维度的位置上添加维度,恢

复到与输入张量相同的形状。该接口正向、反向传播的参数列表见表33和表34。

表33张量删除维度正向传播参数列表

参数类型参数说明

输入张量输入表示输入张量

删除位置数组输入表示要删除维度的位置数组,如果为空,则处理所有维度

输出张量输出表示删除维度为1的输出张量

表34张量删除维度反向传播参数列表

参数类型参数说明

前向输出张量输入梯度张量dOutput:输出张量的梯度。

高阶导数张量输出梯度张量dInput:恢复到与输入张量相同形状的梯度张量。

函数返回值:

——没有错误:操作成功。

——对象未初始化:表示输入张量没有初始化。

——类型不匹配:表示参数的数据类型不一致。

——分配失败:表张量分配空间不足。

——内部错误:表示内部调用出错。

注:前向传播参考IEEE2941.1-2022标准中的删除维度接口。

7.3.1.17张量增加维度

此算子用于张量增加维度操作(unsqueeze)。反向传播从梯度张量中去除前向传播中增加的维度,

以恢复到原始输入张量的形状。该接口正向、反向传播的参数列表见表35和表36。

表35张量增加维度正向传播参数列表

参数类型参数说明

13

T/CESAXXXX—202X

输入张量输入表示输入张量

插入位置输入表示插入新维度的位置

输出张量输出表示插入新维度后的输出张量

表36张量增加维度反向传播参数列表

参数类型参数说明

前向输出张量输入梯度张量dOutput:表示增加维度后的输出张量的梯度。

高阶导数张量输出梯度张量dInput:恢复到原始输入张量形状的梯度张量。

函数返回值:

——没有错误:操作成功。

——对象未初始化:表示输入张量没有初始化。

——类型不匹配:表示参数的数据类型不一致。

——分配失败:表张量分配空间不足。

——内部错误:表示内部调用出错。

注:前向传播参考IEEE2941.1-2022标准中的扩展维度接口。

7.3.1.18张量缩放和偏置

正向传播对于输入张量中的每个元素,执行以下操作:。反向传

播计算输入张量、缩放因子和偏置的梯度。该接口正向、反向传播的参数列表见表37和表38。

output[i]=scale×input[i]+bias

表37张量缩放和偏置正向传播参数列表

参数类型参数说明

输入张量输入表示输入张量

缩放因子输入任意数据类型标量,用于乘以输入张量的系数。

偏置值输入任意数据类型标量,加到缩放后的张量上的值。

输出张量输出应用了缩放和偏置之后的张量。

表38张量缩放和偏置反向传播参数列表

参数类型参数说明

输入张量输入输出梯度dOutput:正向传播的输出张量对某个损失函数的梯度。

输出张量输出输入梯度dInput:损失函数相对于输入张量的梯度。

输出张量输出缩放梯度dScale:损失函数相对于缩放因子的梯度。

输出张量输出偏置梯度dBias:损失函数相对于偏置的梯度。

函数返回值:

——没有错误:操作成功。

——对象未初始化:表示输入张量没有初始化。

——类型不匹配:表示参数的数据类型不一致。

——分配失败:表张量分配空间不足。

——内部错误:表示内部调用出错。

7.3.1.19张量重排

14

T/CESAXXXX—202X

正向传播对张量进行重新排列,改变其形状(shape)和/或维度(dimension)的顺序,但保持数据

本身不变。反向传播对梯度张量进行相反的重新排列,使其与正向传播的输入张量对齐。该接口正向、

反向传播的参数列表见表39和表40。

表39张量重排正向传播参数列表

参数类型参数说明

输入张量输入待重排的原始张量。

重排规则输入个定义新维度顺序的模式,例如,从(N,H,W,C)到(N,C,H,W)的重排规则是(0,3,1,2)

输出张量输出重排后的张量。

表40张量重排反向传播参数列表

参数类型参数说明

输入张量输入正向传播输出张量的梯度。

输出张量输出重排后的梯度张量,与正向传播的输入张量对齐。

函数返回值:

——没有错误:操作成功。

——对象未初始化:表示输入张量没有初始化。

——类型不匹配:表示参数的数据类型不一致。

——分配失败:表张量分配空间不足。

——内部错误:表示内部调用出错。

7.3.1.20张量逐元素正负判断

正向传播对张量中的每个元素进行正负判断,生成一个布尔值的张量代表逐元素正负。该接口正向、

反向传播的参数列表见表41和表42。

表41张量逐元素正负判断参数列表

参数类型参数说明

输入张量输入表示输入张量

输出张量输出表示正负判断后的张量

函数返回值:

——没有错误:操作成功。

——对象未初始化:表示输入张量没有初始化。

——类型不匹配:表示参数的数据类型不一致。

——分配失败:表张量分配空间不足。

——内部错误:表示内部调用出错。

注:参考IEEE2941.1-2022标准中的张量正负判断接口。

7.3.1.21张量类型转换

将输入张量的元素类型转换为指定的新数据类型,并输出转换后的张量。该接口的参数列表见表

42。

15

T/CESAXXXX—202X

表42张量类型转换参数列表

参数类型参数说明

输入张量输入表示输入张量

数据类型输入表示要转换的类型,可以为有符号整数、无符号整数、浮点实数、浮点复数、布尔等

输出张量输出表示类型转换后的张量

函数返回值:

——没有错误:操作成功。

——对象未初始化:表示输入张量没有初始化。

——类型不匹配:表示参数的数据类型不一致。

——分配失败:表张量分配空间不足。

——内部错误:表示内部调用出错。

注:参考IEEE2941.1-2022标准中的转换数据类型接口。

7.3.1.22张量切片

正向传播按照给定的起始位置、切片大小和步长数组,从输入张量中提取出相应的子张量。反向传

播将梯度值传递回相应的输入张量的位置,其他位置的梯度值保持为零。该接口正向、反向传播的参数

列表见表43和表44。

表43张量切片正向传播参数列表

参数类型参数说明

输入张量输入表示输入张量

起始位置数组输入表示每个维度提取起始位置数组,长度为输入张量的维度

切片大小数组输入表示每个维度提取大小数组,长度为输入张量的维度

切片步长数组输入表示每个维度上提取步长数组,长度为输入张量的维度

输出张量输出表示输出张量

表44张量切片反向传播参数列表

参数类型参数说明

输入张量输入正向传播输出张量的梯度。

输出张量输出一个与输入张量同形状的新张量,它的切片位置上填充有对应的梯度值,而其他位置则填充零。

函数返回值:

——没有错误:操作成功。

——对象未初始化:表示输入张量没有初始化。

——类型不匹配:表示参数的数据类型不一致。

——分配失败:表张量分配空间不足。

——内部错误:表示内部调用出错。

注:前向传播参考IEEE2941.1-2022标准中的张量切片接口。

7.3.1.23张量求和

正向传播对对输入张量在指定的维度上进行求和操作。反向传播将梯度分配到求和操作前向传播时

16

T/CESAXXXX—202X

参与求和的元素上。该接口正向、反向传播的参数列表见表45和表46。

表45张量求和正向传播参数列表

参数类型参数说明

输入张量输入元素类型可以为有符号整数、无符号整数、浮点实数、浮点复数、布尔等

求和维度输入进行规约的维度,可以同时求和多个维度

维度保留输入对指定的维度进行规约后,是否保留相应的维度,若保留则求和维度大小为1

输出张量输出表示计算结果

表46张量求和反向传播参数列表

参数类型参数说明

输入张量输入正向传播输出张量的梯度。

输出张量输出与输入张量同形状的张量,其中每个被求和的维度上的元素梯度都是输出梯度的副本。

函数返回值:

——没有错误:操作成功。

——对象未初始化:表示输入张量没有初始化。

——类型不匹配:表示参数的数据类型不一致。

——分配失败:表张量分配空间不足。

——内部错误:表示内部调用出错。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论