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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

ICS35.040

CCSL71

團體標準

T/CESAXXXX—202X

人工智能科學計算共性算子功能要求

Artificialintelligence-Scientificcomputing-Functionalrequirements

ofcommonoperators

征求意見稿

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

已授權的專利證明材料為專利證書復印件或扉頁,已公開但尚未授權的專利申請

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

號和申請日期。

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

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

T/CESAXXXX—202X

人工智能科學計算共性算子功能要求

1范圍

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

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

本文件適用于人工智能算子庫的設計、開發(fā)與應用,也可用于指導人工智能領域計算框架與算子庫

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

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

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

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

文件。

GB/T41867-2022信息技術人工智能術語

ISO/IEC2382:2015InformationtechnologyVocabulary

IEEE2941.1-2022IEEEStandardforOperatorInterfacesofArtificialIntelligence

3術語和定義

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

3.1

科學計算sciencecomputing

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

模型,研究計算方法,設計并行算法,研制應用程序,開展模擬計算和分析計算結果等過程。

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錯誤處理

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

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

具體錯誤碼的情況,再返回一般性錯誤碼。本標準規(guī)定的錯誤碼見表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線程安全

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

a)同一個接口函數能夠被多線程同時調用;

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

保證同一序列的結果與其串行結果一致;如果存在數據競爭,則由調用者負責同步操作,而接口不提供

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

2

T/CESAXXXX—202X

5.7張量對象不透明性

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

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

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

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

口,即不對參數中的張量是否稀疏進行任何假設,但是要求標準實現者在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]

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

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

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

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

[?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操作的設備。如果存在多個同類型的設備,可通過指定設備編號來區(qū)分。

6.5其它擴展

用于提供自定義的擴展功能,比如內存管理等相關信息。

7科學計算算子接口

7.1接口概述

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

表3科學計算算子接口概述

接口名稱接口描述

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

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

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

素正負判斷、張量類型轉換、張量切片、張量求和、張量均值

復數操作判斷是否是復數、計算相位角、由極坐標表示計算復平面坐標、復數取模、復數轉換為實數、實數轉化為

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

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

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

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

4

T/CESAXXXX—202X

分數階微分數階微分

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

7.2應用場景

科學計算算子接口應用場景見表4。

表4科學計算算子應用場景

名稱場景涉及的算子

流體力學高階微分、積分操作、線性代數

結構力學分數階微分、積分操作、線性代數

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

控制論復數操作、積分操作、線性代數

生命科學高階微分、積分操作、線性代數

物質科學復數操作、積分操作、線性代數

地質學積分操作、線性代數

氣象學復數操作、積分操作、線性代數

空間科學復數操作、積分操作、線性代數

物理學復數操作、積分操作、線性代數、傅里葉變換

計算機圖形學積分操作、線性代數

7.3接口列表

7.3.1高階微分

7.3.1.1反向計算雅可比矩陣

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

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

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

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

表5反向計算雅可比矩陣參數列表

參數類型參數說明

待微分函數輸入要計算雅可比矩陣的函數。此函數的輸入參數應該是數組、標量。它應該返回數組或標量。

輸入張量輸入表示自變量,待微分函數的輸入

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

元素是附加數據。

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

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

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

雅可比矩陣輸出表示計算結果

函數返回值:

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

5

T/CESAXXXX—202X

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

——類型不匹配:表示參數的數據類型不一致。

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

——內部錯誤:表示內部調用出錯。

7.3.1.2海森矩陣

該算子用于計算函數的海森矩陣。

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

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

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

表6海森矩陣參數列表

參數類型參數說明

待微分函數輸入要計算海森矩陣的函數。此函數的輸入參數應該是數組、標量。它應該返回數組或標量。

輸入張量輸入表示自變量,待微分函數的輸入

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

元素是附加數據。

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

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

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

海森矩陣輸出表示計算結果

函數返回值:

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

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

——類型不匹配:表示參數的數據類型不一致。

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

——內部錯誤:表示內部調用出錯。

7.3.1.3逐元素加法

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

反向傳播對逐元素加法操作的結果C,計算其對A和B的導數。該接口的參數列表見表7。

C=A+B

表7逐元素加法正向傳播參數列表

參數類型參數說明

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

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

輸出張量輸出表示計算結果

表8逐元素加法反向傳播的參數列表

參數類型參數說明

輸入張量輸入關于輸出張量的梯度(從網絡后續(xù)部分傳回的)。

輸出張量輸出關于輸入張量A的梯度,與輸入的梯度相同。

輸出張量輸出關于輸入張量B的梯度,與輸入的梯度相同。

6

T/CESAXXXX—202X

函數返回值:

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

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

——類型不匹配:表示參數的數據類型不一致。

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

——內部錯誤:表示內部調用出錯。

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

7.3.1.4逐元素減法

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

反向傳播對逐元素減法操作的結果C,計算其對A和B的導數。該接口正向、反向傳播的參數

C=A?B

列表見表9和表10。

表9逐元素減法正向傳播參數列表

參數類型參數說明

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

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

輸出張量輸出表示計算結果

表10逐元素減法反向傳播參數列表

參數類型參數說明

輸入張量輸入關于輸出張量的梯度(從網絡后續(xù)部分傳回的)。

輸出張量輸出關于輸入張量A的梯度,與輸入的梯度相同。

輸出張量輸出關于輸入張量B的梯度,為輸入的梯度的負值。

函數返回值:

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

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

——類型不匹配:表示參數的數據類型不一致。

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

——內部錯誤:表示內部調用出錯。

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

7.3.1.5逐元素乘法

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

反向傳播對逐元素乘法操作的結果C,計算其對A和B的導數。該接口正向、反向傳播的參數

C=A?B

列表見表11和表12。

表11逐元素乘法正向傳播參數列表

參數類型參數說明

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

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

輸出張量輸出表示計算結果

7

T/CESAXXXX—202X

表12逐元素乘法反向傳播參數列表

參數類型參數說明

輸入張量輸入關于輸出張量C的梯度dC:從網絡后續(xù)部分傳回的梯度。

輸出張量輸出關于輸入張量A的梯度,計算為dC*B。

輸出張量輸出關于輸入張量B的梯度,計算為dC*A。

函數返回值:

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

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

——類型不匹配:表示參數的數據類型不一致。

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

——內部錯誤:表示內部調用出錯。

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

7.3.1.6逐元素除法

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

反向傳播對逐元素除法操作的結果C,計算其對A和B的導數。該接口正向、反向傳播的參數

C=A/B

列表見表13和表14。

表13逐元素除法正向傳播參數列表

參數類型參數說明

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

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

輸出張量輸出表示計算結果

表14逐元素除法反向傳播參數列表

參數類型參數說明

輸入張量輸入關于輸出張量C的梯度dC:從網絡后續(xù)部分傳回的梯度。

輸出張量輸出關于輸入張量A的梯度,計算為dC/B。

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

函數返回值:

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

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

——類型不匹配:表示參數的數據類型不一致。

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

——內部錯誤:表示內部調用出錯。

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

7.3.1.7逐元素雙曲正切函數運算

對逐元素雙曲正切函數運算操作的結果C,計算其對A的導數。該接口正向、反

向傳播的參數列表見表15和表16。

C=tanh(A)

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

參數類型參數說明

8

T/CESAXXXX—202X

輸入張量輸入元素類型可以為浮點數

輸出張量輸出表示計算結果

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

參數類型參數說明

輸入張量輸入關于輸出張量C的梯度dC:從網絡后續(xù)部分傳回的梯度。

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

函數返回值:

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

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

——類型不匹配:表示參數的數據類型不一致。

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

——內部錯誤:表示內部調用出錯。

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

7.3.1.8逐元素正弦函數運算

對逐元正弦函數運算操作的結果C,計算其對A的導數。該接口正向、反向傳播的

參數列表見表17和表18。

C=sin(A)

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

參數類型參數說明

輸入張量輸入元素類型可以為浮點數

輸出張量輸出表示計算結果

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

參數類型參數說明

輸入張量輸入關于輸出張量C的梯度dC:從網絡后續(xù)部分傳回的梯度。

輸出張量輸出關于輸入張量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:從網絡后續(xù)部分傳回的梯度。

輸出張量輸出關于輸入張量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:從網絡后續(xù)部分傳回的梯度。

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

函數返回值:

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

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

——類型不匹配:表示參數的數據類型不一致。

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

——內部錯誤:表示內部調用出錯。

7.3.1.11矩陣乘法

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

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

表23矩陣乘法正向傳播參數列表

參數類型參數說明

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

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

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

10

T/CESAXXXX—202X

表24矩陣乘法反向傳播參數列表

參數類型參數說明

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

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

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

函數返回值:

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

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

——類型不匹配:表示參數的數據類型不一致。

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

——內部錯誤:表示內部調用出錯。

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

7.3.1.12矩陣冪運算

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

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

C=?

表25矩陣冪運算正向傳播參數列表

參數類型參數說明

輸入張量輸入元素類型可以為浮點實數

冪輸入一個非負整數,表示冪指數

輸出張量輸出表示計算結果

表26矩陣冪運算反向傳播參數列表

參數類型參數說明

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

輸出張量輸出關于矩陣A的梯度dA。

函數返回值:

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

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

——類型不匹配:表示參數的數據類型不一致。

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

——內部錯誤:表示內部調用出錯。

7.3.1.13張量拷貝

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

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

數列表見表27和表28。

表27張量拷貝正向傳播參數列表

參數類型參數說明

輸入張量輸入被復制的張量

輸出張量輸出復制操作后的張量

11

T/CESAXXXX—202X

表28張量拷貝反向傳播參數列表

參數類型參數說明

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

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

函數返回值:

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

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

——類型不匹配:表示參數的數據類型不一致。

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

——內部錯誤:表示內部調用出錯。

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

7.3.1.14張量拼接

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

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

表29張量拼接正向傳播參數列表

參數類型參數說明

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

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

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

表30張量拼接反向傳播參數列表

參數類型參數說明

輸入張量輸入關于拼接后張量的梯度dConcatenated:從網絡后續(xù)部分傳回的梯度。

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

函數返回值:

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

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

——類型不匹配:表示參數的數據類型不一致。

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

——內部錯誤:表示內部調用出錯。

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

7.3.1.15張量擴展

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

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

表31張量擴展正向傳播參數列表

參數類型參數說明

輸入張量輸入待擴展的張量,任意數據類型。

形狀輸入給定輸入張量擴展后的形狀,應為一維數組。

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

12

T/CESAXXXX—202X

表32張量擴展反向傳播參數列表

參數類型參數說明

前向輸出張量輸入關于擴展后張量的梯度dExpanded:從網絡后續(xù)部分傳來的梯度。

高階導數張量輸出關于原始張量T的梯度dT:與原始張量T相同形狀的梯度。

函數返回值:

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

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

——類型不匹配:表示參數的數據類型不一致。

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

——內部錯誤:表示內部調用出錯。

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

7.3.1.16張量刪除維度

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

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

表33張量刪除維度正向傳播參數列表

參數類型參數說明

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

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

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

表34張量刪除維度反向傳播參數列表

參數類型參數說明

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

高階導數張量輸出梯度張量dInput:恢復到與輸入張量相同形狀的梯度張量。

函數返回值:

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

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

——類型不匹配:表示參數的數據類型不一致。

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

——內部錯誤:表示內部調用出錯。

注:前向傳播參考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張量縮放和偏置

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

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

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

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

參數類型參數說明

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

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

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

輸出張量輸出應用了縮放和偏置之后的張量。

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

參數類型參數說明

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

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

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

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

函數返回值:

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

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

——類型不匹配:表示參數的數據類型不一致。

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

——內部錯誤:表示內部調用出錯。

7.3.1.19張量重排

14

T/CESAXXXX—202X

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

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

反向傳播的參數列表見表39和表40。

表39張量重排正向傳播參數列表

參數類型參數說明

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

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

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

表40張量重排反向傳播參數列表

參數類型參數說明

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

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

函數返回值:

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

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

——類型不匹配:表示參數的數據類型不一致。

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

——內部錯誤:表示內部調用出錯。

7.3.1.20張量逐元素正負判斷

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

反向傳播的參數列表見表41和表42。

表41張量逐元素正負判斷參數列表

參數類型參數說明

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

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

函數返回值:

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

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

——類型不匹配:表示參數的數據類型不一致。

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

——內部錯誤:表示內部調用出錯。

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

7.3.1.21張量類型轉換

將輸入張量的元素類型轉換為指定的新數據類型,并輸出轉換后的張量。該接口的參數列表見表

42。

15

T/CESAXXXX—202X

表42張量類型轉換參數列表

參數類型參數說明

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

數據類型輸入表示要轉換的類型,可以為有符號整數、無符號整數、浮點實數、浮點復數、布爾等

輸出張量輸出表示類型轉換后的張量

函數返回值:

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

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

——類型不匹配:表示參數的數據類型不一致。

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

——內部錯誤:表示內部調用出錯。

注:參考IEEE2941.1-2022標準中的轉換數據類型接口。

7.3.1.22張量切片

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

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

列表見表43和表44。

表43張量切片正向傳播參數列表

參數類型參數說明

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

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

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

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

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

表44張量切片反向傳播參數列表

參數類型參數說明

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

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

函數返回值:

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

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

——類型不匹配:表示參數的數據類型不一致。

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

——內部錯誤:表示內部調用出錯。

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

7.3.1.23張量求和

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

16

T/CESAXXXX—202X

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

表45張量求和正向傳播參數列表

參數類型參數說明

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

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

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

輸出張量輸出表示計算結果

表46張量求和反向傳播參數列表

參數類型參數說明

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

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

函數返回值:

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

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

——類型不匹配:表示參數的數據類型不一致。

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

——內部錯誤:表示內部調用出錯。

溫馨提示

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

評論

0/150

提交評論