本申請涉及數據處理,尤其涉及一種將onnx模型封裝為fmu的方法、裝置及設備。
背景技術:
1、在工業系統設計中,為了提高效率并降低計算成本,通常會使用代理模型。這些代理模型可以是采用開放神經網絡交換(open?neural?network?exchange,onnx)格式存儲的深度學習模型,從而有效地擬合和逼近高保真仿真模型(如計算流體力學)中的復雜輸入輸出關系。通過使用這些代理模型,開發者(用戶)能夠在不犧牲精度的情況下,大幅度減少計算所需的時間和資源。
2、在相關技術中,在采用onnx模型(采用onnx格式存儲的深度學習模型)進行仿真時,通常需要人工編寫onnx模型的接口以實現與仿真平臺的交互。然而,人工編寫接口的方式,不僅耗時,且容易出錯,從而會影響工業系統設計的開發效率。
技術實現思路
1、本申請提供一種將onnx模型封裝為fmu的方法、裝置及設備,以提高工業系統設計的開發效率。
2、第一方面,本申請提供一種將onnx模型封裝為fmu的方法,包括:
3、根據動態鏈接庫源碼文件,對onnx模型的模型說明文檔進行解析,生成動態鏈接庫文件,所述動態鏈接庫文件中包括用于所述onnx模型與仿真平臺進行數據交換的功能模擬接口fmi;
4、根據預設的可執行文件,對所述模型說明文檔進行解析,生成模型描述文件;
5、對所述onnx模型、所述動態鏈接庫文件、以及所述模型描述文件進行封裝,獲取功能模擬單元fmu。
6、在一種可能的實施方式中,所述根據動態鏈接庫源碼文件,對onnx模型的模型說明文檔進行解析,生成動態鏈接庫文件,包括:
7、根據預設在所述動態鏈接庫源碼文件中的接口函數對所述模型說明文檔進行解析,生成所述fmi;
8、通過所述fmi,獲取所述onnx模型的推理邏輯,所述推理邏輯是指所述onnx模型在接收到所述仿真平臺發送的輸入數據后,計算并將輸出結果返回給所述仿真平臺的機制;
9、將所述fmi和所述推理邏輯進行封裝,生成了所述動態鏈接庫文件。
10、在一種可能的實施方式中,所述推理邏輯包括:
11、通過所述fmi中的輸入接口接收所述仿真平臺的輸入數據;
12、通過所述onnx模型對所述輸入數據輸入進行推理,得到所述輸出結果;
13、通過所述fmi中的輸出接口將所述輸出結果返回所述仿真平臺。
14、在一種可能的實施方式中,所述通過所述onnx模型對所述輸入數據輸入進行推理,得到所述輸出結果,包括:
15、通過所述onnx模型的推理引擎,對所述輸入數據輸入進行推理,得到所述輸出結果。
16、在一種可能的實施方式中,所述對所述onnx模型、所述動態鏈接庫文件、以及所述模型描述文件進行封裝,獲取功能模擬單元fmu,包括:
17、建立資源文件夾、可執行文件夾、以及根文件夾;
18、將所述onnx模型存儲在所述資源文件夾中、將所述動態鏈接庫文件存儲在所述可執行文件夾中、將所述模型描述文件存儲在所述根文件夾中;
19、對所述資源文件夾、所述可執行文件夾、以及所述根文件夾進行壓縮處理,獲取所述fmu。
20、在一種可能的實施方式中,所述根據動態鏈接庫源碼文件,對onnx模型的模型說明文檔進行解析,生成動態鏈接庫文件之前,所述方法還包括:
21、響應于用戶對所述onnx模型的模型代碼的編譯操作,生成所述模型說明文檔。
22、在一種可能的實施方式中,所述模型描述文件中包括:所述fmu的輸入接口數量、輸入接口名稱、輸出接口數量、輸出接口名稱、onnx模型類型、以及仿真配置參數。
23、第二方面,本申請提供一種將onnx模型封裝為fmu的裝置,包括:
24、獲取模塊,用于根據動態鏈接庫源碼文件,對onnx模型的模型說明文檔進行解析,生成動態鏈接庫文件,所述動態鏈接庫文件中包括用于所述onnx模型與仿真平臺進行交互的功能模擬接口fmi;
25、解析模塊,用于根據預先編寫的可執行文件,對所述模型說明文檔進行解析,生成模型描述文件;
26、處理模塊,用于對所述onnx模型、所述動態鏈接庫文件、以及所述模型描述文件進行封裝,獲取功能模擬單元fmu。
27、第三方面,本申請提供一種電子設備,包括:存儲器,處理器;
28、所述存儲器存儲計算機執行指令;
29、所述處理器執行所述存儲器存儲的計算機執行指令,使得所述處理器執行如第一方面任一項所述的將onnx模型封裝為fmu的方法。
30、第四方面,本申請提供一種計算機可讀存儲介質,所述計算機可讀存儲介質中存儲有計算機執行指令,當所述計算機執行指令被處理器執行時用于實現第一方面任一項所述的將onnx模型封裝為fmu的方法。
31、第五方面,本申請提供一種計算機程序產品,所述計算機程序產品包括計算機程序,所述計算機程序被處理器執行時用于實現第一方面任一項所述的將onnx模型封裝為fmu的方法。
32、本申請提供的將onnx模型封裝為fmu的方法、裝置及設備,可以通過動態鏈接庫源碼文件解析onnx模型的模型說明文檔,生成包含用于onnx模型與仿真平臺進行數據交換的fmi的動態鏈接庫文件;根據預設的可執行文件解析模型說明文檔,生成模型描述文件;將onnx模型、動態鏈接庫文件和模型描述文件進行封裝,獲取fmu。fmu中包括自動生成的fmi,可以實現在不同仿真工具之間無縫集成和協同,提高工業系統設計的開發效率。
1.一種將onnx模型封裝為fmu的方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述根據動態鏈接庫源碼文件,對onnx模型的模型說明文檔進行解析,生成動態鏈接庫文件,包括:
3.根據權利要求2所述的方法,其特征在于,所述推理邏輯包括:
4.根據權利要求3所述的方法,其特征在于,所述通過所述onnx模型對所述輸入數據輸入進行推理,得到所述輸出結果,包括:
5.根據權利要求1所述的方法,其特征在于,所述對所述onnx模型、所述動態鏈接庫文件、以及所述模型描述文件進行封裝,獲取功能模擬單元fmu,包括:
6.根據權利要求1至5任一項所述的方法,其特征在于,所述根據動態鏈接庫源碼文件,對onnx模型的模型說明文檔進行解析,生成動態鏈接庫文件之前,所述方法還包括:
7.根據權利要求1至5任一項所述的方法,其特征在于,所述模型描述文件中包括:所述fmu的輸入接口數量、輸入接口名稱、輸出接口數量、輸出接口名稱、onnx模型類型、以及仿真配置參數。
8.一種將onnx模型封裝為fmu的裝置,其特征在于,包括:
9.一種電子設備,其特征在于,包括:處理器,存儲器;
10.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質中存儲有計算機執行指令,所述計算機執行指令被處理器執行時用于實現如權利要求1至7任一項所述的將onnx模型封裝為fmu的方法。