Altifigence Academy

9 / 24 · 概念

直接卷積參考

輸入 [2,3]、權重 [4,−1]、偏置一時,若每個輸入通道迭代都加一次偏置,會得到哪個錯誤結果?

優先採用可檢查的參考

黃金模型優先呈現清楚契約,而非速度。迭代輸出通道、輸出列與輸出欄;接著歸約輸入通道與核心列欄。計算每個輸入座標,範圍外供應零。這能揭露第一個錯誤輸出與確切偏離項目。不必模仿硬體最佳化的迴圈順序。

y[m,h,w]=b[m]+∑c∑r∑sx[c,hSh−Pt+rDh,wSw−Pl+sDw]w[m,c,r,s]y[m,h,w]=b[m]+\sum_c\sum_r\sum_s x[c,hS_h-P_t+rD_h,wS_w-P_l+sD_w]w[m,c,r,s]

每個輸出只以 b[m] 初始化累加器一次。若在歸約內加入,就會重複偏置。整數模型中,x 與 w 是中心化編碼,偏置使用乘積尺度。

多通道計算範例

使用兩個 1×1 輸入通道,分別儲存二與三。輸出通道零的權重為 [4,−1]、偏置為一,得到 1+8−3=6。輸出通道一的權重為 [−2,5]、偏置為 −1,得到 −1−4+15=10。共用累加器必須獨立開始第二個輸出,不能保留第一個結果。

輸入 [1,2,3;4,5,6;7,8,9]、核心 [1,2;3,4] 的預期結果為 [37,47;67,77]。第一組記錄乘積為 1,4,12,20。下一組為 2,6,15,24。檢查手算位置;只看最終值可能掩蓋互相抵銷的錯誤。

將直接模型與結構不同的視窗區塊內積模型比較。兩者共用同一位址函式,可能共用相同錯誤。結合獨立結構與手算測試資料。保持隨機種子可重現,保留失敗張量。比較未轉換累加器與最終輸出編碼,以定位數值失敗。

我們的 model.mjs 接受 X[C][H][W] 與 W[M][C/G][R][S],隱含單一批次。它檢查矩形張量、通道相容性與群組,不匯入框架模型。使用不同數值、負數與非對稱權重,而非全零測試資料。對照 ONNX Conv 慣例,並記錄此教學模型限制。

自己試試看

輸入 [2,3]、權重 [4,−1]、偏置一時,若每個輸入通道迭代都加一次偏置,會得到哪個錯誤結果?

查看解說

正確結果為 1+8−3=6。偏置重複兩次得到 8−3+2=7。應在通道歸約之外初始化偏置。

此選擇適用於本瀏覽器,隨時可從頁尾變更。