本系列將從 Atari Breakout 與強化學習基礎出發,使用 PyTorch 從零實作 DQN、Double DQN 與 Dueling DQN,完整記錄環境建置、資料收集、模型訓練、超參數調校、除錯與實驗評估。後半段進一步將模型匯出為 ONNX,比較不同推論方式的效能,並嘗試透過 ONNX Runtime Web / WebGPU 將訓練完成的 AI 部署至瀏覽器,完整走過從模型訓練到實際部署的 AI Engineering 流程。
Day 20 我們已經從 DQN、Double DQN、Dueling Double DQN 三種方案裡,選出了 Dueling Double DQN。 但「選...
Day 21,我們終於把長時間訓練告一段落,留下了最後要用的 Dueling Double DQN。 前面二十多天一直在想一件事:怎麼讓 Agent 學會玩 B...
Day 22,我們已經把訓練好的 PyTorch 模型轉成 ONNX。 乍看之下,好像只差把它丟進瀏覽器就完成了。 但我不太想直接往下衝,因為中間還有一個很基本...
Day 23 已經確認一件很重要的事:把模型從 PyTorch 換成 ONNX Runtime 之後,Agent 的決策沒有跑掉。 接下來自然會想問: 那它到...
Day 24 我已經確認,這個 Breakout 模型做一次決策其實只需要幾毫秒。 接下來我很好奇另一個很常見的最佳化方法:如果把 FP32 換成 FP16,會...
Day 25 我試過 FP16。模型檔案確實變小了,但部分狀態會選到不同動作,而且一次只處理一個遊戲狀態時也沒有比較快。 Day 26 換一個方向:把原本的 O...
前幾天,Breakout Agent 雖然已經訓練完成,也能替四個動作做決定,但大部分事情都還是在 Python 裡完成。 如果最後想把它做成一個「打開網頁就能...
Day 27 已經確認,同一個 Breakout 模型可以直接在瀏覽器裡執行,而且用 WASM 跑 60 個固定畫面時,最後選到的動作和 Python 全部一致...
Day 27、Day 28 已經證明一件事:訓練好的 ONNX 模型可以直接放進瀏覽器,用 WASM 或 WebGPU 執行,而且對固定畫面會做出和原本模型一致...
30天 !!我終於完成了! 30 天前,我只是看到有人用強化學習讓 AI 玩遊戲,覺得很有趣,所以也想自己做一次。 一開始想得很簡單:把 Breakout 跑起...