flops: 全大寫,指每秒浮點運算次數,可以理解為計算的速度。是衡量硬體效能的乙個指標。(硬體)
flops: s小寫,指浮點運算數,理解為計算量。可以用來衡量演算法/模型的複雜度。(模型) 在**中常用gflops(1 gflops = 10^9 flops)
2023年,icir收錄了nvidia發表的一篇**,在這篇**的附錄裡,nvidia詳細的講解了一下flops的計算。
對於卷積層來說:
image
有人將其簡化了一下:
image
可以用來計算pytorch構建的網路的引數,空間大小,madd,flops等指標,簡單好用。
比如:我想知道alexnet的網路的一些引數。
只需要:
from torchstat import stat
import torchvision.models as models
model = model.alexnet()
stat(model, (3, 224, 224))
就能得到結果啦:
image
可以看到每一層都有結果!兼職是神器呀。
image
以及:image
跑的有點遠,收!
image
作者認為flops是一種簡介的測量指標,是乙個近似值,並不是我們真正關心的。我們需要的是直接的指標,比如速度和延遲。
image
圖c是經典小網路在gpu上的mflops與速度(batches/sec)的關係。 圖d是經典小網路在arm上的mflops與速度(batches/sec)的關係。
我們可以發現,具有相似的flops的網路,執行的速度卻不一樣。有的相差還挺大。
使用flop作為計算複雜度的唯一指標是不充分的。
為什麼不能只用flops作為指標呢?
作者認為有如下幾個原因:
flops沒有考慮幾個對速度有相當大影響的重要因素。 2)計算平台的不同。
flops沒有考慮幾個對速度有相當大影響的重要因素
mac和並行度
分享乙個象棋打譜軟體
用例名稱 移動棋子 主要場景 紅方首先移動棋子,然後黑方移動棋子,雙方輪流移動棋子,直到一方 將 或 帥 被吃掉 可以無限制步數悔棋 每下一步棋子記錄棋著,如 車一進一 車9平8 等 擴充套件場景 移動棋子必須符合中國象棋的規則 任何一方 將 或 帥 被將死則不再允許繼續走棋,但可以向前瀏覽 參見 ...
乙個軟體測試人員的經驗分享
出來做軟體測試三,四年了,確實正應了那句 測試不如開發 只是個人觀點,而且我工作過都是外企和大型國有企業,軟體測試流程和管理都相對很規範化的。1 錢肯定少過開發人員,除非你工作七,八年才能拿年薪10w以上,一般的軟體測試工程師很難上6k以上,開發人員工作四,五年後拿7,8k是太多數的。2 加班的現象...
Mac上搭建你的第乙個Angular Web應用
1.首先你需要安裝乙個node.js,安裝的方式有很多,請參考node.js官網 2.安裝完node.js,接著安裝typescript,請執行下列npm命令 npm install g typescript 3.然後安裝angular cli,angular提供了乙個命令列工具angular cl...