模型 flops 估算 使用指南
模型 FLOPs 估算器,輸入全連線層與卷積層維度估算前向傳播計算量(FLOPs),用於模型算力與推理成本評估。
計算公式與原理
卷積 FLOPs ≈ 2·H·W·C_in·C_out·K²;全連線 FLOPs ≈ 2·in·out;MACs ≈ FLOPs / 2
按輸出特徵圖每個元素所需的乘加次數累計:卷積為 K²·C_in 次乘加、輸出 HWC_out 個元素,乘 2 得 FLOPs。1 MAC = 1 次乘加 = 2 FLOPs,硬體標稱算力多用 MACs,對比時要注意單位換算。
使用步驟
- 填寫「輸入高」。
- 填寫「輸入寬」。
- 填寫「輸入通道」。
- 填寫「輸出通道」。
- 填寫「卷積核」。
- 填寫「全連線輸入」。
- 填寫「全連線輸出」。
- 結果區會即時更新;可一鍵複製結果用於記錄或彙報。
典型使用場景
- 全連線層 FLOPs≈2·in·out·batch·seq(乘加各算一次)。
- 卷積層 FLOPs≈2·k²·C_in·C_out·H_out·W_out。
- FLOPs 衡量算力需求(時間),結合引數量評估推理成本與硬體選型。
算例參考
- 卷積層算力:3×3 卷積, C_in=64,C_out=128, 特徵圖 56×56:FLOPs≈2×9×64×128×56×56≈4.66×10⁹ 次/樣本。可見大特徵圖與多通道下卷積算力增長極快。
注意事項
結果為按上述公式得到的理論估算值,實際表現受資料分佈、實現細節與執行環境影響,落地決策請以實測為準;本工具純前端執行,輸入不上傳伺服器。
- FLOPs 越大模型越慢?
- 通常如此,但還受視訊記憶體頻寬與並行度影響;某些高 FLOPs 運算元若訪存密集會被頻寬卡住,實際延遲需結合硬體實測。
- 訓練 FLOPs 怎麼算?
- 約為前向的 2~3 倍(反向含梯度計算),再乘訓練 token 數;大模型的訓練算力常用 Kaplan 縮放律直接由引數量與資料量估算。