色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
創作
電子發燒友網>電子資料下載>電子資料>PyTorch教程12.5之小批量隨機梯度下降

PyTorch教程12.5之小批量隨機梯度下降

2023-06-05 | pdf | 0.55 MB | 次下載 | 免費

資料介紹

到目前為止,我們在基于梯度的學習方法中遇到了兩個極端:第 12.3 節使用完整數據集來計算梯度和更新參數,一次一個傳遞。相反, 第 12.4 節一次處理一個訓練示例以取得進展。它們中的任何一個都有其自身的缺點。當數據非常相似時,梯度下降并不是特別有效。隨機梯度下降在計算上不是特別有效,因為 CPUGPU 無法利用矢量化的全部功能。這表明可能存在介于兩者之間的東西,事實上,這就是我們迄今為止在討論的示例中一直使用的東西。

12.5.1。矢量化和緩存

決定使用小批量的核心是計算效率。在考慮并行化到多個 GPU 和多個服務器時,這一點最容易理解。在這種情況下,我們需要向每個 GPU 發送至少一張圖像。每臺服務器 8 個 GPU 和 16 個服務器,我們已經達到了不小于 128 的小批量大小。

當涉及到單個 GPU 甚至 CPU 時,事情就有點微妙了。這些設備有多種類型的內存,通常有多種類型的計算單元和它們之間不同的帶寬限制。例如,CPU 有少量寄存器,然后是 L1、L2,在某些情況下甚至是 L3 緩存(在不同處理器內核之間共享)。這些緩存的大小和延遲都在增加(同時它們的帶寬在減少)。可以說,處理器能夠執行的操作比主內存接口能夠提供的要多得多。

首先,具有 16 個內核和 AVX-512 矢量化的 2GHz CPU 最多可以處理2?109?16?32=1012每秒字節數。GPU 的能力很容易超過這個數字的 100 倍。另一方面,中端服務器處理器的帶寬可能不會超過 100 GB/s,即不到保持處理器所需帶寬的十分之一喂。更糟糕的是,并非所有內存訪問都是平等的:內存接口通常為 64 位寬或更寬(例如,在 GPU 上高達 384 位),因此讀取單個字節會產生更寬訪問的成本。

其次,第一次訪問的開銷很大,而順序訪問相對便宜(這通常稱為突發讀?。?。還有很多事情要記住,比如當我們有多個套接字、小芯片和其他結構時的緩存。 有關更深入的討論,請參閱此 維基百科文章。

緩解這些限制的方法是使用 CPU 高速緩存的層次結構,這些高速緩存的速度實際上足以為處理器提供數據。這是深度學習中批處理背后的驅動力。為了簡單起見,考慮矩陣-矩陣乘法,比如 A=BC. 我們有多種計算方法A. 例如,我們可以嘗試以下操作:

  1. 我們可以計算 Aij=Bi,:C:,j,即,我們可以通過點積的方式逐元素計算它。

  2. 我們可以計算 A:,j=BC:,j,也就是說,我們可以一次計算一列。同樣我們可以計算 A一排Ai,:一次。

  3. 我們可以簡單地計算A=BC.

  4. 我們可以打破BC分成更小的塊矩陣并計算A一次一個塊。

如果我們遵循第一個選項,每次我們想要計算一個元素時,我們都需要將一行和一列向量復制到 CPU 中 Aij. 更糟糕的是,由于矩陣元素是順序對齊的,因此當我們從內存中讀取兩個向量之一時,我們需要訪問許多不相交的位置。第二種選擇要有利得多。在其中,我們能夠保留列向量C:,j在 CPU 緩存中,同時我們繼續遍歷B. 這將內存帶寬要求減半,訪問速度也相應加快。當然,選項 3 是最可取的。不幸的是,大多數矩陣可能無法完全放入緩存(畢竟這是我們正在討論的內容)。然而,選項 4 提供了一個實用的替代方法:我們可以將矩陣的塊移動到緩存中并在本地將它們相乘。優化的庫會為我們解決這個問題。讓我們看看這些操作在實踐中的效率如何。

除了計算效率之外,Python 和深度學習框架本身引入的開銷也相當可觀。回想一下,每次我們執行命令時,Python 解釋器都會向 MXNet 引擎發送命令,而 MXNet 引擎需要將其插入計算圖中并在調度期間對其進行處理。這種開銷可能非常有害。簡而言之,強烈建議盡可能使用矢量化(和矩陣)。

%matplotlib inline
import time
import numpy as np
import torch
from torch import nn
from d2l import torch as d2l

A = torch.zeros(256, 256)
B = torch.randn(256, 256)
C = torch.randn(256, 256)
%matplotlib inline
import time
from mxnet import autograd, gluon, init, np, npx
from mxnet.gluon import nn
from d2l import mxnet as d2l

npx.set_np()

A = np.zeros((256, 256))
B = np.random.normal(0, 1, (256, 256))
C = np.random.normal(0, 1, (256, 256))
%matplotlib inline
import time
import numpy as np
import tensorflow as tf
from d2l import tensorflow as d2l

A = tf.Variable(tf.zeros((256, 256)))
B = tf.Variable(tf.random.normal([256, 256], 0, 1))
C = tf.Variable(tf.random.normal([256, 256], 0, 1))

由于我們將在本書的其余部分頻繁地對運行時間進行基準測試,因此讓我們定義一個計時器。

class Timer: #@save
  """Record multiple running times."""
  def __init__(self):
    self.times = []
    self.start()

  def start(self):
    """Start the timer."""
    self.tik = time.time()

  def stop(self):
    """Stop the timer and record the time in a list."""
    self.times.append(time.time() - self.tik)
    return self.times[-1]

  def avg(self):
    """Return the average time."""
    return sum(self.times) / len(self.times)

  def sum(self):
    """Return the sum of time."""
    return sum(self.times)

  def cumsum(self):
    """Return the accumulated time."""
    return np.array(self.times).cumsum().tolist()

timer = Timer()
class Timer: #@save
  """Record multiple running times."""
  def __init__(self):
    self.times = []
    self.start()

  def start(self):
    """Start the timer."""
    self.tik = time.time()

  def stop(self):
    """Stop the timer and record the time in a list."""
    self.times.append(time.time() - self.tik)
    return self.times[-1]

  def avg(self):
    """Return the average time."""
    return sum(self.times) / len(self.times)

  def sum(self):
    """Return the sum of time."""
    return sum(self.times)

  def cumsum(self):
    """Return the accumulated time."""
    return np.array(self.times).cumsum().tolist()

timer = Timer()
class Timer: #@save
  """Record multiple running times."""
  def __init__(self):
    self.times = []
    self.start()

  def start(self):
    """Start the timer."""
    self.tik = time.time()

  def stop(self):
    """Stop the timer and record the time in a list."""
    self.times.append(time.time() - self.tik)
    return self.times[-1]

  def avg(self):
    """Return the average time."""
    return sum(self.times) / len(se

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1ADI高性能電源管理解決方案
  2. 2.43 MB   |  449次下載  |  免費
  3. 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
  4. 5.67 MB   |  136次下載  |  1 積分
  5. 3基于STM32單片機智能手環心率計步器體溫顯示設計
  6. 0.10 MB   |  123次下載  |  免費
  7. 4550W充電機原理圖
  8. 0.13 MB   |  2次下載  |  6 積分
  9. 5USB的PD快充協議電壓誘騙控制器FS312A中文手冊
  10. 1.51 MB   |  2次下載  |  免費
  11. 6USB的PD和OC快充協議電壓誘騙控制器FS312B中文手冊
  12. 1.35 MB   |  2次下載  |  免費
  13. 7USB Type_C PD快充協議智能觸發芯片FS8025B應用手冊
  14. 1.48 MB   |  1次下載  |  免費
  15. 8ADI公司串行端口開發和故障排除指南
  16. 343.09KB   |  1次下載  |  免費

本月

  1. 1ADI高性能電源管理解決方案
  2. 2.43 MB   |  449次下載  |  免費
  3. 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
  4. 5.67 MB   |  136次下載  |  1 積分
  5. 3基于STM32單片機智能手環心率計步器體溫顯示設計
  6. 0.10 MB   |  123次下載  |  免費
  7. 4使用單片機實現七人表決器的程序和仿真資料免費下載
  8. 2.96 MB   |  44次下載  |  免費
  9. 53314A函數發生器維修手冊
  10. 16.30 MB   |  31次下載  |  免費
  11. 6美的電磁爐維修手冊大全
  12. 1.56 MB   |  22次下載  |  5 積分
  13. 7使用TL431設計電源
  14. 0.67 MB   |  10次下載  |  免費
  15. 8感應筆電路圖
  16. 0.06 MB   |  10次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935119次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420062次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233084次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73807次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65987次下載  |  10 積分
主站蜘蛛池模板: 久久成人免费观看草草影院| 人妻互换免费中文字幕| 王雨纯羞羞| 国产午夜一区二区三区免费视频| 性直播免费| 久亚洲AV无码专区A片| 99RE6国产精品视频播放| 色一伦一情一区二区三区| 国产亚洲精品久久久久5区| 中文字幕亚洲综合小综合在线| 欧美性视频xxxxhd| 國產日韓亞洲精品AV| 99精品在线| 亚洲AV久久久噜噜噜久久| 美女洗澡脱得一二干净| 国产AV精品无码免费看| 在线视频av大全色久久| 色狗综合网| 玛雅成人网| 国产色偷偷男人的天堂| 99久久国产露脸精品国产麻豆| 秀婷程仪公欲息肉婷在线观看| 美女被爽cao免费漫画| 国产精品久久精品视| 92电影网午夜福利| 亚洲高清视频一区| 青春草久久| 久久青青草原精品国产软件| 古风H啪肉NP文| 97色香蕉在线| 亚洲色偷偷偷网站色偷一区人人藻| 青草影院内射中出高潮-百度| 精品久久久久久久国产潘金莲| 超碰日韩人妻高清视频| 永久精品视频无码一区| 午夜精品久久久久久久爽牛战 | 永久久久免费人妻精品| 天天爽夜夜爽| 青柠在线观看视频在线高清| 久久免费精品一区二区| 国产精品人妻无码免费A片导航|