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

下載本文檔

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

文檔簡介

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

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論