GA3C 基於GPU的非同步並行強化學習演算法

2021-10-05 16:56:57 字數 1102 閱讀 9984

目錄

背景介紹

模型架構及學習過程

注意點gpu-basedasynchronousadvantageactor-critic是a3c的gpu實現。

a3c的每乙個worker都需要取樣、訓練,需要充足的cpu資源。

gpu有很強的平行計算優勢;直覺上,將學習計算部分挪到gpu,收集資料環境互動部分放到cpu,會使系統更緊湊高效,同時也能匹配其他深度學習任務的硬體架構。

學習過程是這樣的:

1,整體採用的是批處理策略,即快取到達batch size後統一處理;

2,每個agent(worker)負責收集資料(s, a, r, s'),註冊到佇列training queue,由trainer管理供以後訓練使用;

3,但agent不負責取樣本身π(a|s),而是將需求註冊到佇列prediction queue,由predictor管理;

3,predictor是個while true thread,當快取到達其batch size後,呼叫gpu上的策略**網路π(a|s)進行取樣

4,類似地,trainer也是個while true thread,滿足batch size後呼叫gpu進行訓練

1,模型網路只有一套,儲存在gpu上;

2,就是說,每一次取樣,都使用即時的網路引數

3,模型訓練期間,也同時再取樣,難免會出現取樣時的policy網路引數與最後學習時的引數不一致,所以ga3c部分資料有一定的延遲,不是嚴格的on-policy;

4,具體得看訓練的batch size及當時gpu狀態,gpu算力資源充足、batch size合理的情況下,受影響的資料應該是很少的。

基於C 的UDP協議的非同步實現

總結udp傳輸協議的非同步實現。visual studio 2010 伺服器端 using system using system.collections.generic using system.text using system.net using system.net.sockets usin...

C 深度學習 Task(基於任務的非同步模型)

一 task關鍵字解釋 task 類的表示的單個操作不會返回乙個值,通常以非同步方式執行。task 物件是一種的中心思想 基於任務的非同步程式設計模式 首次引入.net framework 4 中。因為由執行工作 task 物件通常上非同步執行乙個執行緒池執行緒而不是以同步方式在主應用程式執行緒中,...

c 基於委託的非同步程式設計模型(APM)測試用例

很多時候,我們需要程式在執行某個操作完成時,我們能夠知道,以便進行下一步操作。但是在使用原生執行緒或者執行緒池進行非同步程式設計,沒有乙個內建的機制讓你知道操作什麼時候完成,為了克服這些限制,基於委託的非同步程式設計模型應運而生。通過定義 函式能夠實現非同步程式設計,委託是乙個工具,類似語c 的函式...