本發明專利技術公開一種基于python實現的多模型融合并行推理方法,包括獲取參與推理的多個異構模型,將多個異構模型按照預設規則轉換成標準子模型;將每個子模型的結構和權重字典與總模型的每條分支相互對應,基于每個子模型的結構和權重字典將每個標準子模型融合成總模型;將總模型加載至GPU中,并對融合后的總模型進行推理驗證;定義總模型的輸出為每個子模型的輸出組成的列表,通過列表索引將總模型的推理結果映射回子模型。推理效率高,相較于多進程、多線程并行推理方法,本發明專利技術只在一個進程中運行,沒有進程間、線程間的調度問題,效率更高。節約存儲資源,將多個子模型融合為一個總模型,相較于多進程方法,本發明專利技術只需一份輸入數據,節約了存儲資源。
【技術實現步驟摘要】
基于python實現的多模型融合并行推理方法、裝置及系統
本專利技術涉及深度學習框架
,尤其涉及一種基于python實現的多模型融合并行推理方法、裝置及系統。
技術介紹
多模型并行推理是深度學習領域的一項重要技術,通過充分利用GPU等硬件資源,盡可能提升模型的推理效率,縮短推理時間,在一些實時性要求高的應用場合十分必要。例如在自動駕駛領域,需要實時檢測車道線,同時檢測前方的車輛與行人。其中,車道線檢測模型一般為圖像分割網絡,車輛與行人檢測模型為目標檢測網絡,兩者相對獨立,但串行推理明顯不適合。又如在互聯網平臺評論審核領域,若用戶上傳了圖片,需同時識別圖片本身內容和圖片中的文字是否違反相關規定甚至違法。圖片內容識別模型一般為圖像分類或者目標檢測網絡,文字識別為OCR網絡,兩者相互獨立,并行推理能加快審核速度。在現有技術中,常用的多模型并行推理有多進程方式,其優點是技術成熟,但涉及到多進程間的調度會產生額外的時間開銷即就是消耗的時間會變長,同時每個子進程也都需要一份獨立的輸入數據,這樣也消耗了存儲資源?,F有技術中,其實多線程方式也能進行并行推理,并且可以共享一份輸入數據,但是python語言由于全局解釋鎖GIL機制,因此,多線程并非真正意義上的并發執行,也就是說,由于調度開銷以及存儲資源的緣故,基于python語言實現的多線程目前還沒有很好的執行。
技術實現思路
本專利技術針對現有技術中的缺點,提供了一種基于python實現的多模型融合并行推理方法、系統及裝置。為了解決上述技術問題,本專利技術通過下述技術方案得以解決:一種基于python實現的多模型融合并行推理方法,包括以下步驟:獲取參與推理的多個異構模型,將多個異構模型按照預設規則轉換成標準子模型;將每個子模型的結構和權重字典與總模型的每條分支相互對應,基于每個子模型的結構和權重字典將每個標準子模型融合成總模型;將總模型加載至GPU中,并對融合后的總模型進行推理驗證;定義總模型的輸出為每個子模型的輸出組成的列表,通過列表索引將總模型的推理結果映射回子模型。作為一種可實施方式,在將總模型的推理結果映射回子模型步驟后,還包括以下步驟:對推理結束后的每個子模型采用多進程方法并行進行后處理。作為一種可實施方式,所述將每個標準子模型融合成總模型,具體過程為:獲取每個子模塊的模塊單元,并對所述模塊單元重命名,并使得每個模塊單元的名稱不重復;獲取每個子模型的權重字典,并在權重字典前加子模型單元的名稱將其作為前綴;定義總模型FusedModel類成員,其中,所述FusedModel類成員包括變量和forward函數,所述變量為每個子模型類的成員變量的合集,所述forward函數為將每個子模型中forward函數通過預設的邏輯進行合并;基于定義好的FusedModel類成員對總模型進行加載模型權重,將每個子模型的權重字典進行合并形成總模型的權重字典,并加載至總模型類實例化對象,進而得到融合后的總模型。一種基于python實現的多模型融合并行推理系統,包括獲取模塊、融合模塊、推理模塊和映射模塊;所述獲取模塊,用于獲取參與推理的多個異構模型,將多個異構模型按照預設規則轉換成標準子模型;所述融合模塊,用于將每個子模型的結構和權重字典與總模型的每條分支相互對應,基于每個子模型的結構和權重字典將每個標準子模型融合成總模型;所述推理模塊,用于將總模型加載至GPU中,并對融合后的總模型進行推理驗證;所述映射模塊,用于定義總模型的輸出為每個子模型的輸出組成的列表,通過列表索引將總模型的推理結果映射回子模型。作為一種可實施方式,還包括后處理模塊,所述后處理模塊被設置為:對推理結束后的每個子模型采用多進程方法并行進行后處理。作為一種可實施方式,所述融合模塊被設置為:獲取每個子模塊的模塊單元,并對所述模塊單元重命名,并使得每個模塊單元的名稱不重復;獲取每個子模型的權重字典,并在權重字典前加子模型單元的名稱將其作為前綴;定義總模型FusedModel類成員,其中,所述FusedModel類成員包括變量和forward函數,所述變量為每個子模型類的成員變量的合集,所述forward函數為將每個子模型中forward函數通過預設的邏輯進行合并;基于定義好的FusedModel類成員對總模型進行加載模型權重,將每個子模型的權重字典進行合并形成總模型的權重字典,并加載至總模型類實例化對象,進而得到融合后的總模型。一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有計算機程序,所述計算機程序被處理器執行時實現如下的方法步驟:獲取參與推理的多個異構模型,將多個異構模型按照預設規則轉換成標準子模型;將每個子模型的結構和權重字典與總模型的每條分支相互對應,基于每個子模型的結構和權重字典將每個標準子模型融合成總模型;將總模型加載至GPU中,并對融合后的總模型進行推理驗證;定義總模型的輸出為每個子模型的輸出組成的列表,通過列表索引將總模型的推理結果映射回子模型。一種基于python實現的多模型融合并行推理裝置,包括存儲器、處理器以及存儲在所述存儲器中并可在所述處理器上運行的計算機程序,所述處理器執行所述計算機程序時實現如下的方法步驟:獲取參與推理的多個異構模型,將多個異構模型按照預設規則轉換成標準子模型;將每個子模型的結構和權重字典與總模型的每條分支相互對應,基于每個子模型的結構和權重字典將每個標準子模型融合成總模型;將總模型加載至GPU中,并對融合后的總模型進行推理驗證;定義總模型的輸出為每個子模型的輸出組成的列表,通過列表索引將總模型的推理結果映射回子模型。本專利技術由于采用了以上技術方案,具有顯著的技術效果:推理效率高,相較于多進程、多線程并行推理方法,本專利技術只在一個進程中運行,沒有進程間、線程間的調度問題,效率更高。節約存儲資源,由于將多個子模型融合為一個總模型,相較于多進程方法,本專利技術只需一份輸入數據,節約了存儲資源。實現簡單,多模型并行推理亦可在cuda底層編碼實現,但需要較強的cuda編程知識。本專利技術基于python命令實現,簡單易行,即便是深度學習初學者也容易上手使用。附圖說明為了更清楚地說明本專利技術實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本專利技術的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖1是本專利技術方法的流程示意圖;圖2是本專利技術系統的整體示意圖;圖3是一具體實施例的流程示意圖;圖4是子模型融合成總模型的示意圖。具體實施方式下面結合實施例對本專利技術做進一步的詳細說明,以下實施例是對本專利技術的解釋而本專利技術并不局限于本文檔來自技高網...
【技術保護點】
1.一種基于python實現的多模型融合并行推理方法,其特征在于,包括以下步驟:/n獲取參與推理的多個異構模型,將多個異構模型按照預設規則轉換成標準子模型;/n將每個子模型的結構和權重字典與總模型的每條分支相互對應,基于每個子模型的結構和權重字典將每個標準子模型融合成總模型;/n將總模型加載至GPU中,并對融合后的總模型進行推理驗證;/n定義總模型的輸出為每個子模型的輸出組成的列表,通過列表索引將總模型的推理結果映射回子模型。/n
【技術特征摘要】
1.一種基于python實現的多模型融合并行推理方法,其特征在于,包括以下步驟:
獲取參與推理的多個異構模型,將多個異構模型按照預設規則轉換成標準子模型;
將每個子模型的結構和權重字典與總模型的每條分支相互對應,基于每個子模型的結構和權重字典將每個標準子模型融合成總模型;
將總模型加載至GPU中,并對融合后的總模型進行推理驗證;
定義總模型的輸出為每個子模型的輸出組成的列表,通過列表索引將總模型的推理結果映射回子模型。
2.根據權利要求1所述的基于python實現的多模型融合并行推理方法,其特征在于,在將總模型的推理結果映射回子模型步驟后,還包括以下步驟:
對推理結束后的每個子模型采用多進程方法并行進行后處理。
3.根據權利要求1所述的基于python實現的多模型融合并行推理方法,其特征在于,所述將每個標準子模型融合成總模型,具體過程為:
獲取每個子模塊的模塊單元,并對所述模塊單元重命名,并使得每個模塊單元的名稱不重復;
獲取每個子模型的權重字典,并在權重字典前加子模型單元的名稱將其作為前綴;
定義總模型FusedModel類成員,其中,所述FusedModel類成員包括變量和forward函數,所述變量為每個子模型類的成員變量的合集,所述forward函數為將每個子模型中forward函數通過預設的邏輯進行合并;
基于定義好的FusedModel類成員對總模型進行加載模型權重,將每個子模型的權重字典進行合并形成總模型的權重字典,并加載至總模型類實例化對象,進而得到融合后的總模型。
4.一種基于python實現的多模型融合并行推理系統,其特征在于,包括獲取模塊、融合模塊、推理模塊和映射模塊;
所述獲取模塊,用于獲取參與推理的多個異構模型,將多個異構模型按照預設規則轉換成標準子模型;
所述融合...
【專利技術屬性】
技術研發人員:王璐威,吳彰鵬,
申請(專利權)人:杭州欣禾圣世科技有限公司,
類型:發明
國別省市:浙江;33
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。