本發(fā)明涉及計(jì)算機(jī)編程語(yǔ)言和深度學(xué)習(xí)技術(shù)相結(jié)合,具體地,涉及一種計(jì)算圖描述方法、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、隨著深度學(xué)習(xí)技術(shù)的興起,許多深度學(xué)習(xí)框架開始逐漸增加了對(duì)多種語(yǔ)言和多種平臺(tái)的支持。例如pytorch和tensorflow支持使用java、c++和python來(lái)構(gòu)建深度學(xué)習(xí)網(wǎng)絡(luò)。通常來(lái)說(shuō),目前的深度學(xué)習(xí)框架描述網(wǎng)絡(luò)結(jié)構(gòu)通過(guò)兩種方式:一種使用配置文件線性羅列出所有前饋層,這種方法簡(jiǎn)單清晰,但無(wú)法描述非前饋結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),例如rnn或lstm。另一種僅使用api構(gòu)造全部神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),這種方法靈活多變,但對(duì)初學(xué)者來(lái)說(shuō)難以使用,也很難形式化地描述出整個(gè)網(wǎng)絡(luò)的全部結(jié)構(gòu)。
2、目前,深度學(xué)習(xí)框架領(lǐng)域急需一種既能滿足工業(yè)領(lǐng)域從零開始快速搭建成熟網(wǎng)絡(luò),又能夠滿足研究領(lǐng)域嘗試深入內(nèi)部從細(xì)節(jié)處改進(jìn)網(wǎng)絡(luò),既能易于描述網(wǎng)絡(luò)結(jié)構(gòu)、又能簡(jiǎn)單上手快速學(xué)習(xí)的技術(shù)方法。
技術(shù)實(shí)現(xiàn)思路
1、針對(duì)現(xiàn)有技術(shù)中的缺陷,本發(fā)明的目的在于提供一種計(jì)算圖描述方法、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì),本發(fā)明方法可極大地減少深度學(xué)習(xí)網(wǎng)絡(luò)模型的開發(fā)和調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)的時(shí)間,提高各個(gè)水平的使用者創(chuàng)建和利用深度學(xué)習(xí)網(wǎng)絡(luò)模型的效率。
2、為解決上述問題,本發(fā)明的技術(shù)方案為:
3、一種計(jì)算圖描述方法,包括以下步驟:
4、基于聲明式編程語(yǔ)言定義計(jì)算圖結(jié)構(gòu),構(gòu)建計(jì)算圖生成語(yǔ)言語(yǔ)法規(guī)則,編寫描述計(jì)算圖結(jié)構(gòu)的編寫實(shí)例;
5、利用編譯方法解析編寫實(shí)例,并將編寫實(shí)例翻譯成所需的中間代碼、目標(biāo)代碼或計(jì)算圖結(jié)構(gòu)實(shí)例。
6、優(yōu)選地,所述基于聲明式編程語(yǔ)言定義計(jì)算圖結(jié)構(gòu),構(gòu)建計(jì)算圖生成語(yǔ)言語(yǔ)法規(guī)則,編寫描述計(jì)算圖結(jié)構(gòu)的編寫實(shí)例的步驟,具體包括:
7、根據(jù)預(yù)設(shè)的語(yǔ)言模型確定詞法單元的符號(hào)域;
8、根據(jù)預(yù)設(shè)的語(yǔ)言模型確定描述計(jì)算圖結(jié)構(gòu)的語(yǔ)言文法;
9、根據(jù)建立的語(yǔ)言文法確定二義性規(guī)則;
10、根據(jù)預(yù)設(shè)的語(yǔ)言模型確定描述計(jì)算圖結(jié)構(gòu)的語(yǔ)言語(yǔ)義;
11、基于文法確定語(yǔ)法錯(cuò)誤的處理步驟;
12、根據(jù)預(yù)設(shè)的語(yǔ)言模型確定語(yǔ)義錯(cuò)誤。
13、進(jìn)一步地,本發(fā)明還提供一種計(jì)算機(jī)設(shè)備,包括處理器以及用于存儲(chǔ)所述處理器的可執(zhí)行指令的存儲(chǔ)器,所述處理器配置為經(jīng)由執(zhí)行所述可執(zhí)行指令來(lái)執(zhí)行如上所述的計(jì)算圖描述方法。
14、進(jìn)一步地,本發(fā)明還提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)用于存儲(chǔ)程序代碼,所述程序代碼用于執(zhí)行如上所述的計(jì)算圖描述方法。
15、與現(xiàn)有技術(shù)相比,本發(fā)明所述的計(jì)算圖描述方法,通過(guò)對(duì)計(jì)算圖進(jìn)行抽象,設(shè)計(jì)出能夠描述計(jì)算圖結(jié)構(gòu)的、與通用編程語(yǔ)言無(wú)關(guān)的結(jié)構(gòu)化語(yǔ)言,讓計(jì)算圖的結(jié)構(gòu)設(shè)計(jì)與具體使用分離,可極大地減少深度學(xué)習(xí)網(wǎng)絡(luò)模型的開發(fā)和調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)的時(shí)間,提高各個(gè)水平的使用者創(chuàng)建和利用深度學(xué)習(xí)網(wǎng)絡(luò)模型的效率。
1.一種計(jì)算圖描述方法,其特征在于,所述方法包括以下步驟:
2.根據(jù)權(quán)利要求1所述的計(jì)算圖描述方法,其特征在于,所述基于聲明式編程語(yǔ)言定義計(jì)算圖結(jié)構(gòu),構(gòu)建計(jì)算圖生成語(yǔ)言語(yǔ)法規(guī)則,編寫描述計(jì)算圖結(jié)構(gòu)的編寫實(shí)例的步驟,具體包括:
3.根據(jù)權(quán)利要求2所述的計(jì)算圖描述方法,其特征在于,所述根據(jù)預(yù)設(shè)的語(yǔ)言模型確定詞法單元的符號(hào)域的步驟中,所述語(yǔ)言模型包含描述計(jì)算圖結(jié)構(gòu)部分和修改計(jì)算圖結(jié)構(gòu)部分。
4.根據(jù)權(quán)利要求3所述的計(jì)算圖描述方法,其特征在于,所述描述計(jì)算圖結(jié)構(gòu)部分包括一個(gè)及以上的節(jié)點(diǎn)與子圖,所述節(jié)點(diǎn)包括運(yùn)算符、變量和字面量;
5.根據(jù)權(quán)利要求4所述的計(jì)算圖描述方法,其特征在于,所述子圖包含聲明子圖、生成子圖和引入子圖;
6.根據(jù)權(quán)利要求3所述的計(jì)算圖描述方法,其特征在于,所述修改計(jì)算圖結(jié)構(gòu)部分包含一條及以上對(duì)計(jì)算圖結(jié)構(gòu)的修改,修改方式包含:
7.根據(jù)權(quán)利要求1所述的計(jì)算圖描述方法,其特征在于,所述利用編譯方法解析編寫實(shí)例,并將編寫實(shí)例翻譯成所需的中間代碼、目標(biāo)代碼或計(jì)算圖結(jié)構(gòu)實(shí)例的步驟,具體包括:
8.根據(jù)權(quán)利要求7所述的計(jì)算圖描述方法,其特征在于,所述確定語(yǔ)法錯(cuò)誤的處理步驟具體包括:
9.一種計(jì)算機(jī)設(shè)備,其特征在于,所述計(jì)算機(jī)設(shè)備包括處理器以及用于存儲(chǔ)所述處理器的可執(zhí)行指令的存儲(chǔ)器,所述處理器配置為經(jīng)由執(zhí)行所述可執(zhí)行指令來(lái)執(zhí)行如權(quán)利要求1至8中任意一項(xiàng)所述的計(jì)算圖描述方法。
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)用于存儲(chǔ)程序代碼,所述程序代碼用于執(zhí)行權(quán)利要求1至8中任意一項(xiàng)所述的計(jì)算圖描述方法。