如何估算神經網絡參數占用多少內存或顯存容量


問題引出

假設輸入是高和寬均為 1,000 像素的彩色照片(含3個通道)。即使全連接層輸出個數仍是256,該層權重參數的形狀也是 3,000,000×256 :它占用了大約3 GB的內存或顯存。這會帶來過於復雜的模型和過高的存儲開銷。————《動手學深度學習》第5章第5節

有人在討論區提出3 GB是如何計算得來的?我自己計算過后,在討論區回復了,在這里Mark和分享下。要回答這個問題,我們要分析如下幾個子問題:

  • 全連接輸入個數
  • 全連接參數個數
  • 神經網絡參數數值類型
  • 1GB等於多少字節

全連接輸入個數

  • 使用全連接網絡,每個通道的每個像素被當做一個輸入。
  • 因此,1張高和寬均為1000像素(含3個通道)的照片,共有1000*1000*3個輸入;

全連接參數個數

  • 對於全連接網絡層,每個輸入連接到所有神經元單元,或者說每個神經網絡單元連接所有輸入,每個連接就是一個參數,所以全連接網絡參數個數等於輸入個數*神經元單元數。
  • 全連接層使用256個輸出單元,那么總的連接數(即參數個數)為1000*1000*3*256個

神經網絡參數數值類型

  • 網絡參數為浮點小數,通常用float單精度表示,單精度float占32位/4個字節
  • 那么總的字節數為3*1000*1000*256*4

1GB等於多少字節

  • 1GB=1024M=1024*1024K=1024*1024*1024字節

問題求解

  • 因此,參數占用內存或顯存容量 \(=\frac{參數個數*4}{1024^3}=\frac{3*1000*1000*256*4}{1024*1024*1024}={2.86GB}\approx 3GB\)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM