算子是一個函數(shù)空間到函數(shù)空間上的映射O:X→X;從廣義上講,對任何函數(shù)進(jìn)行某一項(xiàng)操作都可以認(rèn)為是一個算子。于我們而言,我們所開發(fā)的算子是網(wǎng)絡(luò)模型中涉及到的計(jì)算函數(shù)。
絕大多數(shù)情況下,由于昇騰AI軟件棧支持絕大多數(shù)算子,開發(fā)者不需要進(jìn)行自定義算子的開發(fā),只需提供深度學(xué)習(xí)模型文件,通過離線模型生成器(OMG)轉(zhuǎn)換就能夠得到離線模型文件,從而進(jìn)一步利用流程編排器(Matrix)生成具體的應(yīng)用程序。既然如此,為什么還需要自定義算子呢?這是因?yàn)樵谀P娃D(zhuǎn)換過程中出現(xiàn)了算子不支持的情況,例如昇騰AI軟件棧不支持模型中的算子、開發(fā)者想修改現(xiàn)有算子中的計(jì)算邏輯、或者開發(fā)者想自己開發(fā)算子來提高計(jì)算性能,這時就需要進(jìn)行自定義算子的開發(fā)了。