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

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>PyTorch教程12.5之小批量隨機(jī)梯度下降

PyTorch教程12.5之小批量隨機(jī)梯度下降

2023-06-05 | pdf | 0.55 MB | 次下載 | 免費(fèi)

資料介紹

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

12.5.1。矢量化和緩存

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

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

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

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

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

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

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

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

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

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

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

%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))

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

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. 1涂鴉各WiFi模塊原理圖加PCB封裝
  2. 11.75 MB   |  76次下載  |  1 積分
  3. 2錦銳科技CA51F2 SDK開發(fā)包
  4. 24.06 MB   |  29次下載  |  1 積分
  5. 3錦銳CA51F005 SDK開發(fā)包
  6. 19.47 MB   |  3次下載  |  1 積分
  7. 4蘋果iphone 11電路原理圖
  8. 4.98 MB   |  3次下載  |  2 積分
  9. 5基礎(chǔ)模擬電子電路
  10. 3.80 MB   |  3次下載  |  1 積分
  11. 6RA-Eco-RA6M4-100PIN-V1.0開發(fā)板資料
  12. 34.89 MB  |  1次下載  |  免費(fèi)
  13. 7STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊
  14. 3.32 MB   |  1次下載  |  免費(fèi)
  15. 8聯(lián)想A820t手機(jī)維修圖紙包括主板原理圖 尾板原理圖 點(diǎn)位圖
  16. 0.62 MB   |  次下載  |  5 積分

本月

  1. 1AI智能眼鏡產(chǎn)業(yè)鏈分析
  2. 4.43 MB   |  383次下載  |  免費(fèi)
  3. 2蘇泊爾電磁爐線路的電路原理圖資料合集
  4. 2.02 MB   |  296次下載  |  5 積分
  5. 3貼片三極管上的印字與真實(shí)名稱的對照表詳細(xì)說明
  6. 0.50 MB   |  94次下載  |  1 積分
  7. 4長虹液晶電視R-HS310B-5HF01的電源板電路原理圖
  8. 0.46 MB   |  91次下載  |  5 積分
  9. 5涂鴉各WiFi模塊原理圖加PCB封裝
  10. 11.75 MB   |  76次下載  |  1 積分
  11. 6錦銳科技CA51F2 SDK開發(fā)包
  12. 24.06 MB   |  29次下載  |  1 積分
  13. 7AO4803A雙P通道增強(qiáng)型場效應(yīng)晶體管的數(shù)據(jù)手冊
  14. 0.11 MB   |  28次下載  |  2 積分
  15. 8長虹液晶彩電LS29機(jī)芯的技術(shù)資料說明
  16. 3.42 MB   |  16次下載  |  2 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191388次下載  |  10 積分
  9. 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  10. 158M  |  183342次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81588次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73815次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分
主站蜘蛛池模板: 色欲久久精品AV无码 | 亚洲AV无码偷拍在线观看 | 国产亚洲精品久久久999蜜臀 | 亚洲精品一线二线三线无人区 | 国产人妻麻豆蜜桃色 | 国产精品第八页 | 春药按摩人妻中文字幕 | 亚洲高清国产拍精品动图 | 亚洲宅男天堂a在线 | 欧美wwwvideos在线观看 | 国产精品成人无码久免费 | 亚洲精品在看在线观看 | 欧美精品成人一区二区在线观看 | 文中字幕一区二区三区视频播放 | 色午夜日本高清视频www | 国产欧美另类久久久精品免费 | 亚洲福利区 | 国产人成精品综合欧美成人 | 精品一区二区免费视频蜜桃网 | aaaaaa级特色特黄的毛片 | 欧美人妖12p | 无套内射纹身女视频 | 理论片在线观看片免费 | 国产麻豆剧看黄在线观看 | 最近最新的日本字幕MV | 亚洲伊人成综合人影院 | 亚洲va在线va天堂XX xX | 2022久久精品国产色蜜蜜麻豆 | 国产白丝精品爽爽久久蜜臀 | 一本之道高清在线观看一区 | 国产成人无码精品久久久按摩 | 久草视频在线观看免费4 | 国产在线精品国自产拍影院午夜 | 国产久久精品热99看 | 最近中文字幕在线中文高清版 | 蜜芽无码亚洲资源网站 | 亚洲欧美综合中文 | 免费伦理片网站 | 99久久国产露脸精品麻豆 | 在线观看免费国产成人软件 | 中文字幕国产在线观看 |