人工智能 算子接口 第1部分:基礎(chǔ)數(shù)學(xué)類 征求意見稿_第1頁
人工智能 算子接口 第1部分:基礎(chǔ)數(shù)學(xué)類 征求意見稿_第2頁
人工智能 算子接口 第1部分:基礎(chǔ)數(shù)學(xué)類 征求意見稿_第3頁
人工智能 算子接口 第1部分:基礎(chǔ)數(shù)學(xué)類 征求意見稿_第4頁
人工智能 算子接口 第1部分:基礎(chǔ)數(shù)學(xué)類 征求意見稿_第5頁
已閱讀5頁,還剩367頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1GB/TXXXXX.1—XXXX人工智能算子接口第1部分:基礎(chǔ)數(shù)學(xué)類本文件規(guī)定了面向人工智能領(lǐng)域的算子接口的通則、核心數(shù)據(jù)結(jié)構(gòu)以及基礎(chǔ)數(shù)學(xué)類算子接口的基本功能和參數(shù)的要求。本文件適用于人工智能算子庫的設(shè)計、開發(fā)與應(yīng)用,也可用于指導(dǎo)人工智能領(lǐng)域計算框架與算子庫和芯片的系統(tǒng)集成與開發(fā)。2規(guī)范性引用文件本文件沒有規(guī)范性引用文件。3術(shù)語和定義下列術(shù)語和定義適用于本文件。3.1算子operator人工智能相關(guān)硬件操作的封裝實現(xiàn),是構(gòu)建人工智能應(yīng)用的基礎(chǔ)組成部分。3.2算子接口operatorinterface是一套標(biāo)準(zhǔn)化的規(guī)定,用于描述和實現(xiàn)各類數(shù)學(xué)運算、邏輯運算或其他復(fù)雜計算單元的接口。注:算子接口定義了一套規(guī)范化的API,使得開發(fā)人員能夠以一致的方3.3封裝encapsulation將數(shù)據(jù)和與數(shù)據(jù)相關(guān)的操作綁定在一起,形成一個獨立單元的過程。3.4張量tensor由同一類型元素所組成的多維數(shù)組。3.52GB/TXXXXX.1—XXXX高維張量highdimensionaltensor維度高于2的張量。3.6稠密張量densetensor元素全部或大部分為非零值的張量。3.7稀疏張量sparsetensor含有一定比例零值元素的張量。3.8張量切片tensorslice指從張量中選取或提取部分元素的操作。假定張量x是形狀為[D0,D1,…,Dn?1]的n維張量,那么xd0,d1,...,di,...,dk是指取x的第i維度是di(0≤i<k≤n,0≤di<Di)的元素,它的返回結(jié)果為數(shù)值或形狀為[Dk,Dk+1,Dk+2,…,Dn?1]的n?k維張量。本文中張量切片也可寫作為x[d0,d1,...,di,...,dk]。注:如果上述k等于n,那么返回結(jié)果為數(shù)值,該操作也被稱為“張量索引(tensorindex)”。3.9人工智能加速處理器artificialintelligenceacceleratorprocessor具備適配人工智能算法的運算微架構(gòu),能夠完成人工智能應(yīng)用運算處理的集成電路元件。3.10批batch訓(xùn)練樣本的一部分。3.11廣播broadcasting針對形狀不同的兩個張量進行逐元素運算時可采用的方法。4縮略語下列縮略語適用于本文件。CPU:中央處理單元(CentralProcessingUnit)GPU:圖形處理單元(GraphicProcessingUnit)NPU:神經(jīng)網(wǎng)絡(luò)處理器(Neural-networkProcessingUnit)FPGA:現(xiàn)場可編程門陣列(FieldProgrammableGateArray)ASIC:專用集成電路(ApplicationSpecificIntegratedCircuit)5總則3GB/TXXXXX.1—XXXX5.1起始下標(biāo)本文件所涉及的數(shù)據(jù)或數(shù)據(jù)結(jié)構(gòu)中的元素索引編號和計數(shù)應(yīng)從0開始。5.2參數(shù)信息5.2.1本文件定義的算子接口參數(shù)列表、參數(shù)順序、返回值描述方式等為算子接口的一種標(biāo)準(zhǔn)化語言定義,在實際實現(xiàn)過程中可根據(jù)應(yīng)用情況進行調(diào)整。5.2.2本文件定義的算子接口參數(shù)列表為實現(xiàn)該算子接口的最小參數(shù)集合,在實際實現(xiàn)過程中可根據(jù)應(yīng)用情況進行參數(shù)的擴充。5.2.3本文件對算子接口的參數(shù)定義了必選與可選兩類,參數(shù)順序執(zhí)行必選參數(shù)在前,可選參數(shù)在后。其中必選參數(shù)表示必須實現(xiàn)且使用接口時必須傳入,可選參數(shù)表示必須實現(xiàn)但使用接口時可以不傳(即有默認(rèn)值)。用選擇是否實現(xiàn)。若實際編程接口中參數(shù)順序與本文件不一致,但是參數(shù)完整性保持5.2.4本文中針對算子接口參數(shù)中的可選參數(shù),設(shè)置了默認(rèn)值。默認(rèn)值是在用戶沒有對算子的可選參數(shù)進行賦值時而被算子采用的數(shù)值,其數(shù)值大小是根據(jù)目前市場主流上層應(yīng)用而選取的,例如pytorch、paddlepaddle、mindspore、tensorflow等上層應(yīng)用。5.3編程語言算子接口可用多種編程語言實現(xiàn),C語言參考定義參見附錄A。5.4自動廣播兩個形狀不同的張量進行逐元素運算應(yīng)進行自動廣播,擴充維度數(shù)值較小的張量以匹配維度數(shù)值較大的張量來完成運算。5.5狀態(tài)處理算子執(zhí)行時應(yīng)返回狀態(tài)碼,狀態(tài)碼分為成功和未成功(即錯誤)兩類。對于算子執(zhí)行過程中不可修復(fù)的錯誤,應(yīng)直接退出;對于可修復(fù)錯誤,應(yīng)采用返回錯誤狀態(tài)碼方式,由算子接口使用者決定如何處理錯誤。返回錯誤狀態(tài)碼時應(yīng)優(yōu)先返回相對具體的錯誤狀態(tài)碼,部分狀態(tài)碼應(yīng)符合表1的規(guī)定。表1狀態(tài)碼STATUS_UNINITIALIZE4GB/TXXXXX.1—XXXX表1狀態(tài)碼(續(xù))5.6接口一致性稀疏張量和稠密張量的構(gòu)建應(yīng)采用不同的接口,而基于兩種張量的各類操作可以采用統(tǒng)一的接口或是不同的接口,如果采用不同的接口,接口應(yīng)添加標(biāo)識。5.7泛型標(biāo)量類型對于定義算子接口時無法確定數(shù)據(jù)類型的參數(shù),可將其定義為泛型標(biāo)量類(Scalar)。泛型標(biāo)量類型表示參數(shù)可以根據(jù)運行時的實際數(shù)據(jù)傳入不同類型的數(shù)值。在接口實現(xiàn)過程中,若部分參數(shù)定義為泛型標(biāo)量類型,則認(rèn)為該接口實現(xiàn)符合本文件定義。6數(shù)據(jù)結(jié)構(gòu)6.1概要本文件使用張量作為核心數(shù)據(jù)結(jié)構(gòu),承載數(shù)據(jù),張量數(shù)據(jù)結(jié)構(gòu)應(yīng)包含元素類型、形狀信息、布局信息、設(shè)備信息及其他擴展信息。6.2元素類型用于描述元素的數(shù)據(jù)類型。包括無符號整數(shù):8位;有符號整數(shù):8位、16位、32位、64位;浮點實數(shù):16位、32位、64位;浮點復(fù)數(shù)32+32)位、(64+64)位;布爾類型,字符串類型等。用于描述元素的數(shù)據(jù)類型,可選包括:無符號整數(shù):16位,32位,64位。6.3形狀信息用于描述張量維數(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.4布局信息用于描述張量的存儲格式以及張量各個維度的邏輯順序。存儲格式包括稠密存儲和稀疏存儲。邏輯順序指張量遍歷讀取和存儲具體數(shù)據(jù)時,各個維度的優(yōu)先順序。當(dāng)使用稠密存儲時,對于形狀為[d0,d1,d2,…,dn?1],邏輯順序為[0,1,…,n-2,n-1]的n維向量,首先取邏輯順序中最左邊第1位元素r0,對應(yīng)到當(dāng)前要遍歷的維度dr0,按照(0,1,2,…,dr0?1)的次序存儲,其次取邏輯順序中最左邊第2位元素r1,對應(yīng)到當(dāng)前要遍歷的維度dr1,按照(0,1,2,…,dr1?1)的次序存儲,以此類推。例如:張量形狀為[2,3],邏輯順序為[0,1],則先取邏輯順序最左側(cè)的第一個元素r0=0,對應(yīng)維度dr0=d0=2,其次取邏輯順序中的第二個元素r1=1,對應(yīng)維度dr1=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īng)為[n-1,n-2,…,0]。5GB/TXXXXX.1—XXXX當(dāng)使用稀疏存儲時,標(biāo)準(zhǔn)實施者應(yīng)對所采用的具體格式進行詳細說明。6.5設(shè)備信息用于描述張量數(shù)據(jù)存儲和運算的設(shè)備類型和設(shè)備編號。其中設(shè)備類型包括CPU、GPU、NPU、FPGA和ASIC等任何支持AI操作的設(shè)備或人工智能加速處理器。如果存在多個同類型的設(shè)備,可通過指定設(shè)備編號來區(qū)分。6.6其它擴展用于提供自定義的擴展功能,比如內(nèi)存管理等相關(guān)信息。7基礎(chǔ)數(shù)學(xué)類算子接口7.1接口列表基礎(chǔ)數(shù)學(xué)類算子接口列表見表2。表2基礎(chǔ)數(shù)學(xué)類算子接口列表拷貝已有數(shù)據(jù)創(chuàng)建稠密張量,引用已有數(shù)據(jù)全零稠密張量,按指定值創(chuàng)建稠密張量,創(chuàng)建建連續(xù)內(nèi)存張量,以均勻分布隨機數(shù)創(chuàng)建稠密隨機數(shù)創(chuàng)建稠密張量,以伯努利分布創(chuàng)建稠密布創(chuàng)建稠密張量,以數(shù)字序列創(chuàng)建稠密張量,分布稠密張量,創(chuàng)建稀疏張量,創(chuàng)建量化張量張量分拆,張量合并,張量堆疊,張量拆堆復(fù),張量補全,張量逆序變換,張量循環(huán)滾剪,張量數(shù)值裁剪,張量聚集,張量發(fā)散更張量,張量翻轉(zhuǎn),張量正負判斷,條件判斷張量加法操作,張量減法操作,張量乘法操作,張量乘加操作,張量逐元素取最大值,張量逐元素取最小值,張量絕對值操作,判斷張量是否相等,判斷張量是否不等,判6GB/TXXXXX.1—XXXX表2基礎(chǔ)數(shù)學(xué)類算子接口列表(續(xù))矩陣乘法,向量內(nèi)積,LU矩陣分解,cholesky矩陣分解,SVD奇異值分解,線性方程組求解,求逆,求特征值以及特征向量,矩陣范數(shù),線作7.2接口操作和參數(shù)7.2.1張量創(chuàng)建與銷毀7.2.1.1拷貝已有數(shù)據(jù)創(chuàng)建稠密張量7.2.1.1.1功能創(chuàng)建張量,若初始化數(shù)組不為空,則拷貝數(shù)組的值到張量空間進行初始化,否則創(chuàng)建一個空張量。7.2.1.1.2接口參數(shù)拷貝已有數(shù)據(jù)創(chuàng)建稠密張量函數(shù)前向接口應(yīng)符合表3,C代碼示例見A.2.1.1。表3拷貝已有數(shù)據(jù)創(chuàng)建稠密張量函數(shù)參數(shù)列表7GB/TXXXXX.1—XXXX表3拷貝已有數(shù)據(jù)創(chuàng)建稠密張量函數(shù)參數(shù)列表(續(xù))可以為CPU、GPU、NPU、FPGA和ASIC等,需保證初始化張量的設(shè)備類型和初始化數(shù)組的長度中未被覆蓋部分應(yīng)被初始化為0。若張量空間小于初始化數(shù)組,則按照張7.2.1.1.3接口返回值沒有錯誤:操作成功。類型不匹配:張量的數(shù)據(jù)類型不一致。非法參數(shù):輸入?yún)?shù)超出范圍。內(nèi)存不足:創(chuàng)建張量分配空間不足。維度不匹配:張量和初始化張量維度不匹配。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.1.2引用已有數(shù)據(jù)創(chuàng)建稠密張量7.2.1.2.1功能創(chuàng)建張量,對參數(shù)傳入數(shù)組的數(shù)據(jù)進行引用。7.2.1.2.2接口參數(shù)引用已有數(shù)據(jù)創(chuàng)建稠密張量函數(shù)前向接口應(yīng)符合表4,C代碼示例見A.2.1.2。表4引用已有數(shù)據(jù)創(chuàng)建稠密張量函數(shù)參數(shù)列表可以為CPU、GPU、NPU、FPGA和ASIC等,需保證初始化張量的設(shè)備類型和7.2.1.2.3接口返回值沒有錯誤:操作成功。8GB/TXXXXX.1—XXXX非法參數(shù):權(quán)重與偏置張量的維度與輸入輸出張量不匹配。內(nèi)存不足:創(chuàng)建張量分配空間不足。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.1.3創(chuàng)建全零稠密張量7.2.1.3.1功能創(chuàng)建元素值全為0的稠密張量。7.2.1.3.2接口參數(shù)創(chuàng)建全零稠密張量函數(shù)前向接口應(yīng)符合表5,C代碼示例見A.2.1.3。表5創(chuàng)建全零稠密張量函數(shù)參數(shù)列表可以為CPU、GPU、NPU、FPGA和ASI7.2.1.3.3接口返回值沒有錯誤:操作成功。非法參數(shù):表示參數(shù)出錯。內(nèi)存不足:創(chuàng)建張量分配空間不足。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.1.4按指定值創(chuàng)建稠密張量7.2.1.4.1功能創(chuàng)建元素為某指定值的稠密張量。7.2.1.4.2接口參數(shù)按指定值創(chuàng)建稠密張量函數(shù)前向接口應(yīng)符合表6,C代碼示例見A.2.1.4。表6按指定值創(chuàng)建稠密張量函數(shù)參數(shù)列表可以為CPU、GPU、NPU、FPGA和ASI包括張量的維度,維度大小數(shù)組,以及布局信息,其中布局信息沒有指9GB/TXXXXX.1—XXXX表6按指定值創(chuàng)建稠密張量函數(shù)參數(shù)列表(續(xù))7.2.1.4.3接口返回值沒有錯誤:操作成功。非法參數(shù):表示參數(shù)出錯。內(nèi)存不足:創(chuàng)建張量分配空間不足。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.1.5創(chuàng)建未初始化張量7.2.1.5.1功能根據(jù)指定的類型、設(shè)備和形狀創(chuàng)建張量。創(chuàng)建的張量中的數(shù)據(jù)為申請到的內(nèi)存原本的數(shù)據(jù)內(nèi)容,未經(jīng)歸零或者初始化,可能是任意合法的值。7.2.1.5.2接口參數(shù)創(chuàng)建未初始化張量函數(shù)前向接口應(yīng)符合表7,C代碼示例見A.2.1.5。表7創(chuàng)建未初始化張量函數(shù)參數(shù)列表可以為CPU、GPU、NPU、FPGA和ASI7.2.1.5.3接口返回值沒有錯誤:操作成功。內(nèi)存不足:表示輸出向量分配空間不足非法參數(shù):表示其他參數(shù)不合法。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.1.6創(chuàng)建連續(xù)內(nèi)存張量7.2.1.6.1功能如果輸入張量的數(shù)據(jù)在內(nèi)存中是連續(xù)存放的,則不做處理返回這個連續(xù)的輸入張量,否則會將當(dāng)前張量的數(shù)據(jù)復(fù)制到一段連續(xù)的內(nèi)存上,返回復(fù)制后擁有連續(xù)內(nèi)存的張量。7.2.1.6.2接口參數(shù)生成連續(xù)內(nèi)存張量函數(shù)前向接口應(yīng)符合表8,C代碼示例見A.2.1.6。GB/TXXXXX.1—XXXX表8生成連續(xù)內(nèi)存張量函數(shù)參數(shù)列表7.2.1.6.3接口返回值沒有錯誤:操作成功。對象未初始化:表示輸入張量對象不合法內(nèi)存不足:表示輸出向量分配空間不足非法參數(shù):表示其他參數(shù)不合法。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.1.7以均勻分布隨機數(shù)創(chuàng)建稠密張量7.2.1.7.1功能創(chuàng)建的稠密張量中的每個元素均是從符合對應(yīng)均勻分布中隨機生成的。7.2.1.7.2接口參數(shù)以均勻分布隨機數(shù)創(chuàng)建稠密張量函數(shù)前向接口應(yīng)符合表9,C代碼示例見A.2.1.7。表9以均勻分布隨機數(shù)創(chuàng)建稠密張量函數(shù)參數(shù)列表可以為CPU、GPU、NPU、FPGA和ASI生成隨機數(shù)的種子。若隨機種子為0,表示使用系統(tǒng)的隨機7.2.1.7.3接口返回值沒有錯誤:操作成功。非法參數(shù):表示參數(shù)出錯。內(nèi)存不足:創(chuàng)建張量分配空間不足。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.1.8以正態(tài)分布隨機數(shù)創(chuàng)建稠密張量GB/TXXXXX.1—XXXX7.2.1.8.1功能創(chuàng)建的稠密張量中的每個元素均是從符合對應(yīng)正態(tài)分布中隨機生成的。7.2.1.8.2接口參數(shù)以正態(tài)分布隨機數(shù)創(chuàng)建稠密張量函數(shù)前向接口應(yīng)符合表10,C代碼示例見A.2.1.8。表10以正態(tài)分布隨機數(shù)創(chuàng)建稠密張量函數(shù)參數(shù)列表可以為CPU、GPU、NPU、FPGA和AS生成隨機數(shù)的種子,若隨機種子為0,表示使用系統(tǒng)的隨機種子7.2.1.8.3接口返回值沒有錯誤:操作成功。非法參數(shù):表示參數(shù)出錯。內(nèi)存不足:創(chuàng)建張量分配空間不足。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.1.9以伯努利分布創(chuàng)建稠密張量7.2.1.9.1功能創(chuàng)建服從伯努利分布(0-1分布)的稠密張量。7.2.1.9.2接口參數(shù)創(chuàng)建伯努利分布稠密張量函數(shù)前向接口應(yīng)符合表11,C代碼示例見A.2.1.9。表11創(chuàng)建伯努利分布稠密張量函數(shù)參數(shù)列表7.2.1.9.3接口返回值沒有錯誤:操作成功。非法參數(shù):表示參數(shù)出錯。GB/TXXXXX.1—XXXX內(nèi)存不足:創(chuàng)建張量分配空間不足。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.1.10以多項式分布創(chuàng)建稠密張量7.2.1.10.1功能以輸入張量偽概率,創(chuàng)建服從多項式分布的張量。7.2.1.10.2接口參數(shù)以多項式分布創(chuàng)建稠密張量函數(shù)前向接口應(yīng)符合表12,C代碼示例見A.2.1.10。表12以多項式分布創(chuàng)建稠密張量函數(shù)參數(shù)列表7.2.1.10.3接口返回值沒有錯誤:操作成功。非法參數(shù):表示參數(shù)出錯。內(nèi)存不足:創(chuàng)建張量分配空間不足。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.1.11創(chuàng)建隨機排列的一維稠密張量7.2.1.11.1功能從[0,最大值)范圍內(nèi)取出每個整數(shù),隨機排列后組成一個一維稠密張量。7.2.1.11.2接口參數(shù)創(chuàng)建隨機排列(randperm)的一維張量函數(shù)前向接口應(yīng)符合表13,C代碼示例見A.2.1.11。表13創(chuàng)建隨機排列(randperm)的一維張量函數(shù)參數(shù)列表可以為CPU、GPU、NPU、FPGA和ASI7.2.1.11.3接口返回值沒有錯誤:操作成功。非法參數(shù):表示參數(shù)出錯。內(nèi)存不足:創(chuàng)建張量分配空間不足。GB/TXXXXX.1—XXXX其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.1.12以數(shù)字序列創(chuàng)建稠密張量7.2.1.12.1功能創(chuàng)建一維稠密張量的數(shù)字序列,張量中的值以初始值開始,按步長進行擴展到上限值為止。7.2.1.12.2接口參數(shù)以數(shù)字序列創(chuàng)建稠密張量函數(shù)前向接口應(yīng)符合表14,C代碼示例見A.2.1.12。表14以數(shù)字序列創(chuàng)建稠密張量函數(shù)參數(shù)列表可以為CPU、GPU、NPU、FPGA和ASI7.2.1.12.3接口返回值沒有錯誤:操作成功。非法參數(shù):表示參數(shù)出錯。內(nèi)存不足:創(chuàng)建張量分配空間不足。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.1.13創(chuàng)建線性空間均勻分布稠密張量7.2.1.13.1功能創(chuàng)建一維稠密張量,張量中的值是在區(qū)間起點和區(qū)間終點之間,均勻間隔的N個數(shù)。7.2.1.13.2接口參數(shù)創(chuàng)建線性空間均勻分布稠密張量函數(shù)前向接口應(yīng)符合表15,C代碼示例見A.2.1.13。表15創(chuàng)建線性空間均勻分布稠密張量函數(shù)參數(shù)列表可以為CPU、GPU、NPU、FPGA和ASIGB/TXXXXX.1—XXXX7.2.1.13.3接口返回值沒有錯誤:操作成功。非法參數(shù):由起點、終點、數(shù)據(jù)個數(shù)指定的區(qū)間不合法。分配空間失?。簞?chuàng)建張量分配空間不足。7.2.1.14創(chuàng)建稀疏張量7.2.1.14.1功能創(chuàng)建稀疏張量,包括二維及高維稀疏張量的創(chuàng)建。7.2.1.14.2接口參數(shù)創(chuàng)建稀疏張量函數(shù)前向接口應(yīng)符合表16,C代碼示例見A.2.1.14。表16創(chuàng)建稀疏張量函數(shù)參數(shù)列表可以為CPU、GPU、NPU、FPGA和ASI非零元素值組成的一維數(shù)組,長度為“非零元個數(shù)”7.2.1.14.3接口返回值沒有錯誤:操作成功。非法參數(shù):表示參數(shù)出錯。內(nèi)存不足:創(chuàng)建張量分配空間不足。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作7.2.1.15創(chuàng)建量化張量7.2.1.15.1功能創(chuàng)建量化張量,若有初始化數(shù)組則用其值進行初始化,否則創(chuàng)建一個空張量。7.2.1.15.2接口參數(shù)創(chuàng)建量化張量函數(shù)前向接口應(yīng)符合表17,C代碼示例見A.2.1.15。GB/TXXXXX.1—XXXX表17創(chuàng)建量化張量函數(shù)參數(shù)列表對稱量化整數(shù)、8位有符號非對稱量化整數(shù)、16位無符號非對稱量化整數(shù)和16位有符號非對稱量化整數(shù)、8位有符號通道級對稱量化整數(shù)和16位有符號通道級對稱量化整數(shù),默認(rèn)值為16位有可以為CPU、GPU、NPU、FPGA和ASI初始化值數(shù)組長度組大小進行拷貝,張量中未被覆蓋部分應(yīng)被初始化為0。若張量空間小于度為1;如果通道級量化,則縮放因子的長度為張量形狀7.2.1.15.3接口返回值沒有錯誤:操作成功。非法參數(shù):表示參數(shù)出錯。內(nèi)存不足:創(chuàng)建張量分配空間不足。維度不匹配:張量和初始化數(shù)組維度不匹配。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.1.15.4其他附加說明張量級(tensor-wise)量化:張量內(nèi)部所有數(shù)據(jù)共享同一個scale。支持的數(shù)據(jù)類型有:8位有符號對稱量化整數(shù)和16位有符號對稱量化整數(shù),可選支持8位無符號非對稱量化整數(shù)、8位有符號非對稱量化整數(shù)、16位無符號非對稱量化整數(shù)和16位有符號非對稱量化整數(shù)。通道級(channel-wise)量化:張量內(nèi)部同一通道的數(shù)據(jù)共享同一個scale。支持的數(shù)據(jù)類型有:8位有符號通道級對稱量化整數(shù)和16位有符號通道級對稱量化整數(shù)。非對稱量化應(yīng)符合式(1)-式子(3):r=min(maxx,a,b)...................................................................(1)式中:min-表示取兩個數(shù)之間的最小值。max-表示取兩個數(shù)之間的最大值。x-待被量化的浮點值;a-待量化浮點數(shù)中的最小值;GB/TXXXXX.1—XXXXb-待量化浮點數(shù)中的最大值;r-表示被限定在區(qū)間[a,b]的待量化浮點數(shù).................................................................................式中:b-待量化浮點數(shù)中的最大值;a-待量化浮點數(shù)中的最小值;n-表示具體量化級別k(例如8比特)所對應(yīng)的最大值,即2k;S-表示縮放因子;q=l................................................................................(3)式中:r-表示被限定在區(qū)間[a,b]的待量化浮點數(shù);S-表示縮放因子;lm」——表示將m四舍五入到最近的整數(shù)。對稱量化應(yīng)符合式(4)-式(5):M=max(absx).......................................................................(4)式中:max--表示取兩個數(shù)之間的最大值;abs--表示對數(shù)值取絕對值。q=?n?1).........................................................................(5)式中:x——待被量化的浮點值;M——待量化浮點數(shù)中的最大值(可取到);n-表示具體量化級別k(例如8比特)所對應(yīng)的最大值,即2k;q——量化得到的整數(shù);m——表示將m四舍五入到最近的整數(shù)。無論是對稱量化還是非對稱量化,應(yīng)符合式(6)。x=(q?zero_point)?scale..............................................................(6)式中:x——待被量化的浮點值;q——量化得到的整數(shù);zero_point——零點值,對稱量化即zero_point=0的特殊情況;scale——縮放因子。7.2.1.16復(fù)制張量7.2.1.16.1功能GB/TXXXXX.1—XXXX對張量進行復(fù)制操作。7.2.1.16.2接口參數(shù)復(fù)制張量函數(shù)前向接口應(yīng)符合表18,C代碼示例見A.2.1.16。表18復(fù)制張量函數(shù)參數(shù)列表7.2.1.16.3接口返回值沒有錯誤:操作成功。非法參數(shù):表示參數(shù)出錯。內(nèi)存不足:創(chuàng)建張量分配空間不足。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.1.16.4其他附加說明新張量的數(shù)據(jù)是被復(fù)制張量的拷貝,但是存放在新分配的空間中。7.2.1.17復(fù)制對角線元素創(chuàng)建張量7.2.1.17.1功能創(chuàng)建一個對角矩陣,并使用指定1維張量來初始化對角線元素的值。7.2.1.17.2接口參數(shù)復(fù)制對角線元素函數(shù)前向接口應(yīng)符合表19,C代碼示例見A.2.1.17。表19復(fù)制對角線元素函數(shù)參數(shù)列表7.2.1.17.3接口返回值沒有錯誤:操作成功。非法參數(shù):表示參數(shù)出錯。內(nèi)存不足:創(chuàng)建張量分配空間不足。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.1.18銷毀張量7.2.1.18.1功能銷毀某個指定張量。7.2.1.18.2接口參數(shù)GB/TXXXXX.1—XXXX銷毀張量函數(shù)前向接口應(yīng)符合表20,C代碼示例見A.2.1.18。表20銷毀張量函數(shù)參數(shù)列表7.2.1.18.3函數(shù)返回值沒有錯誤:操作成功。非法參數(shù):表示參數(shù)出錯。對象未初始化:表示傳入的為空指針,無法銷毀。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.2張量查詢與檢查7.2.2.1形狀查詢7.2.2.1.1功能獲取張量的形狀。7.2.2.1.2接口參數(shù)形狀查詢函數(shù)前向接口應(yīng)符合表21,C代碼示例見A.2.2.1。表21形狀查詢函數(shù)參數(shù)列表7.2.2.1.3接口返回值沒有錯誤:操作成功。非法參數(shù):表示參數(shù)出錯。7.2.2.2有限檢查7.2.2.2.1功能檢查張量數(shù)值是否是有限的,即不包含未定義數(shù)值或者無窮值(nan或inf)。若不包含,則設(shè)置output[0]=true,否則設(shè)置output[0]=false。7.2.2.2.2接口參數(shù)有限檢查函數(shù)前向接口應(yīng)符合表22,C代碼示例見A.2.2.2。表22有限檢查函數(shù)參數(shù)列表表示檢查的結(jié)果張量,形狀與輸入張量形狀一致GB/TXXXXX.1—XXXX7.2.2.2.3函數(shù)返回值沒有錯誤:操作成功。非法參數(shù):表示參數(shù)出錯。7.2.2.3無窮檢查7.2.2.3.1功能檢查張量是否包含無窮值inf,有則返回true。7.2.2.3.2接口參數(shù)無窮檢查函數(shù)前向接口應(yīng)符合表23,C代碼示例見A.2.2.3。表23無窮檢查函數(shù)參數(shù)列表表示檢查的結(jié)果張量,形狀與輸入張量形狀一致7.2.2.3.3函數(shù)返回值沒有錯誤:操作成功。非法參數(shù):表示參數(shù)出錯。7.2.2.4未定義數(shù)檢查7.2.2.4.1功能檢查張量是否包含未定義數(shù)值nan,有則返回true。7.2.2.4.2接口參數(shù)未定義數(shù)檢查函數(shù)前向接口應(yīng)符合表24,C代碼示例見A.2.2.4。表24未定義數(shù)檢查函數(shù)參數(shù)列表表示檢查的結(jié)果張量,形狀與輸入張量形狀一致7.2.2.4.3接口返回值沒有錯誤:操作成功。非法參數(shù):表示參數(shù)出錯。7.2.2.5元素個數(shù)查詢7.2.2.5.1功能獲取張量元素的個數(shù)。7.2.2.5.2接口參數(shù)GB/TXXXXX.1—XXXX元素個數(shù)查詢函數(shù)前向接口應(yīng)符合表25,C代碼示例見A.2.2.5。表25元素個數(shù)查詢函數(shù)參數(shù)列表7.2.2.5.3接口返回值沒有錯誤:操作成功。非法參數(shù):表示參數(shù)出錯。7.2.2.6秩查詢7.2.2.6.1功能獲取張量的秩。7.2.2.6.2接口參數(shù)秩查詢函數(shù)前向接口應(yīng)符合表26,C代碼示例見A.2.2.6。表26秩查詢函數(shù)參數(shù)列表7.2.2.6.3接口返回值沒有錯誤:操作成功。非法參數(shù):表示參數(shù)出錯。7.2.2.7連續(xù)內(nèi)存檢查7.2.2.7.1功能判斷輸入張量的數(shù)據(jù)在內(nèi)存中是否是連續(xù)存放的,若是,則返回布爾值true,否則返回布爾值false。7.2.2.7.2接口參數(shù)連續(xù)內(nèi)存檢查函數(shù)前向接口應(yīng)符合表27,C代碼示例見A.2.2.7。表27連續(xù)內(nèi)存檢查函數(shù)參數(shù)列表7.2.2.7.3函數(shù)返回值GB/TXXXXX.1—XXXX沒有錯誤:操作成功。對象未初始化:表示輸入張量對象不合法。非法參數(shù):表示其他參數(shù)不合法。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.3張量轉(zhuǎn)換7.2.3.1轉(zhuǎn)換數(shù)據(jù)類型7.2.3.1.1功能轉(zhuǎn)換張量的數(shù)據(jù)類型。輸出張量的每個元素是對應(yīng)輸入張量元素轉(zhuǎn)換成參數(shù)“數(shù)據(jù)類型”的類型之后的結(jié)果。輸入張量原始類型和欲轉(zhuǎn)換成的類型必須能夠兼容。從復(fù)數(shù)轉(zhuǎn)換成實數(shù),只保留實部;從實數(shù)轉(zhuǎn)換成復(fù)數(shù),虛部為零。7.2.3.1.2接口參數(shù)轉(zhuǎn)換數(shù)據(jù)類型函數(shù)前向接口應(yīng)符合表28,C代碼示例見A.2.3.1。表28轉(zhuǎn)換數(shù)據(jù)類型函數(shù)參數(shù)列表7.2.3.1.3接口返回值沒有錯誤:操作成功。類型不匹配:表示輸入張量對象的類型和要轉(zhuǎn)換的類型不兼容。對象未初始化:表示輸入張量對象不合法內(nèi)存不足:表示輸出向量分配空間不足非法參數(shù):表示其他參數(shù)不合法。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.3.2改變張量形狀7.2.3.2.1功能改變張量的形狀。新的維度表示的元素數(shù)量必須與原張量的元素數(shù)量一致。滿足一定條件就in-place執(zhí)行(也稱為bitcast),否則進行拷貝(out-of-place)。In-place執(zhí)行條件:能夠為新的維度找到一種布局,使得這種布局與張量原來的布局相兼容,在此布局下不需要改變底層數(shù)據(jù)物理存儲的排布,可以直接修改維度信息,并賦予相應(yīng)的兼容布局??截悾╫ut-of-place若不滿足in-place執(zhí)行的條件,則需要基于新的形狀創(chuàng)建新的張量,進行數(shù)據(jù)拷貝,布局指定為默認(rèn)布局。其中輸入張量的讀取和輸出張量的寫入按照各自布局規(guī)定的順序進GB/TXXXXX.1—XXXX布局兼容:為方便描述,我們把維度順序稱為布局,把遵循行優(yōu)先的布局稱為連續(xù)的布局。對于一個n維張量來說,若其布局為{n-1,n-2,…,0},則其為布局是連續(xù)的。基于此,在張量的布局?jǐn)?shù)組中,從左到右遍歷,按1遞減的部分就可以認(rèn)為是連續(xù)的子布局。以一個5維張量T0為例,假設(shè)其維度為{d0,d1,d2,d3,d4},布局?jǐn)?shù)組為{3,2,4,1,0}(物理內(nèi)存地址每加1時,按照d3,d2,d4,d1,d0的順序?qū)S度遍歷),則此布局最少可以分割為3個連續(xù)的子布局,即{{3,2},{4},{1,0}},相當(dāng)于其維度劃分為三個子塊{{d0,d1},{d2,d3},{d4}},對應(yīng)的元素數(shù)量為{{d0?d1},{d2?d3},{d4}}。因此從整體上看,張量T0可以看做一個新的維度數(shù)量為3,維度大小為{D0,D1,D2}(其中D0=d0?d1,D1=d2?d3,D2=d4),布局?jǐn)?shù)組為{1,2,0}的張量。此時,新的維度、布局與原維度、布局是兼容的,兩者相互轉(zhuǎn)換時,可以進行inplace的reshape操作。在上述例子的基礎(chǔ)上,若新的維度數(shù)量為4,維度大小為{D0,D1,D2,D3}(其中D0=d0?d1,D1=d2?d3,D2?D3=d4布局為{1,3,2,0},此時也是布局兼容的。7.2.3.2.2接口參數(shù)改變張量形狀函數(shù)前向接口應(yīng)符合表29,C代碼示例見A.2.3.2。表29改變張量形狀函數(shù)參數(shù)列表7.2.3.2.3接口返回值沒有錯誤:操作成功。維度不匹配:表示輸入張量對象的維度總大小和輸出張量維度總大小不一致。對象未初始化:表示輸入張量對象不合法內(nèi)存不足:表示輸出向量分配空間不足非法參數(shù):表示其他參數(shù)不合法。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.3.3擴展維度7.2.3.3.1功能在輸入張量的指定維度插入大小為1的新維度,但不改變其他維度和總的形狀大小。7.2.3.3.2接口參數(shù)擴展維度函數(shù)前向接口應(yīng)符合表30,C代碼示例見A.2.3.3。表30擴展維度函數(shù)參數(shù)列表GB/TXXXXX.1—XXXX7.2.3.3.3接口返回值沒有錯誤:操作成功。超出范圍:表示插入位置超出輸入張量的維度。對象未初始化:表示輸入張量對象不合法。內(nèi)存不足:表示輸出向量分配空間不足。非法參數(shù):表示其他參數(shù)不合法。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.3.4刪除維度7.2.3.4.1功能在輸入張量的指定維度刪除為1的維度,但不改變其他維度和總形狀大小。如果刪除位置的維度不為1,不進行任何處理。7.2.3.4.2接口參數(shù)刪除維度函數(shù)前向接口應(yīng)符合表31,C代碼示例見A.2.3.4。表31刪除維度函數(shù)參數(shù)列表表示刪除位置數(shù)組長度。如果是0,則處理所有7.2.3.4.3函數(shù)返回值沒有錯誤:操作成功。超出范圍:表示刪除位置超出輸入張量的維度。對象未初始化:表示輸入張量對象不合法。內(nèi)存不足:表示輸出向量分配空間不足。非法參數(shù):表示其他參數(shù)不合法。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.3.5張量轉(zhuǎn)置7.2.3.5.1功能轉(zhuǎn)置張量。如果置換維度數(shù)組不為空,則輸入張量第i維會變成輸出張量的第(置換維度數(shù)組[i])維;如果置換維度數(shù)組為空,則當(dāng)輸入張量形狀為(i[0],i[1],...i[n-2],i[n-1]),則輸出張量形狀為(i[n-1],i[n-2],...i[1],i[0])。7.2.3.5.2接口參數(shù)張量轉(zhuǎn)置函數(shù)前向接口應(yīng)符合表32,C代碼示例見A.2.3.5。GB/TXXXXX.1—XXXX表32張量轉(zhuǎn)置函數(shù)參數(shù)列表置換維度數(shù)組長度7.2.3.5.3函數(shù)返回值沒有錯誤:操作成功。類型不匹配:表示輸入張量對象的類型和要轉(zhuǎn)換的類型不兼容對象未初始化:表示輸入張量對象不合法內(nèi)存不足:表示輸出向量分配空間不足非法參數(shù):表示其他參數(shù)不合法。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.3.6張量分拆7.2.3.6.1功能在指定維度,將輸入張量進行分拆。7.2.3.6.2接口參數(shù)張量分拆函數(shù)前向接口應(yīng)符合表33,C代碼示例見A.2.3.6。表33張量分拆函數(shù)參數(shù)列表表示分拆大小數(shù)組。以split_sizes表示分拆大小數(shù)組,如果不為空,則表示分拆后所輸出張量數(shù)組,其長度為參數(shù)“分拆數(shù)量”7.2.3.6.3接口返回值沒有錯誤:操作成功。對象未初始化:表示輸入張量對象不合法。超出范圍:表示axis超出輸入張量維度。內(nèi)存不足:表示輸出向量分配空間不足非法參數(shù):表示其他參數(shù)不合法。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。GB/TXXXXX.1—XXXX7.2.3.7張量合并7.2.3.7.1功能在指定維度,將輸入張量數(shù)組進行合并。所有輸入張量除了“合并維度”的維度可以不一樣,其他維度的大小必須相等。如果“輸入張量數(shù)組[i]”形狀為[D0,D1,…,Dxis,…,Dndim?1],那么合并后的形狀[D0,D1,…,ΣDxis,…,Dndim?1]。7.2.3.7.2接口參數(shù)張量合并函數(shù)前向接口應(yīng)符合表34,C代碼示例見A.2.3.7。表34張量合并函數(shù)參數(shù)列表輸入張量數(shù)組長度7.2.3.7.3接口返回值沒有錯誤:操作成功。對象未初始化:表示輸入張量對象不合法超出范圍:表示堆疊維度超出輸入張量維度內(nèi)存不足:表示輸出向量分配空間不足非法參數(shù):表示其他參數(shù)不合法。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.3.8張量堆疊7.2.3.8.1功能在指定維度,將輸入張量數(shù)組進行堆疊,輸入張量形狀都必須相同。如果輸入張量數(shù)組每個元素維度為d,那么輸出張量的維度為d+1,新增維度大小為“輸入張量數(shù)組長度”。7.2.3.8.2接口參數(shù)張量堆疊函數(shù)前向接口應(yīng)符合表35,C代碼示例見A.2.3.8。表35張量堆疊函數(shù)參數(shù)列表輸入張量數(shù)組長度GB/TXXXXX.1—XXXX7.2.3.8.3接口返回值沒有錯誤:操作成功。對象未初始化:表示輸入張量對象不合法超出范圍:表示堆疊維度超出輸入張量維度內(nèi)存不足:表示輸出向量分配空間不足非法參數(shù):表示其他參數(shù)不合法。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.3.9張量拆堆7.2.3.9.1功能在指定維度,將輸入張量拆成“輸出張量數(shù)組長度”個輸出張量。如果輸入張量維度為d,那么輸出張量的維度為d-1。7.2.3.9.2接口參數(shù)張量拆堆函數(shù)前向接口應(yīng)符合表36,C代碼示例見A.2.3.9。表36張量拆堆函數(shù)參數(shù)列表輸出張量數(shù)組長度表示輸出張量數(shù)組的長度,值必須和輸入張量在拆表示拆疊后的輸出張量數(shù)組,其長度為“輸出張量數(shù)組長度”7.2.3.9.3接口返回值沒有錯誤:操作成功。對象未初始化:表示輸入張量對象不合法。超出范圍:表示拆堆維度超出輸入張量維度。內(nèi)存不足:表示輸出向量分配空間不足。非法參數(shù):表示其他參數(shù)不合法。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.3.10張量切片7.2.3.10.1功能從輸入張量中提取片段,假設(shè)輸入張量形狀為[D0,D1,…,Dndim?1],那么對于第i維來說,必須滿足0≤begin[i]≤begin[i+size[i≤Di,其中begin為起始位置數(shù)組,size為切片大小數(shù)組。7.2.3.10.2前向接口參數(shù)張量切片函數(shù)前向接口應(yīng)符合表37,C代碼示例見A.2.3.10。GB/TXXXXX.1—XXXX表37張量切片函數(shù)參數(shù)列表7.2.3.10.3前向接口返回值沒有錯誤:操作成功。對象未初始化:表示輸入張量對象不合法。超出范圍:表示起始位置數(shù)組中元素或者切片大小數(shù)組中元素或者切片步長數(shù)組中元素超出輸入張量維度大小。內(nèi)存不足:表示輸出向量分配空間不足。非法參數(shù):表示其他參數(shù)不合法。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.3.10.4后向接口參數(shù)張量切片函數(shù)后向接口應(yīng)符合表38,C代碼示例見A.2.3.10。表38張量切片函數(shù)后向接口參數(shù)列表7.2.3.10.5后向接口返回值沒有錯誤:操作成功。對象未初始化:表示輸入張量對象不合法。超出范圍:表示起始位置數(shù)組中元素或者切片大小數(shù)組中元素或者切片步長數(shù)組中元素超出輸入張量維度大小。內(nèi)存不足:表示輸出向量分配空間不足。非法參數(shù):表示其他參數(shù)不合法。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.3.11張量重復(fù)7.2.3.11.1功能GB/TXXXXX.1—XXXX通過重復(fù)輸入向量來構(gòu)造輸出向量。7.2.3.11.2接口參數(shù)張量重復(fù)函數(shù)前向接口應(yīng)符合表39,C代碼示例見A.2.3.11。表39張量重復(fù)函數(shù)參數(shù)列表7.2.3.11.3函數(shù)返回值沒有錯誤:操作成功。對象未初始化:表示輸入張量對象不合法。內(nèi)存不足:表示輸出向量分配空間不足。非法參數(shù):表示其他參數(shù)不合法。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.3.12張量補全7.2.3.12.1功能按照指定的模式來補全張量。7.2.3.12.2接口參數(shù)張量補全函數(shù)前向接口應(yīng)符合表40,C代碼示例見A.2.3.12。表40張量補全函數(shù)參數(shù)列表如果輸入張量維度為n,那么補全寬度數(shù)組長度為2*n。假設(shè)pad_width代表示補全模式,枚舉類型。如果是PAD_CONST,就采用“補全數(shù)值”來補全;如果是PAD_PERIOD模式,就采用張量本身數(shù)據(jù)周期補全;如果是PAD_MIRROR模式,就采用張量本身數(shù)據(jù)鏡像補全,默認(rèn)是PAD_7.2.3.12.3接口返回值沒有錯誤:操作成功。對象未初始化:表示輸入張量對象不合法。內(nèi)存不足:表示輸出向量分配空間不足。GB/TXXXXX.1—XXXX非法參數(shù):表示其他參數(shù)不合法。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.3.13張量逆序變換7.2.3.13.1功能在逆序位置數(shù)組指定的軸上,對輸入張量進行數(shù)據(jù)的逆序操作。7.2.3.13.2接口參數(shù)張量逆序變換函數(shù)前向接口應(yīng)符合表41,C代碼示例見A.2.3.13。表41張量逆序變換函數(shù)參數(shù)列表逆序位置數(shù)組長度7.2.3.13.3接口返回值沒有錯誤:操作成功。對象未初始化:表示輸入張量對象不合法超出范圍:表示逆序位置數(shù)組超出輸入張量維度非法參數(shù):表示其他參數(shù)不合法。7.2.3.14張量循環(huán)滾動變換7.2.3.14.1功能沿指定的軸,對輸入張量進行循環(huán)滾動變換。當(dāng)元素移動到最后位置時,會插入到該維度上的第一個位置。7.2.3.14.2接口參數(shù)張量循環(huán)滾動變換函數(shù)前向接口應(yīng)符合表42,C代碼示例見A.2.3.14。表42張量循環(huán)滾動變換函數(shù)參數(shù)列表滾動的軸,可以指定多個維度??梢詾榭眨藭r輸入張量會按照1維張量執(zhí)行滾動變換。若不為空,則長度必須與滾動位移7.2.3.14.3接口返回值GB/TXXXXX.1—XXXX沒有錯誤:操作成功。非法參數(shù):設(shè)置的軸超出了輸入張量的維數(shù)。7.2.3.15張量形狀裁剪7.2.3.15.1功能根據(jù)指定形狀和偏移量,裁剪輸入張量。7.2.3.15.2接口參數(shù)張量形狀裁剪函數(shù)前向接口應(yīng)符合表43,C代碼示例見A.2.3.15。表43張量形狀裁剪函數(shù)參數(shù)列表07.2.3.15.3接口返回值沒有錯誤:操作成功。對象未初始化:表示輸入張量對象不合法。非法參數(shù):表示其他參數(shù)不合法。7.2.3.16張量數(shù)值裁剪7.2.3.16.1功能對輸入張量的數(shù)值進行裁剪,輸出張量的數(shù)值被限制在區(qū)間[low,high)范圍內(nèi),其中l(wèi)ow為區(qū)間下限,high為區(qū)間上限,見式(7)。output=min(max(input,low),high)......................................................(7)式中:min——取最小值;max——取最大值;input——表示輸入張量;low——區(qū)間下限;high——區(qū)間上限;output——輸出張量7.2.3.16.2前向接口參數(shù)張量數(shù)值裁剪函數(shù)前向接口應(yīng)符合表44,C代碼示例見A.2.3.16。GB/TXXXXX.1—XXXX表44張量數(shù)值裁剪函數(shù)前向接口參數(shù)列表7.2.3.16.3前向接口返回值沒有錯誤:操作成功。對象未初始化:表示輸入張量對象不合法非法參數(shù):表示其他參數(shù)不合法。7.2.3.16.4后向接口參數(shù)張量數(shù)值裁剪函數(shù)后向接口應(yīng)符合表45,C代碼示例見A.2.3.16。表45張量數(shù)值裁剪后向接口函數(shù)參數(shù)列表7.2.3.16.5后向接口返回值沒有錯誤:操作成功。對象未初始化:表示輸入張量對象不合法。非法參數(shù):表示其他參數(shù)不合法。7.2.3.17張量聚集7.2.3.17.1功能根據(jù)索引張量獲取輸入張量對應(yīng)維度的條目,并將它們拼接在一起。當(dāng)索引張量是一個1-D張量且元素個數(shù)為k時,輸入張量是多維張量,第一個維度大小為m,可以表示為[x0,x1,…,xm],那么輸出張量是[xindex0,xindex1,…,xindex[k]],其中index是索引張量。當(dāng)索引張量是一個K維張量,它可以認(rèn)為是從輸入張量中取K-1維張量,每一個元素是一個切片,見式(8)。output[i0,…,ik?2]=input[index[i0,…,ik?2]]................................................(8)式中:input——輸入張量;index——索引張量;GB/TXXXXX.1—XXXXoutput——輸出張量7.2.3.17.2接口參數(shù)張量聚集函數(shù)前向接口應(yīng)符合表46,C代碼示例見A.2.3.17。表46張量聚集函數(shù)參數(shù)列表表示索引張量,維度必須大于1且小于等于輸入張量的維度,可以為整數(shù)7.2.3.17.3函數(shù)返回值沒有錯誤:操作成功。對象未初始化:表示輸入張量對象不合法。非法參數(shù):表示其他參數(shù)不合法。7.2.3.18張量發(fā)散更新7.2.3.18.1功能依據(jù)索引張量中的索引,將更新數(shù)據(jù)張量中的數(shù)據(jù)更新到輸入張量中。當(dāng)輸入張量的形狀為[N0,N1,…,Nk],索引張量是1維張量且元素個數(shù)為M時,更新數(shù)據(jù)張量的形狀為[M,N1,…,Nk]。7.2.3.18.2接口參數(shù)張量發(fā)散更新函數(shù)前向接口應(yīng)符合表47,C代碼示例見A.2.3.18。表47張量發(fā)散更新函數(shù)參數(shù)列表表示索引張量,維度必須大于1且小于等于輸入張量的維度,可以為整數(shù)如果索引張量中的索引值有重復(fù),“是否覆蓋”=true時舊更新值將被新7.2.3.18.3接口返回值沒有錯誤:操作成功。對象未初始化:表示輸入張量對象不合法非法參數(shù):表示其他參數(shù)不合法。7.2.3.19擴展張量GB/TXXXXX.1—XXXX7.2.3.19.1功能根據(jù)指定的形狀擴展張量,擴展后,張量的形狀和指定的形狀保持一致。7.2.3.19.2接口參數(shù)擴展張量函數(shù)前向接口應(yīng)符合表48,C代碼示例見A.2.3.19。表48擴展張量函數(shù)參數(shù)列表7.2.3.19.3接口返回值沒有錯誤:操作成功。對象未初始化:表示輸入張量對象不合法內(nèi)存不足:表示輸出向量分配空間不足非法參數(shù):表示其他參數(shù)不合法。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.3.20展平張量7.2.3.20.1功能根據(jù)給定的起始維度和結(jié)束維度將張量中的連續(xù)維度展平。7.2.3.20.2接口參數(shù)展平張量函數(shù)前向接口應(yīng)符合表49,C代碼示例見A.2.3.20。表49展平張量函數(shù)參數(shù)列表7.2.3.20.3接口返回值沒有錯誤:操作成功。維度錯誤:表示起始維度或者結(jié)束維度不合法。對象未初始化:表示輸入張量對象不合法。內(nèi)存不足:表示輸出向量分配空間不足。非法參數(shù):表示其他參數(shù)不合法。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.3.21張量翻轉(zhuǎn)GB/TXXXXX.1—XXXX7.2.3.21.1功能沿指定軸翻轉(zhuǎn)張量。7.2.3.21.2接口參數(shù)張量翻轉(zhuǎn)函數(shù)前向接口應(yīng)符合表50,C代碼示例見A.2.3.21。表50張量翻轉(zhuǎn)函數(shù)參數(shù)列表7.2.3.21.3接口返回值沒有錯誤:操作成功。軸錯誤:表示軸不合法。對象未初始化:表示輸入張量對象不合法內(nèi)存不足:表示輸出向量分配空間不足非法參數(shù):表示其他參數(shù)不合法。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.3.22張量正負判斷7.2.3.22.1功能對張量中的每個元素進行正負判斷,整數(shù)轉(zhuǎn)為1,負數(shù)轉(zhuǎn)為-1,0保持不變。7.2.3.22.2接口參數(shù)張量正負判斷函數(shù)前向接口應(yīng)符合表51,C代碼示例見A.2.3.22。表51張量正負判斷函數(shù)參數(shù)列表7.2.3.22.3接口返回值沒有錯誤:操作成功。對象未初始化:表示輸入張量對象不合法內(nèi)存不足:表示輸出向量分配空間不足非法參數(shù):表示其他參數(shù)不合法。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.3.23條件判斷組合張量7.2.3.23.1功能GB/TXXXXX.1—XXXX根據(jù)bool型條件,選擇x或y的元素組成多維張量,見式(9)。xizi=yi式中:x——第一個輸入張量;y——第二個輸入張量;z——輸出張量;,ifcondiisTrue,ifcondiisFalse.................................................................cond——表示bool條件一維張量數(shù)組。7.2.3.23.2接口參數(shù)條件判斷組合張量函數(shù)前向接口應(yīng)符合表52,C代碼示例見A.2.3.23。表52條件判斷組合張量函數(shù)參數(shù)列表7.2.3.23.3接口返回值沒有錯誤:操作成功。對象未初始化:表示輸入張量對象不合法。內(nèi)存不足:表示輸出向量分配空間不足非法參數(shù):表示其他參數(shù)不合法。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.3.24一維張量擴充7.2.3.24.1功能輸入是張量或者包含張量的列表,包含k個一維張量,形狀分別為(N1,),(N2,),...,(Nk,),對每個張量做擴充操作,輸出k個k維張量,每個張量的形狀均為(N1,N2,...,Nk)。7.2.3.24.2接口參數(shù)一維張量擴充函數(shù)前向接口應(yīng)符合表53,C代碼示例見A.2.3.24。表53一維張量擴充函數(shù)參數(shù)列表表示擴充后的k個形狀為(N1,N2,…,7.2.3.24.3接口返回值沒有錯誤:操作成功。對象未初始化:表示輸入張量對象不合法GB/TXXXXX.1—XXXX內(nèi)存不足:表示輸出向量分配空間不足非法參數(shù):表示其他參數(shù)不合法。其它內(nèi)部錯誤:內(nèi)部調(diào)用操作出錯。7.2.3.25張量選擇7.2.3.24.4功能根據(jù)掩碼張量選擇出輸入張量中的值,組成1維張量。7.2.3.24.5接口參數(shù)張量選擇函數(shù)前向接口應(yīng)符合表54,C代碼示例見A.2.3.24。表54張量選擇函數(shù)參數(shù)列表表示根據(jù)掩碼張量選擇出輸入張量中的值所組成的1維張量,數(shù)據(jù)類型與7.2.3.24.6接口返回值沒有錯誤:操作成功。對象未初始化:表示輸入張量對象不合法。非法參數(shù):表示其他參數(shù)不合法。7.2.4算術(shù)操作7.2.4.1張量加法操作7.2.4.1.1功能兩個張量逐元素求和,見式(10)。zi=xi+yi............................................................................(10)式中:x——第一個輸入張量;y——第二個輸入張量;z——輸出張量。7.2.4.1.2接口參數(shù)張量加法操作函數(shù)前向接口應(yīng)符合表55,C代碼示例見A.2.4.1。表55張量加法操作函數(shù)參數(shù)列表GB/TXXXXX.1—XXXX表55張量加法操作函數(shù)參數(shù)列表(續(xù))7.2.4.1.3接口返回值沒有錯誤:操作成功。類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。7.2.4.2張量減法操作7.2.4.2.1功能兩個張量逐元素求和,見式(11)。zi=xi?yi............................................................................(11)式中:x——第一個輸入張量;y——第二個輸入張量;z——輸出張量。7.2.4.2.2接口參數(shù)張量減法操作函數(shù)前向接口應(yīng)符合表56,C代碼示例見A.2.4.2。表56張量減法操作函數(shù)參數(shù)列表7.2.4.2.3接口返回值沒有錯誤:操作成功。類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。7.2.4.3張量乘法操作7.2.4.3.1功能描述張量與張量間乘法操作。輸出張量的每一個元素為輸入張量的元素乘第二個輸入張量對應(yīng)的元素,即zi=xi?yi。7.2.4.3.2接口參數(shù)張量乘法操作函數(shù)前向接口應(yīng)符合表57,C代碼示例見A.2.4.3。GB/TXXXXX.1—XXXX表57張量乘法操作函數(shù)參數(shù)列表7.2.4.3.3接口返回值沒有錯誤:操作成功。類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。7.2.4.4張量乘加操作7.2.4.4.1功能描述:張量與張量間乘加操作。輸出張量的每一個元素為輸入張量的元素乘以第二個輸入張量對應(yīng)的元素,然后加上第三個輸入張量的元素,見式(12)。zi=xi?yi+ai........................................................................(12)式中:x——第一個輸入張量;y——第二個輸入張量;a——第二個輸入張量;z——輸出張量。7.2.4.4.2接口參數(shù)張量乘加操作函數(shù)前向接口應(yīng)符合表58,C代碼示例見A.2.4.4。表58張量乘加操作函數(shù)參數(shù)列表7.2.4.4.3接口返回值沒有錯誤:操作成功。類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。7.2.4.5張量除法操作7.2.4.5.1功能張量與張量間除法操作。輸出張量的每一個元素為第一個輸入張量的元素除第二個輸入向量對應(yīng)的元素,見式(13)。zi=xi/yi.............................................................................(13)式中:GB/TXXXXX.1—XXXXx——第一個輸入張量;y——第二個輸入張量;z——輸出張量。7.2.4.5.2接口參數(shù)張量除法函數(shù)前向接口應(yīng)符合表59,C代碼示例見A.2.4.5。表59張量除法函數(shù)參數(shù)列表7.2.4.5.3函數(shù)返回值沒有錯誤:操作成功。非法參數(shù):表示輸入?yún)?shù)不合法。類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。7.2.4.6張量整除操作7.2.4.6.1功能張量與張量間整除操作。輸出張量的每一個元素為第一個輸入張量的元素除第二個輸入向量對應(yīng)的元素,計算結(jié)果按照floor方式取整,見式(14)。zi=xi/yi............................................................................(14)式中:x——第一個輸入張量;y——第二個輸入張量;z——輸出張量。7.2.4.6.2接口參數(shù)張量整除函數(shù)前向接口應(yīng)符合表60,C代碼示例見A.2.4.6。表60張量整除函數(shù)參數(shù)列表7.2.4.6.3接口返回值沒有錯誤:操作成功。類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。7.2.4.7張量真除法操作GB/TXXXXX.1—XXXX7.2.4.7.1功能使用浮點數(shù)計算的張量除法操作,與參與操作的張量類型無關(guān)。7.2.4.7.2接口參數(shù)張量真除法操作函數(shù)前向接口應(yīng)符合表61,C代碼示例見A.2.4.7。表61張量真除法操作函數(shù)參數(shù)列表7.2.4.7.3接口返回值沒有錯誤:操作成功。非法參數(shù):張量形狀不匹配或不滿足廣播要求。7.2.4.8張量取模操作7.2.4.8.1功能計算兩個輸入張量逐元素相除得到的余數(shù)。7.2.4.8.2接口參數(shù)張量取模操作函數(shù)前向接口應(yīng)符合表62,C代碼示例見A.2.4.8。表62張量取模操作函數(shù)參數(shù)列表7.2.4.8.3接口返回值沒有錯誤:操作成功。非法參數(shù):表示輸入?yún)?shù)不合法。類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。7.2.4.9張量逐元素取最大值7.2.4.9.1功能張量與張量間逐元素比較,取最大值操作,見式(15)。zi=max(xi,yi)........................................................................(15)式中:x——第一個輸入張量;y——第二個輸入張量;GB/TXXXXX.1—XXXXmax——取最大值;z——輸出張量。7.2.4.9.2接口參數(shù)張量逐元素取最大值函數(shù)前向接口應(yīng)符合表63,C代碼示例見A.2.4.9。表63張量逐元素取最大值函數(shù)參數(shù)列表7.2.4.9.3函數(shù)返回值沒有錯誤:操作成功。非法參數(shù):表示輸入?yún)?shù)不合法。類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。7.2.4.10張量逐元素取最小值7.2.4.10.1功能張量與張量間逐元素比較,取最小值操作,見式(16)。zi=min(xi,yi)........................................................................(16)式中:x——第一個輸入張量;y——第二個輸入張量;min——取最小值;z——輸出張量。7.2.4.10.2接口參數(shù)張量逐元素取最小值函數(shù)前向接口應(yīng)符合表64,C代碼示例見A.2.4.10。表64張量逐元素取最小值函數(shù)參數(shù)列表7.2.4.10.3接口返回值沒有錯誤:操作成功。非法參數(shù):表示輸入?yún)?shù)不合法。類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。7.2.4.11張量絕對值操作GB/TXXXXX.1—XXXX7.2.4.11.1功能計算輸入張量的絕對值(逐元素求絕對值)。其中,輸出也是一個張量,張量的每一個元素由輸入張量對應(yīng)元素的絕對值得到。當(dāng)輸入張量中的每個元素的類型為基本數(shù)據(jù)類型時,yi=|xi|,當(dāng)張量中的每個元素為復(fù)數(shù)類型(xi=a+bj)時,yi=a2+b2。7.2.4.11.2接口參數(shù)張量絕對值操作函數(shù)前向接口應(yīng)符合表65,C代碼示例見A.2.4.11。表65張量絕對值操作函數(shù)參數(shù)列表7.2.4.11.3接口返回值沒有錯誤:操作成功。非法參數(shù):表示輸入?yún)?shù)不合法。類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。7.2.4.12張量取倒數(shù)操作7.2.4.12.1功能計算輸入張量的倒數(shù)(逐元素求倒數(shù)值)。7.2.4.12.2接口參數(shù)張量取倒數(shù)操作函數(shù)前向接口應(yīng)符合表66,C代碼示例見A.2.4.12。表66張量取倒數(shù)操作函數(shù)參數(shù)列表7.2.4.12.3接口返回值沒有錯誤:操作成功。非法參數(shù):表示輸入?yún)?shù)不合法。類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。7.2.4.13張量對角線元素求和操作7.2.4.13.1功能計算指定2維平面上的對角線元素之和。7.2.4.13.2前向接口參數(shù)張量對角線元素求和操作函數(shù)前向接口應(yīng)符合表67,C代碼示例見A.2.4.13。GB/TXXXXX.1—XXXX表67張量對角線元素求和操作函數(shù)前向接口參數(shù)列表對角線的偏移位置二維平面中對角線的位置,即相對主對角線的偏移。0代表主對角線,負0二維平面的第一維二維平面的第二維7.2.4.13.3前向接口返回值沒有錯誤:操作成功。非法參數(shù):輸入張量的維數(shù)小于2,或設(shè)置的軸超出了輸入張量的維數(shù)。7.2.4.13.4后向接口參數(shù)張量對角線元素求和操作函數(shù)后向接口應(yīng)符合表68,C代碼示例見A.2.4.13。表68張量對角線元素求和操作函數(shù)后向接口參數(shù)列表對角線的偏移位置二維平面中對角線的位置,即相對主對角線的偏移。0代表主對角線,負二維平面的第一維二維平面的第二維7.2.4.13.5后向接口返回值沒有錯誤:操作成功。非法參數(shù):輸入張量的維數(shù)小于2,或設(shè)置的軸超出了輸入張量的維數(shù)。7.2.5比較操作7.2.5.1判斷張量是否相等7.2.5.1.1功能判斷兩個張量的對應(yīng)元素的值是否相等,見式(17)。GB/TXXXXX.1—XXXXzi=(xi==yi)?true:false............................................................(17)式中:x——第一個輸入張量;y——第二個輸入張量;z——輸出張量。7.2.5.1.2接口參數(shù)判斷張量是否相等函數(shù)前向接口應(yīng)符合表69,C代碼示例見A.2.5.1。表69判斷張量是否相等函數(shù)參數(shù)列表7.2.5.1.3接口返回值沒有錯誤:操作成功。類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。7.2.5.2判斷張量是否不等7.2.5.2.1功能判斷兩個張量的對應(yīng)元素的值是否不相等,見式(18)。zi=xi!=yi?true:false..............................................................(18)式中:x——第一個輸入張量;y——第二個輸入張量;z——輸出張量。7.2.5.2.2接口參數(shù)斷張量是否不等函數(shù)前向接口應(yīng)符合表70,C代碼示例見A.2.5.2。表70判斷張量是否不等函數(shù)參數(shù)列表7.2.5.2.3接口返回值沒有錯誤:操作成功。類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。7.2.5.3判斷張量是否大于GB/TXXXXX.1—XXXX7.2.5.3.1功能判斷第一個張量的值是否大于第二個張量的對應(yīng)元素,見式(19)。zi=xi>yi?true:false...............................................................(19)式中:x——第一個輸入張量;y——第二個輸入張量;z——輸出張量。7.2.5.3.2接口參數(shù)判斷張量是否大于函數(shù)前向接口應(yīng)符合表71,C代碼示例見A.2.5.3。表71判斷張量是否大于函數(shù)參數(shù)列表7.2.5.3.3接口返回值沒有錯誤:操作成功。類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。7.2.5.4判斷張量是否大于等于7.2.5.4.1功能判斷第一個張量元素值是否大于等于第二個張量的對應(yīng)元素,見式(20)。zi=xi≥yi?true:false...............................................................(20)式中:x——第一個輸入張量;y——第二個輸入張量;z——輸出張量。7.2.5.4.2接口參數(shù)判斷張量是否大于等于函數(shù)前向接口應(yīng)符合表72,C代碼示例見A.2.5.4。表72判斷張量是否大于等于函數(shù)參數(shù)列表7.2.5.4.3接口返回值沒有錯誤:操作成功。GB/TXXXXX.1—XXXX類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。7.2.5.5判斷張量是否小于7.2.5.5.1功能判斷第一個張量的元素值是否小于第二個張量的對應(yīng)元素值,見式(21)。zi=xi<yi?true:false...............................................................(21)式中:x——第一個輸入張量;y——第二個輸入張量;z——輸出張量。7.2.5.5.2接口參數(shù)判斷張量是否小于函數(shù)前向接口應(yīng)符合表73,C代碼示例見A.2.5.5。表73判斷張量是否小于函數(shù)參數(shù)列表7.2.5.5.3接口返回值沒有錯誤:操作成功。類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。7.2.5.6判斷張量是否小于等于7.2.5.6.1功能判斷第一個張量的元素值是否小于等于第二個張量的對應(yīng)元素值,見式(22)。zi=xi≤yi?true:false...............................................................(22)式中:x——第一個輸入張量;y——第二個輸入張量;z——輸出張量。7.2.5.6.2接口參數(shù)判斷張量是否小于等于函數(shù)前向接口應(yīng)符合表74,C代碼示例見A.2.5.6。表74判斷張量是否小于等于函數(shù)參數(shù)列表GB/TXXXXX.1—XXXX表74判斷張量是否小于等于函數(shù)參數(shù)列表(續(xù))7.2.5.6.3接口返回值沒有錯誤:操作成功。類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。7.2.5.7判斷張量是否值相近7.2.5.7.1功能逐個檢查輸入張量與對比張量的所有元素,當(dāng)兩個待比較張量的所有元素均在一定容忍誤差范圍內(nèi),則認(rèn)為這兩個張量是相等的。比較公式見式(23)。input?ot?er≤atol+rtol×ot?er...................................................(23)式中:input——輸入張量;ot?er——對比張量;atol——絕對誤差;rtol——相對誤差;|*|——表示取絕對值。7.2.5.7.2接口參數(shù)判斷張量是否值相近函數(shù)前向接口應(yīng)符合表75,C代碼示例見A.2.5.7。表75判斷張量是否值相近函數(shù)參數(shù)列表與第一個輸入張量在計算上兼容,為bool類7.2.5.7.3接口返回值沒有錯誤:操作成功。類型不匹配:張量的數(shù)據(jù)類型不一致。非法參數(shù):張量形狀不匹配。7.2.6邏輯操作7.2.6.1張量的“邏輯與”操作7.2.6.1.1功能GB/TXXXXX.1—XXXX計算兩個輸入張量的逐元素與操作。7.2.6.1.2接口參數(shù)張量的“邏輯與”操作函數(shù)前向接口應(yīng)符合表76,C代碼示例見A.2.6.1。表76張量的“邏輯與”操作函數(shù)參數(shù)列表元素類型可以為整數(shù)、浮點數(shù)、布爾類型,零值將被當(dāng)作false,非零值7.2.6.1.3接口返回值沒有錯誤:操作成功。類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。7.2.6.2張量的“邏輯或”操作7.2.6.2.1功能計算兩個輸入張量的逐元素或操作。7.2.6.2.2接口參數(shù)張量的“邏輯或”操作函數(shù)前向接口應(yīng)符合表77,C代碼示例見A.2.6.2。表77張量的“邏輯或”操作函數(shù)參數(shù)列表元素類型可以為整數(shù)、浮點數(shù)、布爾類型,零值將被當(dāng)作false,非零值7.2.6.2.3接口返回值沒有錯誤:操作成功。類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。7.2.6.3張量的“邏輯非”操作7.2.6.3.1功能逐元素地對一個輸入張量進行邏輯非運算。7.2.6.3.2接口參數(shù)張量的“邏輯非”操作函數(shù)前向接口應(yīng)符合表78,C代碼示例見A.2.6.3。GB/TXXXXX.1—XXXX表78張量的“邏輯非”操作函數(shù)參數(shù)列表元素類型可以為整數(shù)、浮點數(shù)、布爾類型,零值將被當(dāng)作false,非零值7.2.6.3.3接口返回值沒有錯誤:操作成功。類型不匹配:表示參數(shù)的數(shù)據(jù)類型不一致。7.2.6.4張量的“邏輯異或”操作7

溫馨提示

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

最新文檔

評論

0/150

提交評論