深度學習基礎(四)——計算量(FLOPs)、參數量(Params)、計算速度(FLOPS/TOPS))

一、計算量FLOPs

FLOPs,全稱為Floating Point Operations, (s為復數縮寫),浮點運算數,指模型完成一次前向傳播所需的浮點運算次數,可以理解為計算量(模型的時間復雜度),用來衡量算法/模型的復雜度。
意義:FLOPs越高,模型計算復雜度越高,推理速度可能越慢。
關鍵規則

  • 一次乘加計算計為 2 F L O P s 2FLOPs 2FLOPs(乘法+加法)

計算公式
全連接層 F L O P s = 輸入維度 ? 輸出維度 ? 2 FLOPs = 輸入維度 * 輸出維度 * 2 FLOPs=輸入維度?輸出維度?2
卷積層 F L O P s = 輸出高 ? 輸出寬 ? 卷積核高 ? 卷積核寬 ? 輸入通道數 ? 輸出通道數 ? 2 FLOPs = 輸出高 * 輸出寬 * 卷積核高 * 卷積核寬 * 輸入通道數 * 輸出通道數 * 2 FLOPs=輸出高?輸出寬?卷積核高?卷積核寬?輸入通道數?輸出通道數?2
激活函數/池化層:操作計算量通常較小,一般不計入FLOPs
BN層 F L O P s = 4 ? 輸入元素個數 FLOPs = 4*輸入元素個數 FLOPs=4?輸入元素個數
示例

  • 全連接層輸入100維, 輸出50維: F L O P s = 100 ? 50 ? 2 = 10000 FLOPs = 100 * 50 * 2 = 10000 FLOPs=100?50?2=10000
  • 卷積層輸入 224 ? 224 ? 3 224*224*3 224?224?3, 輸出 112 ? 112 ? 64 112*112*64 112?112?64, 卷積核 3 ? 3 3*3 3?3, 步長2: F L O P s = 112 ? 112 ? 3 ? 3 ? 3 ? 64 ? 2 ≈ 8.7 億 FLOPs = 112 * 112 * 3 * 3 * 3 * 64 * 2 ≈ 8.7億 FLOPs=112?112?3?3?3?64?28.7

二、參數量Params

參數量是指模型可訓練參數的總數量,包含權重和偏置,可以理解為模型的空間復雜度。
意義:參數越多,模型復雜度越高,可能過擬合風險越大,且對計算資源要求更高。
計算公式
全連接層 P a r a m s = 權重數量 + 偏置數量 = (輸入維度 ? 輸出維度) + 輸出維度 Params = 權重數量+偏置數量 = (輸入維度 * 輸出維度)+ 輸出維度 Params=權重數量+偏置數量=(輸入維度?輸出維度)+輸出維度
卷積層 P a r a m s = 權重數量 + 偏置數量 = (卷積核高 ? 卷積核寬 ? 輸入通道數 ? 輸出通道數) + 輸出通道數 Params = 權重數量+偏置數量 = (卷積核高 * 卷積核寬 * 輸入通道數 * 輸出通道數) + 輸出通道數 Params=權重數量+偏置數量=(卷積核高?卷積核寬?輸入通道數?輸出通道數)+輸出通道數
BN層:Params = 2 * 通道數

示例

  • 全連接層輸入100維, 輸出50維: P a r a m s = 100 ? 50 + 50 = 5050 Params = 100 * 50 + 50 = 5050 Params=100?50+50=5050
  • 卷積層輸入 224 ? 224 ? 3 224*224*3 224?224?3, 輸出 112 ? 112 ? 64 112*112*64 112?112?64, 卷積核 3 ? 3 3*3 3?3, 步長2: P a r a m s = 3 ? 3 ? 3 ? 64 + 64 = 1792 Params = 3 * 3 * 3 * 64 + 64 = 1792 Params=3?3?3?64+64=1792

基于pytorch計算參數量和FLOPs

import torch
from thop import profilemodel = torch.nn.Conv2d(3, 64, kernel_size=3)
input = torch.randn(1, 3, 224, 224)
flops, params = profile(model, inputs=(input,))
print(f"FLOPs: {flops / 1e9} G, Params: {params / 1e6} M")

三、FLOPS

FLOPS,全稱為Floating Point Operations Per Sencond,表示設別每秒能完成的浮點運算次數,可以理解為計算速度。
意義:衡量計算設備的算力(如GPU/TPU的峰值算力)。
單位

  • 1 G F L O P S = 1 0 9 F L O P S 1 GFLOPS = 10^{9} FLOPS 1GFLOPS=109FLOPS(十億次/秒)
  • 1 T F L O P S = 1 0 12 F L O P S 1 TFLOPS = 10^{12} FLOPS 1TFLOPS=1012FLOPS(萬億次/秒)
    示例:NVIDIA A100 GPU的峰值算力維19.5TFLOPS。

四、TOPS
TOPS,全稱為Tera Operations Per Second, 每秒萬億次操作( 1 T O P S = 1 0 12 1 TOPS = 10^{12} 1TOPS=1012 次/秒)。
意義:衡量硬件(如AI芯片)的算力性能,常以整數運算
計算公式 T O P S = 時鐘頻率 ? M A U 數量 ? 2 TOPS=時鐘頻率 * MAU數量 * 2 TOPS=時鐘頻率?MAU數量?2,其中MAU是乘加單元,每個MAU每周期執行一次乘加
與FLOPs的關系
1、TOPS側重整數/定點運算,FLOPS側重浮點運算
2、若TOPS以int8為基準,FLOPS以FP16計算,則1 TFLOPS≈2 TOPS
3、TOPS專用于評估AI芯片算力;FLOPS評估通用計算硬件性能

四、根據FLOPs和Params匹配TOPS/FLOPS
1、FLOPs與硬件算力TOPS/FLOPS匹配
模型推理時間 ≈ F L O P s ÷ 硬件 F L O P S 模型推理時間 ≈ FLOPs ÷ 硬件FLOPS 模型推理時間FLOPs÷硬件FLOPS
例如,模型 F L O P s = 1 0 12 FLOPs=10^{12} FLOPs=1012次,硬件算力為 10 T F L O P S 10TFLOPS 10TFLOPS,則理論耗時約為0.1秒。
若模型使用int8量化,需優先匹配TOPS(如AI芯片),浮點模型(FP16/32)需匹配FLOPS(如GPU)
2、Params與內存帶寬關聯

  • 內存需求:Params決定模型存儲占用,例如,100M參數需約400MB內存(每個參數4字節)
  • 帶寬限制:硬件內存帶寬需支持快速加載參數,避免因帶寬不足導致算力閑置。 帶寬 ≥ ( P a r a m s ? 數據類型大小) ÷ 推理時間 帶寬 ≥ (Params * 數據類型大小)÷ 推理時間 帶寬Params?數據類型大小)÷推理時間。如 P a r a m s = 100 M = 400 M B Params = 100M=400MB Params=100M=400MB,推理時間需 ≤ 0.1 秒 ≤0.1秒 0.1,則帶寬需 ≥ 4 G B / s ≥4 GB/s 4GB/s

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/903750.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/903750.shtml
英文地址,請注明出處:http://en.pswp.cn/news/903750.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

電子秤檢測管理系統開發實戰:從數據采集到可視化大屏

簡介 電子秤作為現代工業生產和商業流通中的核心計量設備,其準確性直接關系到產品質量和交易公平。針對仙貝生產企業的電子秤管理需求,我們開發了一套集電子秤檢測信息錄入、產品信息管理、實時稱重數據采集和后臺可視化大屏于一體的綜合管理系統。該系統基于Django框架構建…

Cesium添加WMS,WMTS,地形圖圖,3D Tiles數據

在 Cesium 中,你可以添加 WMS、WMTS、地形圖 和 3D Tiles 數據源。以下是詳細的實現方法: 1. 添加 WMS 服務 WMS(Web Map Service)是一種動態地圖服務,適用于加載柵格地圖圖層。 代碼示例 const viewer new Cesium…

數據庫基本概念:數據庫的定義、特點、分類、組成、作用

一:數據庫相關概念 1.1 定義 (1)數據庫:存儲數據的倉庫 (2)數據庫管理系統:模擬和管理數據庫的大型軟件 (3)SQL:操作關系型數據庫的編程語言,定義…

【項目篇之消息序列化】仿照RabbitMQ模擬實現消息隊列

實現消息序列化 為什么不使用JSON來序列化直接使用二進制序列化實現序列化方法toBytes()1: 創建內存緩沖區??2 :創建對象序列化通道?3:執行序列化操作?4:提取二進制數據,轉換成byte[]序列化圖示流程:序…

單片機-89C51部分:13、看門狗

飛書文檔https://x509p6c8to.feishu.cn/wiki/LefkwDPU7iUUWBkfKE9cGLvonSh 一、作用 程序發生死循環的時候(跑飛),能夠自動復位。 啟動看門狗計數器->計數器計數->指定時間內不對計數器賦值(主程序跑飛,無法喂…

C++23/26 靜態反射機制深度解析:編譯時元編程的新紀元

目錄 引言 一、C靜態反射的核心特性 1. 編譯時元數據獲取 2. 元信息操作的語法革新 3. 與現有特性的深度融合 二、應用場景:從理論到實踐 1. 序列化與反序列化 2. 領域特定語言(DSL)與代碼生成 3. 動態插件系統 4. 調試與元編程增強…

RISCV學習(5)GD32VF103 MCU架構了解

RISCV學習(5)GD32VF103 MCU架構了解 1、芯片內核功能簡介 GD32VF103 MCU架構,采用Bumblebee內核,芯來科技(Nuclei System Technology)與臺灣晶心科技(Andes Technology)聯合開發&am…

【Java學習筆記】遞歸

遞歸(recursion) 思想:把一個復雜的問題拆分成一個簡單問題和子問題,子問題又是更小規模的復雜問題,循環往復 本質:棧的使用 遞歸的注意事項 (1)需要有遞歸出口,否者就…

滲透測試中的那些“水洞”:分析與防御

1. Nginx 版本泄露 風險分析: Nginx 默認會在響應頭中返回 Server: nginx/x.x.x,攻擊者可利用該信息匹配已知漏洞進行攻擊。 防御措施: 修改 nginx.conf 配置文件,隱藏版本信息:server_tokens off;使用 WAF 進行信息…

基于C#開發的適合Windows開源文件管理器

使用DDD從零構建一個完整的系統 推薦一個功能強大且直觀的開源文件管理器,適用于Windows平臺。 01 項目簡介 該項目是一個基于C#開發、開源的文件管理器,適用于Windows,界面UI美觀、方便輕松瀏覽文件。此外,支持創建和提取壓縮…

實習入職的總結

我是4月14號入職的,到現在差不多已經三個禮拜了,今天想總結一下這段時間的工作情況,并給學弟學妹們提供一些指引。 目前,我所在的公司是一家初創企業,專注于IPC安防領域。作為一名大專生,我深知自己的學歷在…

Ubuntu 系統上部署 Kubernetes 的完整指南

Ubuntu 系統上部署 Kubernetes 的完整指南 一、環境準備(Ubuntu 22.04/24.04)1. 系統初始化2. 安裝容器運行時(containerd)3. 安裝 Kubernetes 組件(kubeadm, kubelet, kubectl) 二、部署 Kubernetes 集群1…

partition_pdf 和chunk_by_title 的區別

from unstructured.partition.pdf import partition_pdf from unstructured.chunking.title import chunk_by_titlepartition_pdf 和 chunk_by_title 初看有點像,都在"分塊",但是它們的本質完全不一樣。 先看它們核心區別 partition_pdfchun…

基于深度學習的醫療診斷輔助系統設計

標題:基于深度學習的醫療診斷輔助系統設計 內容:1.摘要 隨著醫療數據的爆炸式增長和深度學習技術的飛速發展,開發基于深度學習的醫療診斷輔助系統具有重要的現實意義。本研究的目的在于設計一個高效、準確的醫療診斷輔助系統,以輔助醫生進行更精準的診斷…

Matlab/Simulink - BLDC直流無刷電機仿真基礎教程(四) - PWM調制模擬

Matlab/Simulink - BLDC直流無刷電機仿真基礎教程(四) - PWM調制模擬 前言一、PWM調制技術基本原理二、仿真模型中加入PWM調制三、逆變電路MOS管添加體二極管四、模擬添加機械負載五、仿真模型與控制框圖文章相關模型文件下載鏈接參考鏈接 前言 本系列文…

Curl 全面使用指南

Curl(Client URL)是一個跨平臺命令行工具,支持多種協議(HTTP/HTTPS/FTP/SFTP等),用于數據傳輸、API調試、文件上傳/下載等場景。以下從 核心功能、用戶疑問解答、高級技巧 三方面系統總結,并整合…

PyTorch中“原地”賦值的思考

在開發一個PyTorch模塊時,遇到了一個詭異的現象,將他描述出來就是下面這樣: f[..., :p_index - 1] f[..., 1:p_index] 這個操作將f張量的部分數值進行左移,我在模型訓練的時候還能正常跑,但是當我將模型部署到項目中…

什么是:云邊端一體化架構

什么是云邊端一體化架構 文章目錄 什么是云邊端一體化架構云、邊、端云計算邊緣計算終端設備 云邊端一體化協同云邊端一體化架構協同的流程云邊端一體化架構協同的應用云邊端一體化架構協同的價值云邊端一體化架構協同未來發展趨勢 云、邊、端 云(Cloud&#xff09…

gephi繪圖

參考: 如何在Gephi中正確的顯示中文? Gephi繪制網絡圖初步探索 gephi 節點標簽 調節_圖分析與可視化-從Gephi開始

馬克·雷伯特:用算法讓機器人飛奔的人

名人說:路漫漫其修遠兮,吾將上下而求索。—— 屈原《離騷》 創作者:Code_流蘇(CSDN)(一個喜歡古詩詞和編程的Coder??) 馬克雷伯特:用算法讓機器人飛奔的人 一、天才的起點 在機器人領域,有一個名字如雷貫耳——馬克雷伯特(Marc Raibert)。作為波士頓動力公司(Boston…