YOLO多執行緒多模型執行模式的實施

2021-09-27 10:16:21 字數 697 閱讀 5574

darknet深度神經網路學習框架具有小巧、快速的特點,由於採用c++進行編寫,非常容易改為多執行緒執行,而用於檢測、分類等任務。

在window環境中,其基本思路為:

1. 將檢測,分類函式封裝為可呼叫的動態庫

2.動態申請network, 或固定長度 network陣列

3.各network模型及權重檔案根據不同的檢測、分類的功能能需求動態載入,比如行人檢測,特種車輛檢測、聲音分類,煙霧檢測,人臉識別等等。

4.可載入摸型的數量有一定限制。對於使用gpu的版本,可載入模型的數量與gpu視訊記憶體大小相關。比如yolo3的標準檢測模型占用約1.5g。1060顯示卡有6g視訊記憶體,可同時裝載三個模型,併發執行三個檢測線程。

5.從實際執行結果看,多模型共享顯示卡同時執行時,某個模型的執行速度要比獨佔顯示卡的執行速度慢些,以訓練時的運**況看,兩個模型同時在乙個顯示卡上訓練,要比獨佔顯示卡訓練慢1倍左右,這和磁碟讀寫及記憶體匯流排共享有關。而最終檢測或分類時的資料均在記憶體中,速度影響會少很多。

6.對於多顯示卡的情況,採用多模型多執行緒並行執行的方式將充分挖掘顯示卡的計算能力,而裝備了多gpu卡的計算機則無疑於一台小型的智慧型分析伺服器。此時要注意計算機的通風和散熱問題。

7.多模型多執行緒的執行模式可用於複雜系統分析,比如人臉檢測、識別、表情分析等,無法由單個神經網路模型完成,需要多個網路串聯分析推理並最終產生結果。如果該伺服器要服務多個客戶端,則多模型多執行緒執行模式將是基本的需求。

多執行緒 執行緒池執行多業務邏輯

1.執行緒池執行不同的業務邏輯.2.獲取每個任務執行的結果 3.最後的結果會用到之前的結果 public class searchuserlistdto catch interruptedexception e system.out.println 111 乙個執行緒池,三個執行緒,執行三個任務,只...

多執行緒的強制執行

某些時候,我們需要強制優先執行某執行緒,可以使用join 方法 join long millis join long millis,int nanos 後兩個帶引數中的方法的作用是,指定合併時間,前者精確到毫秒,後者精確到納秒,意思是兩個執行緒合併指定的時間後,又開始分離,回到合併千的狀態。publ...

6 執行緒的概念和多執行緒模型

系統在建立乙個新進 程時,便為它分配乙個任務資料區 ptda per task data area 其中包括若干個執行緒控制塊tcb空間。只要其所建立的執行緒數目未超過系統的允許值 通常為數十至數百個 系統可再為之分配新的tcb空間 1 執行時系統 2 核心控制線程 輕型程序 light weigh...