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

下載本文檔

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

文檔簡介

1T/CESAXXXX—202X人工智能科學計算共性算子功能要求本文件規(guī)定了人工智能科學計算類算子(主要包括高階微分、復數(shù)操作、傅里葉變換、線性代數(shù)、分數(shù)階微分、積分操作6類)的功能要求。本文件適用于人工智能算子庫的設計、開發(fā)與應用,也可用于指導人工智能領域計算框架與算子庫和芯片的系統(tǒng)集成與開發(fā)。2規(guī)范性引用文件下列文件中的內容通過文中的規(guī)范性引用而構成本文件必不可少的條款。其中,注日期的引用文件,僅該日期對應的版本適用于本文件;不注日期的引用文件,其最新版本(包括所有的修改單)適用于本文件。GB/T41867-2022信息技術人工智能術語ISO/IEC2382:2015InformationtechnologyVocabularyIEEE2941.1-2022IEEEStandardforOperatorInterfacesofArtificialIntelligence3術語和定義GB/T41867-2022和IEEE2941.1-2022界定的以及下列術語和定義適用于本文件。3.1科學計算sciencecomputing科學計算是指利用計算機再現(xiàn)、預測和發(fā)現(xiàn)客觀世界運動規(guī)律和演化特性的全過程,包括建立物理模型,研究計算方法,設計并行算法,研制應用程序,開展模擬計算和分析計算結果等過程。3.2共性算子commonoperator共性算子是指在人工智能科學計算領域中,能夠跨越不同科學和工程學科的界限,服務于多種計算模型和算法的基礎計算單元或操作。4縮略語下列縮略語適用于本文件。ASIC:專用集成電路(applicationspecificintegratedcircuit)CPU:中央處理器(centralprocessingunit)FPGA:現(xiàn)場可編程門陣列(fieldprogrammablegatearray)GPU:圖形處理器(graphicprocessingunit)2T/CESAXXXX—202XNPU:神經(jīng)網(wǎng)絡處理器(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)者應將低維張量操作數(shù)自動廣播以匹配高維張量操作數(shù)的維數(shù)來完成運算。例如:當其中一個張量操作數(shù)的維度為0,也即標量時,要求標準實現(xiàn)者在操作內部將標量自動廣播成和另一個操作數(shù)形狀相同的張量來完成計算,不限定具體實現(xiàn)方式,比如可以直接通過專用硬件實現(xiàn)。5.5錯誤處理本文件的接口錯誤處理原則為對于不可修復錯誤,直接退出操作,而對于可修復錯誤,采用返回錯誤碼方式,由標準使用者決定如何處理錯誤,返回錯誤碼時應優(yōu)先返回相對具體的錯誤碼,在沒有對應具體錯誤碼的情況,再返回一般性錯誤碼。本標準規(guī)定的錯誤碼見表1。表1錯誤碼無注:本標準允許使用者提供其他自定義的錯誤返回碼。5.6線程安全接口函數(shù)應該適用于多線程環(huán)境:a)同一個接口函數(shù)能夠被多線程同時調用;b)不同線程可以調用不同接口函數(shù)序列。如果不存在數(shù)據(jù)競爭,那么執(zhí)行順序可以任意,但是要保證同一序列的結果與其串行結果一致;如果存在數(shù)據(jù)競爭,則由調用者負責同步操作,而接口不提供同步這樣的線程管理功能。3T/CESAXXXX—202X5.7張量對象不透明性張量類對象對接口使用者不透明,需通過對應的句柄和相應的接口函數(shù)對其進行管理、訪問和操作,給予標準實現(xiàn)者更大的自由度去為不同的場景和硬件進行優(yōu)化。5.8稠密張量和稀疏張量接口一致性本標準中稠密和稀疏張量的構建操作采用不同的接口,而基于兩種張量的各類操作則采用統(tǒng)一的接口,即不對參數(shù)中的張量是否稀疏進行任何假設,但是要求標準實現(xiàn)者在Tensor類中要有標識張量是否稀疏的成員變量。5.9量化的支持5.9.1量化方式本標準支持對稱和非對稱兩種量化方式。5.9.2量化數(shù)據(jù)類型量化數(shù)據(jù)類型見表2。表2量化數(shù)據(jù)類型8位有符號通道級對稱量化整數(shù)(QT_SYM_PER16位有符號通道級對稱量化整數(shù)(QT_5.9.3量化的粒度量化的粒度主要可分為張量級和通道級:a)張量級量化:張量內部所有數(shù)據(jù)共享同一個scale。支持的數(shù)據(jù)類型有:8位有符號對稱量化整數(shù)和16位有符號對稱量化整數(shù),可選支持8位無符號非對稱量化整數(shù)、8位有符號非對稱量化整數(shù)、16位無符號非對稱量化整數(shù)和16位有符號非對稱量化整數(shù)。b)通道級量化:張量內部同一通道的數(shù)據(jù)共享同一個scale。支持的數(shù)據(jù)類型有:8位有符號通道級對稱量化整數(shù)和16位有符號通道級對稱量化整數(shù)。6數(shù)據(jù)結構6.1元素類型用于描述元素的數(shù)據(jù)類型。支持無符號整數(shù):8位、16位、32位、64位;有符號整數(shù):8位、16位、32位、64位;浮點實數(shù):16位、32位、64位;浮點復數(shù)32+32)位、(64+64)位;布爾類型,字符串類型等。4T/CESAXXXX—202X6.2形狀信息用于描述張量維數(shù)和每一維的大小。如果張量維數(shù)為n,每一維對應的大小為d0,d1,d2,…,dn?1,則張量的形狀可以表示為[d0,d1,d2,…,dn?1],最左邊的為第1維,最右邊的為第n維。例如:標量維數(shù)為0,形狀為[];向量維數(shù)為1,形狀為[d0];矩陣維數(shù)為2,形狀為[d0,d1]。6.3布局信息用于描述張量的存儲格式以及張量各個維度的邏輯順序。存儲格式包括稠密存儲和稀疏存儲。邏輯順序指張量遍歷讀取和存儲具體數(shù)據(jù)時,各個維度的優(yōu)先順序。儲,其次取邏輯順序中最左邊第2個元素1,對應到當前要遍歷的維度d1,按照(0,1,2,…,d1?1)的次首先儲,其次取邏輯順序中最左邊第2個元素1,對應到當前要遍歷的維度d1,按照(0,1,2,…,d1?1)的次對應維度d0=d0=2,其次取邏輯順序中的第二個元素1=1,對應維度d1=d1=3,則張量數(shù)據(jù)物理 上第一個元素對應的坐標為[0,0],第二個元素對應的坐標為[1,0],第三個元素對應的坐標為[0,1],以此類推。當使用稠密存儲時,默認的邏輯順序為[n-1,n-2,…,0]。當使用稀疏存儲時,標準實現(xiàn)者需要對所采用的具體格式進行詳細說明。6.4設備信息用于描述張量數(shù)據(jù)存儲的設備類型和設備編號。其中設備類型包括CPU、GPU、FPGA、ASIC、NPU等任何支持AI操作的設備。如果存在多個同類型的設備,可通過指定設備編號來區(qū)分。6.5其它擴展用于提供自定義的擴展功能,比如內存管理等相關信息。7科學計算算子接口7.1接口概述科學計算算子接口名稱和描述見表3。表3科學計算算子接口概述反向計算雅可比矩陣、海森矩陣、逐元素加法、逐元素減法、逐元素乘法、逐元素除張量拷貝、張量拼接、張量擴展、張量刪除維度、張量增加維度、張量縮放和偏判斷是否是復數(shù)、計算相位角、由極坐標表示計算復平面坐標、復數(shù)取模、復數(shù)轉換復數(shù)、復數(shù)愛因斯坦求和、以均勻分布隨機數(shù)創(chuàng)建稠密復數(shù)張量、創(chuàng)建元素值全為指換5T/CESAXXXX—202X分7.2應用場景科學計算算子接口應用場景見表4。表4科學計算算子應用場景7.3接口列表7.3.1高階微分7.3.1.1反向計算雅可比矩陣該算子使用反向傳播計算函數(shù)的雅可比矩陣。Jacobian對象被創(chuàng)建后,采用惰性求值方法進行計算,對其進行多維索引來獲取整個雅可比矩陣或子矩陣,進行實際求值計算并返回結果。在實際求值的過程中,對計算完畢的子矩陣進行緩存,避免在后續(xù)的索引過程中產(chǎn)生重復計算。該接口的參數(shù)列表見表5。表5反向計算雅可比矩陣參數(shù)列表布爾變量,指待微分函數(shù)是否返回一個元組,其中第一個元素是數(shù)學此變量為真表示待微分函數(shù)返回的是這樣的元組結構,它會正確計算函數(shù)返回值:——沒有錯誤:操作成功。6T/CESAXXXX—202X——對象未初始化:表示輸入張量沒有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足。——內部錯誤:表示內部調用出錯。7.3.1.2海森矩陣該算子用于計算函數(shù)的海森矩陣。Hessian對象被創(chuàng)建后,采用部分惰性求值方法進行計算,對其進行多維索引來獲取整個海森矩陣或子矩陣,進行實際求值計算并返回結果。在實際求值的過程中,對計算完畢的子矩陣進行緩存,避免在后續(xù)的索引過程中產(chǎn)生重復計算。該接口的參數(shù)列表見表6。表6海森矩陣參數(shù)列表要計算海森矩陣的函數(shù)。此函數(shù)的輸入?yún)?shù)應該是數(shù)組、標量。它應布爾變量,指待微分函數(shù)是否返回一個元組,其中第一個元素是數(shù)學此變量為真表示待微分函數(shù)返回的是這樣的元組結構,它會正確計算函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。7.3.1.3逐元素加法正向傳播對兩個張量逐元素求和C=A+B。反向傳播對逐元素加法操作的結果C,計算其對A和B的導數(shù)。該接口的參數(shù)列表見表7。表7逐元素加法正向傳播參數(shù)列表表8逐元素加法反向傳播的參數(shù)列表7T/CESAXXXX—202X函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化。——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。——分配失?。罕韽埩糠峙淇臻g不足。——內部錯誤:表示內部調用出錯。注:前向傳播參考IEEE2941.1-2022標準中的張量加法操作接口。7.3.1.4逐元素減法正向傳播對兩個張量逐元素求差C=A?B。反向傳播對逐元素減法操作的結果C,計算其對A和B的導數(shù)。該接口正向、反向傳播的參數(shù)列表見表9和表10。表9逐元素減法正向傳播參數(shù)列表參數(shù)類型參數(shù)說明表10逐元素減法反向傳播參數(shù)列表參數(shù)類型參數(shù)說明函數(shù)返回值:——沒有錯誤:操作成功。——對象未初始化:表示輸入張量沒有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。注:前向傳播參考IEEE2941.1-2022標準中的張量減法操作接口。7.3.1.5逐元素乘法正向傳播對兩個張量逐元素求乘積C=A?B。反向傳播對逐元素乘法操作的結果C,計算其對A和B的導數(shù)。該接口正向、反向傳播的參數(shù)列表見表11和表12。表11逐元素乘法正向傳播參數(shù)列表8T/CESAXXXX—202X表12逐元素乘法反向傳播參數(shù)列表函數(shù)返回值:——沒有錯誤:操作成功。——對象未初始化:表示輸入張量沒有初始化。——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足。——內部錯誤:表示內部調用出錯。注:前向傳播參考IEEE2941.1-2022標準中的張量乘法操作接口。7.3.1.6逐元素除法正向傳播對兩個張量逐元素做除法C=A/B。反向傳播對逐元素除法操作的結果C,計算其對A和B的導數(shù)。該接口正向、反向傳播的參數(shù)列表見表13和表14。表13逐元素除法正向傳播參數(shù)列表表14逐元素除法反向傳播參數(shù)列表函數(shù)返回值:——沒有錯誤:操作成功。——對象未初始化:表示輸入張量沒有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。注:前向傳播參考IEEE2941.1-2022標準中的張量除法操作接口。7.3.1.7逐元素雙曲正切函數(shù)運算對逐元素雙曲正切函數(shù)運算操作C=tanh(A)的結果C,計算其對A的導數(shù)。該接口正向、反向傳播的參數(shù)列表見表15和表16。表15逐元素正切函數(shù)運算正向傳播參數(shù)列表9T/CESAXXXX—202X表16逐元素正切函數(shù)運算反向傳播參數(shù)列表函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。注:前向傳播參考IEEE2941.1-2022標準中的正切函數(shù)接口。7.3.1.8逐元素正弦函數(shù)運算對逐元正弦函數(shù)運算操作C=sin(A)的結果C,計算其對A的導數(shù)。該接口正向、反向傳播的參數(shù)列表見表17和表18。表17逐元素正弦函數(shù)運算正向傳播參數(shù)列表參數(shù)類型參數(shù)說明表18逐元素正弦函數(shù)運算反向傳播參數(shù)列表參數(shù)類型參數(shù)說明函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足。——內部錯誤:表示內部調用出錯。注:前向傳播參考IEEE2941.1-2022標準中的正弦函數(shù)接口。7.3.1.9逐元素余弦函數(shù)運算對逐元余弦函數(shù)運算操作C=cos(A)的結果C,計算其對A的導數(shù)。該接口正向、反向傳播的參數(shù)列表見表19和表20。表19逐元素余弦函數(shù)運算正向傳播參數(shù)列表T/CESAXXXX—202X表20逐元素余弦函數(shù)運算反向傳播參數(shù)列表函數(shù)返回值:——沒有錯誤:操作成功。——對象未初始化:表示輸入張量沒有初始化。——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足。——內部錯誤:表示內部調用出錯。注:前向傳播參考IEEE2941.1-2022標準中的余弦函數(shù)接口。7.3.1.10逐元素Sigmoid函數(shù)運算對逐元素Sigmoid函數(shù)運算操作C=Sigmoid(A)的結果C,計算其對A的導數(shù)。該接口正向、反向傳播的參數(shù)列表見表21和表22。表21逐元素Sigmoid函數(shù)運算正向傳播參數(shù)列表表22逐元素Sigmoid函數(shù)運算反向傳播參數(shù)列表關于輸入張量A的梯度,計算為dC?C?(1-C)。函數(shù)返回值:——沒有錯誤:操作成功。——對象未初始化:表示輸入張量沒有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足。——內部錯誤:表示內部調用出錯。7.3.1.11矩陣乘法前向傳播用于計算兩個矩陣乘積。反向傳播基于輸出矩陣C的梯度,計算其對輸入矩陣A和B的梯度影響。該接口正向、反向傳播的參數(shù)列表見表23和表24。表23矩陣乘法正向傳播參數(shù)列表T/CESAXXXX—202X表24矩陣乘法反向傳播參數(shù)列表關于輸出矩陣C的梯度dC:從網(wǎng)絡后續(xù)部分傳回的梯度,具有函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。注:前向傳播參考IEEE2941.1-2022標準中的矩陣乘法接口。7.3.1.12矩陣冪運算正向傳播計算矩陣的冪,即C=An。反向傳播基于輸出矩陣C的梯度,計算其對輸入矩陣A的梯度影響。該接口正向、反向傳播的參數(shù)列表見表25和表26。表25矩陣冪運算正向傳播參數(shù)列表冪表26矩陣冪運算反向傳播參數(shù)列表關于輸出矩陣C的梯度dC:從網(wǎng)絡后續(xù)部分傳回的梯函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。7.3.1.13張量拷貝在前向傳播時,張量拷貝操作創(chuàng)建了一個內容相同的新張量。此算子將對拷貝結果的張量計算其關于原始張量的高階微分。反向傳播將關于副本張量的梯度傳遞回原始張量。該接口正向、反向傳播的參數(shù)列表見表27和表28。表27張量拷貝正向傳播參數(shù)列表T/CESAXXXX—202X表28張量拷貝反向傳播參數(shù)列表關于張量副本的梯度dCopies:從網(wǎng)絡后續(xù)部分傳回的梯度,關于原張量T的梯度dT:是所有副本梯度的累加函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。注:前向傳播參考IEEE2941.1-2022標準中的復制張量接口。7.3.1.14張量拼接前向傳播將多個張量沿著指定軸拼接成一個新的張量。反向傳播將關于拼接后張量的梯度分配回原始張量。該接口正向、反向傳播的參數(shù)列表見表29和表30。表29張量拼接正向傳播參數(shù)列表軸表30張量拼接反向傳播參數(shù)列表關于拼接后張量的梯度dConcatenated:從網(wǎng)函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。注:前向傳播參考IEEE2941.1-2022標準中的張量合并接口。7.3.1.15張量擴展這個算子在前向傳播中將一個張量擴展到一個更大的形狀,在反向傳播中將關于擴展后張量的梯度壓縮回原始張量的形狀。該接口正向、反向傳播的參數(shù)列表見表31和表32。表31張量擴展正向傳播參數(shù)列表T/CESAXXXX—202X表32張量擴展反向傳播參數(shù)列表關于擴展后張量的梯度dExpanded:從函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致。——分配失?。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。注:前向傳播參考IEEE2941.1-2022標準中的擴張張量接口。7.3.1.16張量刪除維度此算子用于張量刪除維度操作(squeeze)。反向傳播在傳入梯度已刪除維度的位置上添加維度,恢復到與輸入張量相同的形狀。該接口正向、反向傳播的參數(shù)列表見表33和表34。表33張量刪除維度正向傳播參數(shù)列表表34張量刪除維度反向傳播參數(shù)列表梯度張量dInput:恢復到與輸入張量相同形函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足。——內部錯誤:表示內部調用出錯。注:前向傳播參考IEEE2941.1-2022標準中的刪除維度接口。7.3.1.17張量增加維度此算子用于張量增加維度操作(unsqueeze)。反向傳播從梯度張量中去除前向傳播中增加的維度,以恢復到原始輸入張量的形狀。該接口正向、反向傳播的參數(shù)列表見表35和表36。表35張量增加維度正向傳播參數(shù)列表T/CESAXXXX—202X表36張量增加維度反向傳播參數(shù)列表梯度張量dOutput:表示增加維度后的輸梯度張量dInput:恢復到原始輸入張量形函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。注:前向傳播參考IEEE2941.1-2022標準中的擴展維度接口。7.3.1.18張量縮放和偏置正向傳播對于輸入張量中的每個元素,執(zhí)行以下操作:output[i]=scale×input[i]+bias。反向傳播計算輸入張量、縮放因子和偏置的梯度。該接口正向、反向傳播的參數(shù)列表見表37和表38。表37張量縮放和偏置正向傳播參數(shù)列表表38張量縮放和偏置反向傳播參數(shù)列表輸出梯度dOutput:正向傳播的輸出張量對某個損輸入梯度dInput:損失函數(shù)相對于輸函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化。——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。——分配失?。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。7.3.1.19張量重排T/CESAXXXX—202X正向傳播對張量進行重新排列,改變其形狀(shape)和/或維度(dimension)的順序,但保持數(shù)據(jù)本身不變。反向傳播對梯度張量進行相反的重新排列,使其與正向傳播的輸入張量對齊。該接口正向、反向傳播的參數(shù)列表見表39和表40。表39張量重排正向傳播參數(shù)列表個定義新維度順序的模式,例如,從(N,H,W,C)到(表40張量重排反向傳播參數(shù)列表函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化。——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。7.3.1.20張量逐元素正負判斷正向傳播對張量中的每個元素進行正負判斷,生成一個布爾值的張量代表逐元素正負。該接口正向、反向傳播的參數(shù)列表見表41和表42。表41張量逐元素正負判斷參數(shù)列表函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足。——內部錯誤:表示內部調用出錯。注:參考IEEE2941.1-2022標準中的張量正負判斷接口。7.3.1.21張量類型轉換將輸入張量的元素類型轉換為指定的新數(shù)據(jù)類型,并輸出轉換后的張量。該接口的參數(shù)列表見表42。T/CESAXXXX—202X表42張量類型轉換參數(shù)列表表示要轉換的類型,可以為有符號整數(shù)、無符號整數(shù)、浮點實數(shù)、函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。注:參考IEEE2941.1-2022標準中的轉換數(shù)據(jù)類型接口。7.3.1.22張量切片正向傳播按照給定的起始位置、切片大小和步長數(shù)組,從輸入張量中提取出相應的子張量。反向傳播將梯度值傳遞回相應的輸入張量的位置,其他位置的梯度值保持為零。該接口正向、反向傳播的參數(shù)列表見表43和表44。表43張量切片正向傳播參數(shù)列表表44張量切片反向傳播參數(shù)列表一個與輸入張量同形狀的新張量,它的切片位置上填充有對應的梯度值函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足。——內部錯誤:表示內部調用出錯。注:前向傳播參考IEEE2941.1-2022標準中的張量切片接口。7.3.1.23張量求和正向傳播對對輸入張量在指定的維度上進行求和操作。反向傳播將梯度分配到求和操作前向傳播時T/CESAXXXX—202X參與求和的元素上。該接口正向、反向傳播的參數(shù)列表見表45和表46。表45張量求和正向傳播參數(shù)列表元素類型可以為有符號整數(shù)、無符號整數(shù)、浮點實對指定的維度進行規(guī)約后,是否保留相應的維度,若保留則表46張量求和反向傳播參數(shù)列表與輸入張量同形狀的張量,其中每個被求和的維度上的元素函數(shù)返回值:——沒有錯誤:操作成功。——對象未初始化:表示輸入張量沒有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。注:前向傳播參考IEEE2941.1-2022標準中的規(guī)約接口。7.3.1.24張量均值正向傳播前向功能對輸入張量在指定的維度上進行均值(平均值)操作,可以選擇是否保留計算均值后的維度。在反向傳播時,會均勻地將梯度分配到均值操作前向傳播時參與計算的元上。該接口正向、反向傳播的參數(shù)列表見表47和表48。表47張量均值正向傳播參數(shù)列表元素類型可以為有符號整數(shù)、無符號整數(shù)、浮點實對指定的維度進行求均值后,是否保留相應的維度,若保留則求表48張量均值反向傳播參數(shù)列表與輸入張量同形狀的張量,其中每個被求均值的維度上的元素函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致。T/CESAXXXX—202X——分配失?。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。注:前向傳播參考IEEE2941.1-2022標準中的規(guī)約接口。7.3.2復數(shù)操作7.3.2.1判斷是否是復數(shù)判斷輸入的張量數(shù)據(jù)類型是否是復數(shù)。該接口的參數(shù)列表見表49。表49判斷是否是復數(shù)函數(shù)參數(shù)列表函數(shù)返回值:——沒有錯誤:操作成功?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致?!獌炔垮e誤:表示內部調用出錯。7.3.2.2計算相位角求復數(shù)的相位角。該接口的參數(shù)列表見表50。表50計算相位角參數(shù)列表表示計算結果,與輸入張量精度和形狀一致函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。注:對于負實數(shù)返回pi,對于非負實數(shù)返回零,并傳播None。7.3.2.3由極坐標表示計算復平面坐標求復數(shù)的相位角。該接口的參數(shù)列表見表51。表51由極坐標表示計算復平面坐標參數(shù)列表表示要計算的復數(shù)的相位角,與模值形狀一致表示計算結果,與輸入張量精度和形狀一致函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化。T/CESAXXXX—202X——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。7.3.2.4復數(shù)取模求復數(shù)的相位角。該接口的參數(shù)列表見表52。表52復數(shù)取模參數(shù)列表表示計算結果,與輸入張量精度和形狀一致函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。7.3.2.5復數(shù)轉換為實數(shù)將復數(shù)Tensor看作實數(shù)Tensor。返回的實數(shù)Tensor的最后一維大小為2,由復數(shù)的實部和虛部組成。該接口的參數(shù)列表見表53。表53復數(shù)轉換為實數(shù)參數(shù)列表表示計算結果,與輸入張量精度一致,假設輸入張量形狀是[*,]則輸出函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化。——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。7.3.2.6實數(shù)轉化為復數(shù)將實數(shù)張量轉換為復數(shù)張量。返回的實數(shù)Tensor的最后一維大小為2,由復數(shù)的實部和虛部組成。該接口的參數(shù)列表見表54。表54實數(shù)轉化為復數(shù)參數(shù)列表表示計算結果,與輸入張量精度一致,假設輸入張量形狀是[*,2]則輸函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化。T/CESAXXXX—202X——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。——分配失?。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。7.3.2.7復數(shù)愛因斯坦求和該函數(shù)用于對一組輸入張量進行愛因斯坦求和,輸入張量允許為復數(shù)。該接口的參數(shù)列表見表55。表55愛因斯坦求和參數(shù)列表表示計算結果,與輸入張量精度一致函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化。——類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。7.3.2.8以均勻分布隨機數(shù)創(chuàng)建稠密復數(shù)張量返回復數(shù)張量,張量的元素模值大小服從范圍[min,max)內均勻分布的隨機張量。該接口的參數(shù)列表見表56。表56以均勻分布隨機數(shù)創(chuàng)建稠密復數(shù)張量參數(shù)列表函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。7.3.2.9創(chuàng)建元素值全為指定復數(shù)的稠密復數(shù)張量創(chuàng)建元素值全為指定復數(shù)的稠密張量。該接口的參數(shù)列表見表57。表57創(chuàng)建元素值全為指定復數(shù)的稠密復數(shù)張量參數(shù)列表T/CESAXXXX—202X用于初始化輸出張量的常量數(shù)據(jù)的值。注意該參數(shù)不可超過輸出變量包括張量的維度,維度大小數(shù)組,以及布局信息,其中布局信息沒有函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。7.3.2.10創(chuàng)建元素值全為0+0i的稠密復數(shù)張量創(chuàng)建元素值全為0+0i的稠密張量。該接口的參數(shù)列表見表58。表58創(chuàng)建元素值全為0+0i的稠密復數(shù)張量參數(shù)列表包括張量的維度,維度大小數(shù)組,以及布局信息,其中布局信息沒有函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致。——分配失?。罕韽埩糠峙淇臻g不足?!獌炔垮e誤:表示內部調用出錯。7.3.2.11復數(shù)張量切片沿多個軸生成輸入張量的切片。使用軸、起始標記和結尾標記屬性來指定軸列表中每個軸的起點和終點位置,并使用此信息來對輸入張量切片。如果向起始標記或結尾標記傳遞負值如?i,則表示該軸的反向第i?1個位置(這里以0為初始位置)。如果傳遞給起始標記或結尾標記的值大于n(維度中的元素數(shù)目則表示n。當切片一個未知數(shù)量的維度時,建議傳入整形最大值。軸、起始標記和結尾標記三個參數(shù)的元素數(shù)目必須相等。該接口的參數(shù)列表見表59。表59復數(shù)張量切片參數(shù)列表軸函數(shù)返回值:——沒有錯誤:操作成功。——對象未初始化:表示輸入張量沒有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致?!峙涫。罕韽埩糠峙淇臻g不足。T/CESAXXXX—202X——內部錯誤:表示內部調用出錯。7.3.3傅里葉變換7.3.3.1二維離散傅里葉變換通過快速傅里葉變換(FFT)算法對M維張量中的兩維計算離散傅里葉變換,默認為最后兩維。該接口的參數(shù)列表見表60。表60快速傅里葉變換函數(shù)參數(shù)列表表示需要進行傅里葉變換的輸入張量,數(shù)據(jù)函數(shù)返回值:——沒有錯誤:操作成功?!獙ο笪闯跏蓟罕硎据斎霃埩繘]有初始化?!愋筒黄ヅ洌罕硎緟?shù)的數(shù)據(jù)類型不一致。——分配失?。罕韽埩糠峙淇臻g不足?!欠▍?shù):表示參數(shù)不合法?!獌炔垮e誤:表示內部調用出錯。7.3.3.2二維離散逆傅里

溫馨提示

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

最新文檔

評論

0/150

提交評論