《人工智能 科學(xué)計算 共性算子功能要求》_第1頁
《人工智能 科學(xué)計算 共性算子功能要求》_第2頁
《人工智能 科學(xué)計算 共性算子功能要求》_第3頁
《人工智能 科學(xué)計算 共性算子功能要求》_第4頁
《人工智能 科學(xué)計算 共性算子功能要求》_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

ICS35.040

CCSL71

團體標準

T/CESAXXXX—202X

人工智能科學(xué)計算共性算子功能要求

Artificialintelligence-Scientificcomputing-Functionalrequirements

ofcommonoperators

征求意見稿

在提交反饋意見時,請將您知道的相關(guān)專利連同支持性文件一并附上。

已授權(quán)的專利證明材料為專利證書復(fù)印件或扉頁,已公開但尚未授權(quán)的專利申請

證明材料為專利公開通知書復(fù)印件或扉頁,未公開的專利申請的證明材料為專利申請

號和申請日期。

202X-XX-XX發(fā)布202X-XX-XX實施

中國電子工業(yè)標準化技術(shù)協(xié)會發(fā)布

T/CESAXXXX—202X

人工智能科學(xué)計算共性算子功能要求

1范圍

本文件規(guī)定了人工智能科學(xué)計算類算子(主要包括高階微分、復(fù)數(shù)操作、傅里葉變換、線性代數(shù)、

分數(shù)階微分、積分操作6類)的功能要求。

本文件適用于人工智能算子庫的設(shè)計、開發(fā)與應(yīng)用,也可用于指導(dǎo)人工智能領(lǐng)域計算框架與算子庫

和芯片的系統(tǒng)集成與開發(fā)。

2規(guī)范性引用文件

下列文件中的內(nèi)容通過文中的規(guī)范性引用而構(gòu)成本文件必不可少的條款。其中,注日期的引用文件,

僅該日期對應(yīng)的版本適用于本文件;不注日期的引用文件,其最新版本(包括所有的修改單)適用于本

文件。

GB/T41867-2022信息技術(shù)人工智能術(shù)語

ISO/IEC2382:2015InformationtechnologyVocabulary

IEEE2941.1-2022IEEEStandardforOperatorInterfacesofArtificialIntelligence

3術(shù)語和定義

GB/T41867-2022和IEEE2941.1-2022界定的以及下列術(shù)語和定義適用于本文件。

3.1

科學(xué)計算sciencecomputing

科學(xué)計算是指利用計算機再現(xiàn)、預(yù)測和發(fā)現(xiàn)客觀世界運動規(guī)律和演化特性的全過程,包括建立物理

模型,研究計算方法,設(shè)計并行算法,研制應(yīng)用程序,開展模擬計算和分析計算結(jié)果等過程。

3.2

共性算子commonoperator

共性算子是指在人工智能科學(xué)計算領(lǐng)域中,能夠跨越不同科學(xué)和工程學(xué)科的界限,服務(wù)于多種計算

模型和算法的基礎(chǔ)計算單元或操作。

4縮略語

下列縮略語適用于本文件。

ASIC:專用集成電路(applicationspecificintegratedcircuit)

CPU:中央處理器(centralprocessingunit)

FPGA:現(xiàn)場可編程門陣列(fieldprogrammablegatearray)

GPU:圖形處理器(graphicprocessingunit)

1

T/CESAXXXX—202X

NPU:神經(jīng)網(wǎng)絡(luò)處理器(neural-networkprocessingunit)

5約定

5.1起始下標

除特別說明外,約定編號和計數(shù)從0開始。

5.2參數(shù)順序

為了方便理解,本文件中的接口函數(shù)參數(shù)列表采用輸入?yún)?shù)在前,輸出參數(shù)在后方式,實際使用中

不做此要求。

5.3編程語言

接口函數(shù)可用多種編程語言實現(xiàn)。

5.4自動廣播

本文件不強制要求二元逐元素操作的張量的維度一致,但標準實現(xiàn)者應(yīng)將低維張量操作數(shù)自動廣播

以匹配高維張量操作數(shù)的維數(shù)來完成運算。例如:當其中一個張量操作數(shù)的維度為0,也即標量時,

要求標準實現(xiàn)者在操作內(nèi)部將標量自動廣播成和另一個操作數(shù)形狀相同的張量來完成計算,不限定具體

實現(xiàn)方式,比如可以直接通過專用硬件實現(xiàn)。

5.5錯誤處理

本文件的接口錯誤處理原則為對于不可修復(fù)錯誤,直接退出操作,而對于可修復(fù)錯誤,采用返回錯

誤碼方式,由標準使用者決定如何處理錯誤,返回錯誤碼時應(yīng)優(yōu)先返回相對具體的錯誤碼,在沒有對應(yīng)

具體錯誤碼的情況,再返回一般性錯誤碼。本標準規(guī)定的錯誤碼見表1。

表1錯誤碼

名稱類別

沒有錯誤無

類型不匹配(STATUS_TYPE_MISMATCH)邏輯錯誤

維度不匹配(STATUS_DIMENSIONS_MISMATCH)邏輯錯誤

對象未初始化(STATUS_UNINITIALIZED_OBJECT)邏輯錯誤

非法參數(shù)(STATUS_INVALID_ARGUMENT)邏輯錯誤

內(nèi)存不足(STATUS_ALLOC_FAILED)運行錯誤

超出范圍(STATUS_OUT_OF_RANGE)運行錯誤

其他內(nèi)部錯誤(STATUS_INTERNAL_ERROR)運行錯誤

注:本標準允許使用者提供其他自定義的錯誤返回碼。

5.6線程安全

接口函數(shù)應(yīng)該適用于多線程環(huán)境:

a)同一個接口函數(shù)能夠被多線程同時調(diào)用;

b)不同線程可以調(diào)用不同接口函數(shù)序列。如果不存在數(shù)據(jù)競爭,那么執(zhí)行順序可以任意,但是要

保證同一序列的結(jié)果與其串行結(jié)果一致;如果存在數(shù)據(jù)競爭,則由調(diào)用者負責同步操作,而接口不提供

同步這樣的線程管理功能。

2

T/CESAXXXX—202X

5.7張量對象不透明性

張量類對象對接口使用者不透明,需通過對應(yīng)的句柄和相應(yīng)的接口函數(shù)對其進行管理、訪問和操作,

給予標準實現(xiàn)者更大的自由度去為不同的場景和硬件進行優(yōu)化。

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

本標準中稠密和稀疏張量的構(gòu)建操作采用不同的接口,而基于兩種張量的各類操作則采用統(tǒng)一的接

口,即不對參數(shù)中的張量是否稀疏進行任何假設(shè),但是要求標準實現(xiàn)者在Tensor類中要有標識張量是

否稀疏的成員變量。

5.9量化的支持

5.9.1量化方式

本標準支持對稱和非對稱兩種量化方式。

5.9.2量化數(shù)據(jù)類型

量化數(shù)據(jù)類型見表2。

表2量化數(shù)據(jù)類型

量化數(shù)據(jù)類型

8位有符號對稱量化整數(shù)(QT_SYM_INT8)

8位有符號非對稱量化整數(shù)(QT_ASYM_INT8)

8位有符號通道級對稱量化整數(shù)(QT_SYM_PER_CHANNEL_INT8)

8位無符號非對稱量化整數(shù)(QT_ASYM_UINT8)

16位有符號對稱量化整數(shù)(QT_SYM_INT16)

16位有符號非對稱量化整數(shù)(QT_ASYM_INT16)

16位有符號通道級對稱量化整數(shù)(QT_SYM_PER_CHANNEL_INT16)

16位無符號非對稱量化整數(shù)(QT_ASYM_UINT16)

5.9.3量化的粒度

量化的粒度主要可分為張量級和通道級:

a)張量級量化:張量內(nèi)部所有數(shù)據(jù)共享同一個scale。支持的數(shù)據(jù)類型有:8位有符號對稱量化整

數(shù)和16位有符號對稱量化整數(shù),可選支持8位無符號非對稱量化整數(shù)、8位有符號非對稱量化整數(shù)、

16位無符號非對稱量化整數(shù)和16位有符號非對稱量化整數(shù)。

b)通道級量化:張量內(nèi)部同一通道的數(shù)據(jù)共享同一個scale。支持的數(shù)據(jù)類型有:8位有符號通道

級對稱量化整數(shù)和16位有符號通道級對稱量化整數(shù)。

6數(shù)據(jù)結(jié)構(gòu)

6.1元素類型

用于描述元素的數(shù)據(jù)類型。支持無符號整數(shù):8位、16位、32位、64位;有符號整數(shù):8位、16

位、32位、64位;浮點實數(shù):16位、32位、64位;浮點復(fù)數(shù):(32+32)位、(64+64)位;布爾類型,

字符串類型等。

3

T/CESAXXXX—202X

6.2形狀信息

用于描述張量維數(shù)和每一維的大小。如果張量維數(shù)為,每一維對應(yīng)的大小為,則

張量的形狀可以表示為,最左邊的為第1維,最右邊的為第維。例如:標量維數(shù)為

??0,?1,?2,…,???1

0,形狀為;向量維數(shù)為1,形狀為;矩陣維數(shù)為,形狀為。

[?0,?1,?2,…,???1]?

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

用于描述張量的存儲格式以及張量各個維度的邏輯順序。存儲格式包括稠密存儲和稀疏存儲。邏輯

順序指張量遍歷讀取和存儲具體數(shù)據(jù)時,各個維度的優(yōu)先順序。

當使用稠密存儲時,對于形狀為,邏輯順序為[]的維向量來說,

首先取邏輯順序中最左邊第個元素,對應(yīng)到當前要遍歷的維度,按照的次序存

[?0,?1,?2,…,???1]?0,?1,?2,…,???1?

儲,其次取邏輯順序中最左邊第個元素,對應(yīng)到當前要遍歷的維度,按照的次

1?0??0(0,1,2,…,??0?1)

序存儲,以此類推。例如:張量形狀為[2,3],邏輯順序為[0,1],則先取邏輯順1序最左側(cè)的第一個元1素,

2?1??(0,1,2,…,???1)

對應(yīng)維度,其次取邏輯順序中的第二個元素,對應(yīng)維度=,則張量數(shù)據(jù)物理

?0=0

上第一個元0素對應(yīng)的坐標為[0,0],第二個元素對應(yīng)的坐標為[1,0],第三個元素1對應(yīng)的坐標為[0,1],以此

??=?0=2?1=1???1=3

類推。

當使用稠密存儲時,默認的邏輯順序為[n-1,n-2,…,0]。

當使用稀疏存儲時,標準實現(xiàn)者需要對所采用的具體格式進行詳細說明。

6.4設(shè)備信息

用于描述張量數(shù)據(jù)存儲的設(shè)備類型和設(shè)備編號。其中設(shè)備類型包括CPU、GPU、FPGA、ASIC、

NPU等任何支持AI操作的設(shè)備。如果存在多個同類型的設(shè)備,可通過指定設(shè)備編號來區(qū)分。

6.5其它擴展

用于提供自定義的擴展功能,比如內(nèi)存管理等相關(guān)信息。

7科學(xué)計算算子接口

7.1接口概述

科學(xué)計算算子接口名稱和描述見表3。

表3科學(xué)計算算子接口概述

接口名稱接口描述

高階微分反向計算雅可比矩陣、海森矩陣、逐元素加法、逐元素減法、逐元素乘法、逐元素除法、逐元素雙曲正切

函數(shù)運算、逐元素正弦函數(shù)運算、逐元素余弦函數(shù)運算、逐元素Sigmoid函數(shù)運算、矩陣乘法、矩陣冪運算、

張量拷貝、張量拼接、張量擴展、張量刪除維度、張量增加維度、張量縮放和偏置、張量重排、張量逐元

素正負判斷、張量類型轉(zhuǎn)換、張量切片、張量求和、張量均值

復(fù)數(shù)操作判斷是否是復(fù)數(shù)、計算相位角、由極坐標表示計算復(fù)平面坐標、復(fù)數(shù)取模、復(fù)數(shù)轉(zhuǎn)換為實數(shù)、實數(shù)轉(zhuǎn)化為

復(fù)數(shù)、復(fù)數(shù)愛因斯坦求和、以均勻分布隨機數(shù)創(chuàng)建稠密復(fù)數(shù)張量、創(chuàng)建元素值全為指定復(fù)數(shù)的稠密復(fù)數(shù)張

量、創(chuàng)建元素值全為0+0i的稠密復(fù)數(shù)張量、復(fù)數(shù)張量切片

傅里葉變二維離散傅里葉變換、二維離散逆傅里葉變換

線性代數(shù)計算一般方陣的特征值與特征向量

4

T/CESAXXXX—202X

分數(shù)階微分數(shù)階微分

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

7.2應(yīng)用場景

科學(xué)計算算子接口應(yīng)用場景見表4。

表4科學(xué)計算算子應(yīng)用場景

名稱場景涉及的算子

流體力學(xué)高階微分、積分操作、線性代數(shù)

結(jié)構(gòu)力學(xué)分數(shù)階微分、積分操作、線性代數(shù)

電磁仿真傅里葉變換、積分操作、線性代數(shù)

控制論復(fù)數(shù)操作、積分操作、線性代數(shù)

生命科學(xué)高階微分、積分操作、線性代數(shù)

物質(zhì)科學(xué)復(fù)數(shù)操作、積分操作、線性代數(shù)

地質(zhì)學(xué)積分操作、線性代數(shù)

氣象學(xué)復(fù)數(shù)操作、積分操作、線性代數(shù)

空間科學(xué)復(fù)數(shù)操作、積分操作、線性代數(shù)

物理學(xué)復(fù)數(shù)操作、積分操作、線性代數(shù)、傅里葉變換

計算機圖形學(xué)積分操作、線性代數(shù)

7.3接口列表

7.3.1高階微分

7.3.1.1反向計算雅可比矩陣

該算子使用反向傳播計算函數(shù)的雅可比矩陣。

Jacobian對象被創(chuàng)建后,采用惰性求值方法進行計算,對其進行多維索引來獲取整個雅可比矩陣或

子矩陣,進行實際求值計算并返回結(jié)果。在實際求值的過程中,對計算完畢的子矩陣進行緩存,避免在

后續(xù)的索引過程中產(chǎn)生重復(fù)計算。該接口的參數(shù)列表見表5。

表5反向計算雅可比矩陣參數(shù)列表

參數(shù)類型參數(shù)說明

待微分函數(shù)輸入要計算雅可比矩陣的函數(shù)。此函數(shù)的輸入?yún)?shù)應(yīng)該是數(shù)組、標量。它應(yīng)該返回數(shù)組或標量。

輸入張量輸入表示自變量,待微分函數(shù)的輸入

是否有附加數(shù)據(jù)輸入布爾變量,指待微分函數(shù)是否返回一個元組,其中第一個元素是數(shù)學(xué)函數(shù)的輸出,第二個

元素是附加數(shù)據(jù)。

此變量為真表示待微分函數(shù)返回的是這樣的元組結(jié)構(gòu),它會正確計算海森矩陣。默認情況

下此變量為假,即假設(shè)函數(shù)只返回一個純數(shù)值作為輸出。

是否是全純函數(shù)輸入布爾變量,指示待微分函數(shù)是否是全純函數(shù)

雅可比矩陣輸出表示計算結(jié)果

函數(shù)返回值:

——沒有錯誤:操作成功。

5

T/CESAXXXX—202X

——對象未初始化:表示輸入張量沒有初始化。

——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。

——分配失?。罕韽埩糠峙淇臻g不足。

——內(nèi)部錯誤:表示內(nèi)部調(diào)用出錯。

7.3.1.2海森矩陣

該算子用于計算函數(shù)的海森矩陣。

Hessian對象被創(chuàng)建后,采用部分惰性求值方法進行計算,對其進行多維索引來獲取整個海森矩陣

或子矩陣,進行實際求值計算并返回結(jié)果。在實際求值的過程中,對計算完畢的子矩陣進行緩存,避免

在后續(xù)的索引過程中產(chǎn)生重復(fù)計算。該接口的參數(shù)列表見表6。

表6海森矩陣參數(shù)列表

參數(shù)類型參數(shù)說明

待微分函數(shù)輸入要計算海森矩陣的函數(shù)。此函數(shù)的輸入?yún)?shù)應(yīng)該是數(shù)組、標量。它應(yīng)該返回數(shù)組或標量。

輸入張量輸入表示自變量,待微分函數(shù)的輸入

是否有附加數(shù)據(jù)輸入布爾變量,指待微分函數(shù)是否返回一個元組,其中第一個元素是數(shù)學(xué)函數(shù)的輸出,第二個

元素是附加數(shù)據(jù)。

此變量為真表示待微分函數(shù)返回的是這樣的元組結(jié)構(gòu),它會正確計算海森矩陣。默認情況

下此變量為假,即假設(shè)函數(shù)只返回一個純數(shù)值作為輸出。

是否是全純函數(shù)輸入布爾變量,指示待微分函數(shù)是否是全純函數(shù)

海森矩陣輸出表示計算結(jié)果

函數(shù)返回值:

——沒有錯誤:操作成功。

——對象未初始化:表示輸入張量沒有初始化。

——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。

——分配失?。罕韽埩糠峙淇臻g不足。

——內(nèi)部錯誤:表示內(nèi)部調(diào)用出錯。

7.3.1.3逐元素加法

正向傳播對兩個張量逐元素求和。

反向傳播對逐元素加法操作的結(jié)果C,計算其對A和B的導(dǎo)數(shù)。該接口的參數(shù)列表見表7。

C=A+B

表7逐元素加法正向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入元素類型可以為整數(shù)、浮點數(shù)

輸入張量輸入與第一個輸入張量在計算上兼容

輸出張量輸出表示計算結(jié)果

表8逐元素加法反向傳播的參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入關(guān)于輸出張量的梯度(從網(wǎng)絡(luò)后續(xù)部分傳回的)。

輸出張量輸出關(guān)于輸入張量A的梯度,與輸入的梯度相同。

輸出張量輸出關(guān)于輸入張量B的梯度,與輸入的梯度相同。

6

T/CESAXXXX—202X

函數(shù)返回值:

——沒有錯誤:操作成功。

——對象未初始化:表示輸入張量沒有初始化。

——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。

——分配失?。罕韽埩糠峙淇臻g不足。

——內(nèi)部錯誤:表示內(nèi)部調(diào)用出錯。

注:前向傳播參考IEEE2941.1-2022標準中的張量加法操作接口。

7.3.1.4逐元素減法

正向傳播對兩個張量逐元素求差。

反向傳播對逐元素減法操作的結(jié)果C,計算其對A和B的導(dǎo)數(shù)。該接口正向、反向傳播的參數(shù)

C=A?B

列表見表9和表10。

表9逐元素減法正向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入元素類型可以為整數(shù)、浮點數(shù)

輸入張量輸入與第一個輸入張量在計算上兼容

輸出張量輸出表示計算結(jié)果

表10逐元素減法反向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入關(guān)于輸出張量的梯度(從網(wǎng)絡(luò)后續(xù)部分傳回的)。

輸出張量輸出關(guān)于輸入張量A的梯度,與輸入的梯度相同。

輸出張量輸出關(guān)于輸入張量B的梯度,為輸入的梯度的負值。

函數(shù)返回值:

——沒有錯誤:操作成功。

——對象未初始化:表示輸入張量沒有初始化。

——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。

——分配失?。罕韽埩糠峙淇臻g不足。

——內(nèi)部錯誤:表示內(nèi)部調(diào)用出錯。

注:前向傳播參考IEEE2941.1-2022標準中的張量減法操作接口。

7.3.1.5逐元素乘法

正向傳播對兩個張量逐元素求乘積。

反向傳播對逐元素乘法操作的結(jié)果C,計算其對A和B的導(dǎo)數(shù)。該接口正向、反向傳播的參數(shù)

C=A?B

列表見表11和表12。

表11逐元素乘法正向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入元素類型可以為整數(shù)、浮點數(shù)

輸出張量輸出與第一個輸入張量在計算上兼容

輸出張量輸出表示計算結(jié)果

7

T/CESAXXXX—202X

表12逐元素乘法反向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入關(guān)于輸出張量C的梯度dC:從網(wǎng)絡(luò)后續(xù)部分傳回的梯度。

輸出張量輸出關(guān)于輸入張量A的梯度,計算為dC*B。

輸出張量輸出關(guān)于輸入張量B的梯度,計算為dC*A。

函數(shù)返回值:

——沒有錯誤:操作成功。

——對象未初始化:表示輸入張量沒有初始化。

——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。

——分配失?。罕韽埩糠峙淇臻g不足。

——內(nèi)部錯誤:表示內(nèi)部調(diào)用出錯。

注:前向傳播參考IEEE2941.1-2022標準中的張量乘法操作接口。

7.3.1.6逐元素除法

正向傳播對兩個張量逐元素做除法。

反向傳播對逐元素除法操作的結(jié)果C,計算其對A和B的導(dǎo)數(shù)。該接口正向、反向傳播的參數(shù)

C=A/B

列表見表13和表14。

表13逐元素除法正向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入元素類型可以為整數(shù)、浮點數(shù)

輸入張量輸入與第一個輸入張量在計算上兼容

輸出張量輸出表示計算結(jié)果

表14逐元素除法反向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入關(guān)于輸出張量C的梯度dC:從網(wǎng)絡(luò)后續(xù)部分傳回的梯度。

輸出張量輸出關(guān)于輸入張量A的梯度,計算為dC/B。

輸出張量輸出關(guān)于輸入張量B的梯度,計算為-dC*A/B2。

函數(shù)返回值:

——沒有錯誤:操作成功。

——對象未初始化:表示輸入張量沒有初始化。

——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。

——分配失?。罕韽埩糠峙淇臻g不足。

——內(nèi)部錯誤:表示內(nèi)部調(diào)用出錯。

注:前向傳播參考IEEE2941.1-2022標準中的張量除法操作接口。

7.3.1.7逐元素雙曲正切函數(shù)運算

對逐元素雙曲正切函數(shù)運算操作的結(jié)果C,計算其對A的導(dǎo)數(shù)。該接口正向、反

向傳播的參數(shù)列表見表15和表16。

C=tanh(A)

表15逐元素正切函數(shù)運算正向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

8

T/CESAXXXX—202X

輸入張量輸入元素類型可以為浮點數(shù)

輸出張量輸出表示計算結(jié)果

表16逐元素正切函數(shù)運算反向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入關(guān)于輸出張量C的梯度dC:從網(wǎng)絡(luò)后續(xù)部分傳回的梯度。

輸出張量輸出關(guān)于輸入張量A的梯度,計算為dC*(1+tanh2(A))。

函數(shù)返回值:

——沒有錯誤:操作成功。

——對象未初始化:表示輸入張量沒有初始化。

——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。

——分配失?。罕韽埩糠峙淇臻g不足。

——內(nèi)部錯誤:表示內(nèi)部調(diào)用出錯。

注:前向傳播參考IEEE2941.1-2022標準中的正切函數(shù)接口。

7.3.1.8逐元素正弦函數(shù)運算

對逐元正弦函數(shù)運算操作的結(jié)果C,計算其對A的導(dǎo)數(shù)。該接口正向、反向傳播的

參數(shù)列表見表17和表18。

C=sin(A)

表17逐元素正弦函數(shù)運算正向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入元素類型可以為浮點數(shù)

輸出張量輸出表示計算結(jié)果

表18逐元素正弦函數(shù)運算反向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入關(guān)于輸出張量C的梯度dC:從網(wǎng)絡(luò)后續(xù)部分傳回的梯度。

輸出張量輸出關(guān)于輸入張量A的梯度,計算為dC*cos(A)。

函數(shù)返回值:

——沒有錯誤:操作成功。

——對象未初始化:表示輸入張量沒有初始化。

——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。

——分配失?。罕韽埩糠峙淇臻g不足。

——內(nèi)部錯誤:表示內(nèi)部調(diào)用出錯。

注:前向傳播參考IEEE2941.1-2022標準中的正弦函數(shù)接口。

7.3.1.9逐元素余弦函數(shù)運算

對逐元余弦函數(shù)運算操作的結(jié)果C,計算其對A的導(dǎo)數(shù)。該接口正向、反向傳播的

參數(shù)列表見表19和表20。

C=cos(A)

表19逐元素余弦函數(shù)運算正向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入元素類型可以為浮點數(shù)

9

T/CESAXXXX—202X

輸出張量輸出表示計算結(jié)果

表20逐元素余弦函數(shù)運算反向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入關(guān)于輸出張量C的梯度dC:從網(wǎng)絡(luò)后續(xù)部分傳回的梯度。

輸出張量輸出關(guān)于輸入張量A的梯度,計算為-dC*sin(A)。

函數(shù)返回值:

——沒有錯誤:操作成功。

——對象未初始化:表示輸入張量沒有初始化。

——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。

——分配失?。罕韽埩糠峙淇臻g不足。

——內(nèi)部錯誤:表示內(nèi)部調(diào)用出錯。

注:前向傳播參考IEEE2941.1-2022標準中的余弦函數(shù)接口。

7.3.1.10逐元素Sigmoid函數(shù)運算

對逐元素Sigmoid函數(shù)運算操作的結(jié)果C,計算其對A的導(dǎo)數(shù)。該接口正向、

反向傳播的參數(shù)列表見表21和表22。

C=Sigmoid(A)

表21逐元素Sigmoid函數(shù)運算正向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入元素類型可以為浮點數(shù)

輸出張量輸出表示計算結(jié)果

表22逐元素Sigmoid函數(shù)運算反向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入關(guān)于輸出張量C的梯度dC:從網(wǎng)絡(luò)后續(xù)部分傳回的梯度。

輸出張量輸出關(guān)于輸入張量A的梯度,計算為dC?C?(1?C)。

函數(shù)返回值:

——沒有錯誤:操作成功。

——對象未初始化:表示輸入張量沒有初始化。

——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。

——分配失敗:表張量分配空間不足。

——內(nèi)部錯誤:表示內(nèi)部調(diào)用出錯。

7.3.1.11矩陣乘法

前向傳播用于計算兩個矩陣乘積。反向傳播基于輸出矩陣C的梯度,計算其對輸入矩陣A和B的

梯度影響。該接口正向、反向傳播的參數(shù)列表見表23和表24。

表23矩陣乘法正向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入描述用于矩陣乘法的第一個輸入張量mat1

輸入張量輸入描述用于矩陣乘法的第二個輸入張量mat2

輸出張量輸出輸出張量mat1和張量mat2的乘積

10

T/CESAXXXX—202X

表24矩陣乘法反向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

前向輸出張量輸入關(guān)于輸出矩陣C的梯度dC:從網(wǎng)絡(luò)后續(xù)部分傳回的梯度,具有形狀(m,p)。

輸出張量輸出關(guān)于矩陣A的梯度dA,計算為dC*B.T,其中B.T是矩陣B的轉(zhuǎn)置,dA具有形狀(m,n)。

輸出張量輸出關(guān)于矩陣B的梯度dB,計算為A.T*dC,其中A.T是矩陣A的轉(zhuǎn)置,dB具有形狀(n,p)。

函數(shù)返回值:

——沒有錯誤:操作成功。

——對象未初始化:表示輸入張量沒有初始化。

——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。

——分配失?。罕韽埩糠峙淇臻g不足。

——內(nèi)部錯誤:表示內(nèi)部調(diào)用出錯。

注:前向傳播參考IEEE2941.1-2022標準中的矩陣乘法接口。

7.3.1.12矩陣冪運算

正向傳播計算矩陣的冪,即。反向傳播基于輸出矩陣C的梯度,計算其對輸入矩陣A的梯

度影響。該接口正向、反向傳播的參數(shù)?列表見表25和表26。

C=?

表25矩陣冪運算正向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入元素類型可以為浮點實數(shù)

冪輸入一個非負整數(shù),表示冪指數(shù)

輸出張量輸出表示計算結(jié)果

表26矩陣冪運算反向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入關(guān)于輸出矩陣C的梯度dC:從網(wǎng)絡(luò)后續(xù)部分傳回的梯度,具有形狀(m,m)。

輸出張量輸出關(guān)于矩陣A的梯度dA。

函數(shù)返回值:

——沒有錯誤:操作成功。

——對象未初始化:表示輸入張量沒有初始化。

——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。

——分配失?。罕韽埩糠峙淇臻g不足。

——內(nèi)部錯誤:表示內(nèi)部調(diào)用出錯。

7.3.1.13張量拷貝

在前向傳播時,張量拷貝操作創(chuàng)建了一個內(nèi)容相同的新張量。此算子將對拷貝結(jié)果的張量計算其關(guān)

于原始張量的高階微分。反向傳播將關(guān)于副本張量的梯度傳遞回原始張量。該接口正向、反向傳播的參

數(shù)列表見表27和表28。

表27張量拷貝正向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入被復(fù)制的張量

輸出張量輸出復(fù)制操作后的張量

11

T/CESAXXXX—202X

表28張量拷貝反向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入關(guān)于張量副本的梯度dCopies:從網(wǎng)絡(luò)后續(xù)部分傳回的梯度,與張量副本的形狀相同。

輸出張量輸出關(guān)于原張量T的梯度dT:是所有副本梯度的累加,具有與原張量T相同的形狀。

函數(shù)返回值:

——沒有錯誤:操作成功。

——對象未初始化:表示輸入張量沒有初始化。

——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。

——分配失?。罕韽埩糠峙淇臻g不足。

——內(nèi)部錯誤:表示內(nèi)部調(diào)用出錯。

注:前向傳播參考IEEE2941.1-2022標準中的復(fù)制張量接口。

7.3.1.14張量拼接

前向傳播將多個張量沿著指定軸拼接成一個新的張量。反向傳播將關(guān)于拼接后張量的梯度分配回原

始張量。該接口正向、反向傳播的參數(shù)列表見表29和表30。

表29張量拼接正向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量數(shù)組輸入一個包含要拼接的張量的列表。

軸輸入一個整數(shù),指定要沿其拼接的軸。

輸出張量輸出所有輸入張量沿著指定軸拼接后的結(jié)果。

表30張量拼接反向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入關(guān)于拼接后張量的梯度dConcatenated:從網(wǎng)絡(luò)后續(xù)部分傳回的梯度。

輸出張量列表輸出關(guān)于原始張量的梯度列表[dT1,dT2,...,dTk]:每個原始張量的梯度。

函數(shù)返回值:

——沒有錯誤:操作成功。

——對象未初始化:表示輸入張量沒有初始化。

——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。

——分配失?。罕韽埩糠峙淇臻g不足。

——內(nèi)部錯誤:表示內(nèi)部調(diào)用出錯。

注:前向傳播參考IEEE2941.1-2022標準中的張量合并接口。

7.3.1.15張量擴展

這個算子在前向傳播中將一個張量擴展到一個更大的形狀,在反向傳播中將關(guān)于擴展后張量的梯度

壓縮回原始張量的形狀。該接口正向、反向傳播的參數(shù)列表見表31和表32。

表31張量擴展正向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入待擴展的張量,任意數(shù)據(jù)類型。

形狀輸入給定輸入張量擴展后的形狀,應(yīng)為一維數(shù)組。

輸出張量輸出擴展后的張量,形狀和輸入形狀相同。

12

T/CESAXXXX—202X

表32張量擴展反向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

前向輸出張量輸入關(guān)于擴展后張量的梯度dExpanded:從網(wǎng)絡(luò)后續(xù)部分傳來的梯度。

高階導(dǎo)數(shù)張量輸出關(guān)于原始張量T的梯度dT:與原始張量T相同形狀的梯度。

函數(shù)返回值:

——沒有錯誤:操作成功。

——對象未初始化:表示輸入張量沒有初始化。

——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。

——分配失?。罕韽埩糠峙淇臻g不足。

——內(nèi)部錯誤:表示內(nèi)部調(diào)用出錯。

注:前向傳播參考IEEE2941.1-2022標準中的擴張張量接口。

7.3.1.16張量刪除維度

此算子用于張量刪除維度操作(squeeze)。反向傳播在傳入梯度已刪除維度的位置上添加維度,恢

復(fù)到與輸入張量相同的形狀。該接口正向、反向傳播的參數(shù)列表見表33和表34。

表33張量刪除維度正向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入表示輸入張量

刪除位置數(shù)組輸入表示要刪除維度的位置數(shù)組,如果為空,則處理所有維度

輸出張量輸出表示刪除維度為1的輸出張量

表34張量刪除維度反向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

前向輸出張量輸入梯度張量dOutput:輸出張量的梯度。

高階導(dǎo)數(shù)張量輸出梯度張量dInput:恢復(fù)到與輸入張量相同形狀的梯度張量。

函數(shù)返回值:

——沒有錯誤:操作成功。

——對象未初始化:表示輸入張量沒有初始化。

——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。

——分配失?。罕韽埩糠峙淇臻g不足。

——內(nèi)部錯誤:表示內(nèi)部調(diào)用出錯。

注:前向傳播參考IEEE2941.1-2022標準中的刪除維度接口。

7.3.1.17張量增加維度

此算子用于張量增加維度操作(unsqueeze)。反向傳播從梯度張量中去除前向傳播中增加的維度,

以恢復(fù)到原始輸入張量的形狀。該接口正向、反向傳播的參數(shù)列表見表35和表36。

表35張量增加維度正向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

13

T/CESAXXXX—202X

輸入張量輸入表示輸入張量

插入位置輸入表示插入新維度的位置

輸出張量輸出表示插入新維度后的輸出張量

表36張量增加維度反向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

前向輸出張量輸入梯度張量dOutput:表示增加維度后的輸出張量的梯度。

高階導(dǎo)數(shù)張量輸出梯度張量dInput:恢復(fù)到原始輸入張量形狀的梯度張量。

函數(shù)返回值:

——沒有錯誤:操作成功。

——對象未初始化:表示輸入張量沒有初始化。

——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。

——分配失?。罕韽埩糠峙淇臻g不足。

——內(nèi)部錯誤:表示內(nèi)部調(diào)用出錯。

注:前向傳播參考IEEE2941.1-2022標準中的擴展維度接口。

7.3.1.18張量縮放和偏置

正向傳播對于輸入張量中的每個元素,執(zhí)行以下操作:。反向傳

播計算輸入張量、縮放因子和偏置的梯度。該接口正向、反向傳播的參數(shù)列表見表37和表38。

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

表37張量縮放和偏置正向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入表示輸入張量

縮放因子輸入任意數(shù)據(jù)類型標量,用于乘以輸入張量的系數(shù)。

偏置值輸入任意數(shù)據(jù)類型標量,加到縮放后的張量上的值。

輸出張量輸出應(yīng)用了縮放和偏置之后的張量。

表38張量縮放和偏置反向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入輸出梯度dOutput:正向傳播的輸出張量對某個損失函數(shù)的梯度。

輸出張量輸出輸入梯度dInput:損失函數(shù)相對于輸入張量的梯度。

輸出張量輸出縮放梯度dScale:損失函數(shù)相對于縮放因子的梯度。

輸出張量輸出偏置梯度dBias:損失函數(shù)相對于偏置的梯度。

函數(shù)返回值:

——沒有錯誤:操作成功。

——對象未初始化:表示輸入張量沒有初始化。

——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。

——分配失?。罕韽埩糠峙淇臻g不足。

——內(nèi)部錯誤:表示內(nèi)部調(diào)用出錯。

7.3.1.19張量重排

14

T/CESAXXXX—202X

正向傳播對張量進行重新排列,改變其形狀(shape)和/或維度(dimension)的順序,但保持數(shù)據(jù)

本身不變。反向傳播對梯度張量進行相反的重新排列,使其與正向傳播的輸入張量對齊。該接口正向、

反向傳播的參數(shù)列表見表39和表40。

表39張量重排正向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入待重排的原始張量。

重排規(guī)則輸入個定義新維度順序的模式,例如,從(N,H,W,C)到(N,C,H,W)的重排規(guī)則是(0,3,1,2)

輸出張量輸出重排后的張量。

表40張量重排反向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入正向傳播輸出張量的梯度。

輸出張量輸出重排后的梯度張量,與正向傳播的輸入張量對齊。

函數(shù)返回值:

——沒有錯誤:操作成功。

——對象未初始化:表示輸入張量沒有初始化。

——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。

——分配失?。罕韽埩糠峙淇臻g不足。

——內(nèi)部錯誤:表示內(nèi)部調(diào)用出錯。

7.3.1.20張量逐元素正負判斷

正向傳播對張量中的每個元素進行正負判斷,生成一個布爾值的張量代表逐元素正負。該接口正向、

反向傳播的參數(shù)列表見表41和表42。

表41張量逐元素正負判斷參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入表示輸入張量

輸出張量輸出表示正負判斷后的張量

函數(shù)返回值:

——沒有錯誤:操作成功。

——對象未初始化:表示輸入張量沒有初始化。

——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。

——分配失?。罕韽埩糠峙淇臻g不足。

——內(nèi)部錯誤:表示內(nèi)部調(diào)用出錯。

注:參考IEEE2941.1-2022標準中的張量正負判斷接口。

7.3.1.21張量類型轉(zhuǎn)換

將輸入張量的元素類型轉(zhuǎn)換為指定的新數(shù)據(jù)類型,并輸出轉(zhuǎn)換后的張量。該接口的參數(shù)列表見表

42。

15

T/CESAXXXX—202X

表42張量類型轉(zhuǎn)換參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入表示輸入張量

數(shù)據(jù)類型輸入表示要轉(zhuǎn)換的類型,可以為有符號整數(shù)、無符號整數(shù)、浮點實數(shù)、浮點復(fù)數(shù)、布爾等

輸出張量輸出表示類型轉(zhuǎn)換后的張量

函數(shù)返回值:

——沒有錯誤:操作成功。

——對象未初始化:表示輸入張量沒有初始化。

——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。

——分配失敗:表張量分配空間不足。

——內(nèi)部錯誤:表示內(nèi)部調(diào)用出錯。

注:參考IEEE2941.1-2022標準中的轉(zhuǎn)換數(shù)據(jù)類型接口。

7.3.1.22張量切片

正向傳播按照給定的起始位置、切片大小和步長數(shù)組,從輸入張量中提取出相應(yīng)的子張量。反向傳

播將梯度值傳遞回相應(yīng)的輸入張量的位置,其他位置的梯度值保持為零。該接口正向、反向傳播的參數(shù)

列表見表43和表44。

表43張量切片正向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入表示輸入張量

起始位置數(shù)組輸入表示每個維度提取起始位置數(shù)組,長度為輸入張量的維度

切片大小數(shù)組輸入表示每個維度提取大小數(shù)組,長度為輸入張量的維度

切片步長數(shù)組輸入表示每個維度上提取步長數(shù)組,長度為輸入張量的維度

輸出張量輸出表示輸出張量

表44張量切片反向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入正向傳播輸出張量的梯度。

輸出張量輸出一個與輸入張量同形狀的新張量,它的切片位置上填充有對應(yīng)的梯度值,而其他位置則填充零。

函數(shù)返回值:

——沒有錯誤:操作成功。

——對象未初始化:表示輸入張量沒有初始化。

——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。

——分配失?。罕韽埩糠峙淇臻g不足。

——內(nèi)部錯誤:表示內(nèi)部調(diào)用出錯。

注:前向傳播參考IEEE2941.1-2022標準中的張量切片接口。

7.3.1.23張量求和

正向傳播對對輸入張量在指定的維度上進行求和操作。反向傳播將梯度分配到求和操作前向傳播時

16

T/CESAXXXX—202X

參與求和的元素上。該接口正向、反向傳播的參數(shù)列表見表45和表46。

表45張量求和正向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入元素類型可以為有符號整數(shù)、無符號整數(shù)、浮點實數(shù)、浮點復(fù)數(shù)、布爾等

求和維度輸入進行規(guī)約的維度,可以同時求和多個維度

維度保留輸入對指定的維度進行規(guī)約后,是否保留相應(yīng)的維度,若保留則求和維度大小為1

輸出張量輸出表示計算結(jié)果

表46張量求和反向傳播參數(shù)列表

參數(shù)類型參數(shù)說明

輸入張量輸入正向傳播輸出張量的梯度。

輸出張量輸出與輸入張量同形狀的張量,其中每個被求和的維度上的元素梯度都是輸出梯度的副本。

函數(shù)返回值:

——沒有錯誤:操作成功。

——對象未初始化:表示輸入張量沒有初始化。

——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。

——分配失敗:表張量分配空間不足。

——內(nèi)部錯誤:表示內(nèi)部調(diào)用出錯。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論