女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

Batch大小不一定是2的n次冪?

電子工程師 ? 來(lái)源:量子位 ? 作者:量子位 ? 2022-08-08 16:29 ? 次閱讀

Batch大小不一定是2的n次冪?

是否選擇2的n次冪在運(yùn)行速度上竟然也相差無(wú)幾?

有沒(méi)有感覺(jué)常識(shí)被顛覆?

這是威斯康星大學(xué)麥迪遜分校助理教授Sebastian Raschka(以下簡(jiǎn)稱R教授)的最新結(jié)論。

5bc08726-16c2-11ed-ba43-dac502259ad0.png

神經(jīng)網(wǎng)絡(luò)訓(xùn)練中,2的n次冪作為Batch大小已經(jīng)成為一個(gè)標(biāo)準(zhǔn)慣例,即64、128、256、512、1024等。

一直有種說(shuō)法,是這樣有助于提高訓(xùn)練效率。

但R教授做了一番研究之后,發(fā)現(xiàn)并非如此。

在介紹他的試驗(yàn)方法之前,首先來(lái)回顧一下這個(gè)慣例究竟是怎么來(lái)的?

2的n次冪從何而來(lái)?

一個(gè)可能的答案是:因?yàn)?a href="http://www.tjjbhg.com/v/tag/132/" target="_blank">CPUGPU的內(nèi)存架構(gòu)都是由2的n次冪構(gòu)成的。

或者更準(zhǔn)確地說(shuō),根據(jù)內(nèi)存對(duì)齊規(guī)則,cpu在讀取內(nèi)存時(shí)是一塊一塊進(jìn)行讀取的,塊的大小可以是2,4,8,16(總之是2的倍數(shù))。

5bdb5d76-16c2-11ed-ba43-dac502259ad0.png

因此,選取2的n次冪作為batch大小,主要是為了將一個(gè)或多個(gè)批次整齊地安裝在一個(gè)頁(yè)面上,以幫助GPU并行處理。

其次,矩陣乘法和GPU計(jì)算效率之間也存在一定的聯(lián)系。

5bf09aa6-16c2-11ed-ba43-dac502259ad0.jpg

假設(shè)我們?cè)诰仃囍g有以下矩陣乘法A和B:

5c011c32-16c2-11ed-ba43-dac502259ad0.jpg

當(dāng)A的行數(shù)等于B的列數(shù)的時(shí)候,兩個(gè)矩陣才能相乘。

其實(shí)就是矩陣A的第一行每個(gè)元素分別與B的第一列相乘再求和,得到C矩陣的第一個(gè)數(shù),然后A矩陣的第一行再與B矩陣的第二列相乘,得到第二個(gè)數(shù),然后是A矩陣的第二行與B矩陣的第一列……

5c10effe-16c2-11ed-ba43-dac502259ad0.jpg

因此,如上圖所示,我們擁有2×M×N×K個(gè)每秒浮點(diǎn)運(yùn)算次數(shù)(FLOPS)。

現(xiàn)在,如果我們使用帶有Tensor Cores的GPU,例如V100時(shí),當(dāng)矩陣尺寸(M,N以及K)與16字節(jié)的倍數(shù)對(duì)齊,在FP16混合精度訓(xùn)練中,8的倍數(shù)的運(yùn)算效率最為理想。

因此,假設(shè)在理論上,batch大小為8倍數(shù)時(shí),對(duì)于具有Tensor Cores和FP16混合精度訓(xùn)練的GPU最有效,那么讓我們調(diào)查一下這一說(shuō)法在實(shí)踐中是否也成立。

不用2的n次冪也不影響速度

為了了解不同的batch數(shù)值對(duì)訓(xùn)練速度的影響,R教授在CIFAR-10上運(yùn)行了一個(gè)簡(jiǎn)單的基準(zhǔn)測(cè)試訓(xùn)練——MobileNetV3(大)——圖像的大小為224×224,以便達(dá)到適當(dāng)?shù)腉PU利用率。

R教授用16位自動(dòng)混合精度訓(xùn)練在V100卡上運(yùn)行訓(xùn)練,該訓(xùn)練能更高效地使用GPU的Tensor Cores。

如果你想自己運(yùn)行,該代碼可在此GitHub存儲(chǔ)庫(kù)中找到(鏈接附在文末)。

該測(cè)試共分為以下三部分:

小批量訓(xùn)練

5c2292c2-16c2-11ed-ba43-dac502259ad0.png

從上圖可以看出,以樣本數(shù)量128為參考點(diǎn),將樣本數(shù)量減少1(127)或增加1(129),的確會(huì)導(dǎo)致訓(xùn)練速度略慢,但這種差異幾乎可以忽略不計(jì)。

而將樣本數(shù)量減少28(100)會(huì)導(dǎo)致訓(xùn)練速度明顯放緩,這可能是因?yàn)槟P同F(xiàn)在需要處理的批次比以前更多(50,000/100=500與50,000/128= 390)。

同樣的原理,當(dāng)我們將樣本數(shù)量增加28(156)時(shí),運(yùn)行速度明顯變快了。

最大批量訓(xùn)練

鑒于MobileNetV3架構(gòu)和輸入映像大小,上一輪中樣本數(shù)量相對(duì)較小,因此GPU利用率約為70%。

為了調(diào)查GPU滿載時(shí)的訓(xùn)練速度,本輪把樣本數(shù)量增加到512,使GPU的計(jì)算利用率接近100%。

5c3b8002-16c2-11ed-ba43-dac502259ad0.png

△由于GPU內(nèi)存限制,無(wú)法使用大于515的樣本數(shù)量

可以看出,跟上一輪結(jié)果一樣,不管樣本數(shù)量是否是2的n次冪,訓(xùn)練速度的差異幾乎可以忽略不計(jì)。

多GPU訓(xùn)練

基于前兩輪測(cè)試評(píng)估的都是單個(gè)GPU的訓(xùn)練性能,而如今多個(gè)GPU上的深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練更常見(jiàn)。為此,這輪進(jìn)行的是多GPU培訓(xùn)。

5c492c66-16c2-11ed-ba43-dac502259ad0.png

正如我們看到的,2的n次冪(256)的運(yùn)行速度并不比255差太多。

測(cè)試注意事項(xiàng)

在上述3個(gè)基準(zhǔn)測(cè)試中,需要特別聲明的是:

所有基準(zhǔn)測(cè)試的每個(gè)設(shè)置都只運(yùn)行過(guò)一次,理想情況下當(dāng)然是重復(fù)運(yùn)行次數(shù)越多越好,最好還能生成平均和標(biāo)準(zhǔn)偏差,但這并不會(huì)影響到上述結(jié)論。

此外,雖然R教授是在同一臺(tái)機(jī)器上運(yùn)行的所有基準(zhǔn)測(cè)試,但兩次運(yùn)營(yíng)之間沒(méi)有特意相隔很長(zhǎng)時(shí)間,因此,這可能意味著前后兩次運(yùn)行之間的GPU基本溫度可能不同,并可能稍微影響到運(yùn)算時(shí)間。

結(jié)論

可以看出,選擇2的n次冪或8的倍數(shù)作為batch大小在實(shí)踐中不會(huì)產(chǎn)生明顯差異。

然而,由于在實(shí)際使用中已成為約定俗成,選擇2的n次冪作為batch大小,的確可以幫助運(yùn)算更簡(jiǎn)單并且易于管理。

此外,如果你有興趣發(fā)表學(xué)術(shù)研究論文,選擇2的n次冪將使你的論文看上去不那么主觀。

盡管如此,R教授仍然認(rèn)為,batch的最佳大小在很大程度上取決于神經(jīng)網(wǎng)絡(luò)架構(gòu)和損失函數(shù)。

例如,在最近使用相同ResNet架構(gòu)的研究項(xiàng)目中,他發(fā)現(xiàn)batch的最佳大小可以在16到256之間,具體取決于損失函數(shù)。

因此,R教授建議始終把調(diào)整batch大小,作為超參數(shù)優(yōu)化的一部分。

但是,如果你由于內(nèi)存限制而無(wú)法使用512作為batch大小,那么則不必降到256,首先考慮500即可。

作者Sebastian Raschka

Sebastian Raschka,是一名機(jī)器學(xué)習(xí)AI 研究員。

他在UW-Madison(威斯康星大學(xué)麥迪遜分校)擔(dān)任統(tǒng)計(jì)學(xué)助理教授,專注于深度學(xué)習(xí)和機(jī)器學(xué)習(xí)研究,同時(shí)也是Lightning AI的首席 AI 教育家。

另外他還寫(xiě)過(guò)一系列用Python和Scikit-learn做機(jī)器學(xué)習(xí)的教材。

5c7af340-16c2-11ed-ba43-dac502259ad0.png

基準(zhǔn)測(cè)試代碼鏈接:
https://github.com/rasbt/b3-basic-batchsize-benchmark
參考鏈接:
https://sebastianraschka.com/blog/2022/batch-size-2.html

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 矩陣
    +關(guān)注

    關(guān)注

    1

    文章

    434

    瀏覽量

    35098
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8497

    瀏覽量

    134249

原文標(biāo)題:Batch大小不一定是2的n次冪!ML資深學(xué)者最新結(jié)論

文章出處:【微信號(hào):CVer,微信公眾號(hào):CVer】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Denebola RDK上配置的幀大小與實(shí)際幀大小不一致是怎么回事?

    字節(jié),與預(yù)期值不一致。 eCamViewer 上的顯示問(wèn)題: 使用Wireshark檢查數(shù)據(jù)傳輸,數(shù)據(jù)包已成功傳輸?shù)街鳈C(jī)。 但是,視頻沒(méi)有在eCamViewer上顯示,我懷疑幀和數(shù)據(jù)包大小差異(在第 1 點(diǎn)和第 2 點(diǎn)中提到)
    發(fā)表于 05-19 08:09

    求助,CY3014中CyU3PDmaChannelSetWrapUp函數(shù)的使用以及其他問(wèn)題求解

    我在主任務(wù)中的FOR循環(huán)中實(shí)現(xiàn)了個(gè)功能: UART不定時(shí)的接收大小不一的數(shù)據(jù),然后再通過(guò)UART傳出。 其中附件是我的代碼. 遇到的問(wèn)題: 剛開(kāi)始接收與發(fā)送是正常的,我發(fā)送的數(shù)據(jù)以及數(shù)據(jù)大小,再
    發(fā)表于 05-15 08:09

    cyusb3014 slave fifo模式In和Out緩存大小不一樣時(shí),顯示錯(cuò)誤怎么解決?

    cyusb3014 slave fifo 模式 In 和 Out 緩存大小設(shè)置不一樣時(shí)(比如:U2P DMA緩存16K,P2U DMA緩存1K),可以測(cè)出來(lái)實(shí)際就是設(shè)置值,但在USB
    發(fā)表于 05-13 06:55

    DLP4500需要使用近紅外光源,如何判斷這個(gè)芯片是否適用?

    因?yàn)橐獙?duì)人體掃描,之前直再看450NIR,650NIR做的投影產(chǎn)品,但這種太少還都是在國(guó)外才有的賣。 所以想問(wèn)下,如果用850nm的光源,是不是用普通的DMD芯片就可以,不一定是近紅外波段的NIR系列芯片。 另外,如果有人
    發(fā)表于 02-21 17:15

    DLPC3478使用External Pattern Mode如何解決并行口第N輸入的數(shù)據(jù)將在N+1時(shí)輸出造成的第1輸出圖像不能指定的問(wèn)題?

    時(shí),直接先通過(guò)并行口輸入張圖像,用以保證后續(xù)每次圖片都正常,但是測(cè)試時(shí)發(fā)現(xiàn),只要兩圖像操作的時(shí)間間隔超過(guò)一定時(shí)間,后面操作輸出的第1圖像又會(huì)變成默認(rèn)圖像。請(qǐng)問(wèn),在External
    發(fā)表于 02-21 14:49

    TLK2201的數(shù)據(jù)端口對(duì)應(yīng)不齊是怎么回事?

    這個(gè)片子我選擇的是unframed模式,輸入的端口0-9的數(shù)據(jù)不一定是對(duì)應(yīng)在輸出端口0-9輸出。而是在上電后,輸入輸出端口0-9是隨機(jī)循環(huán)對(duì)應(yīng)的。即有可能輸入端9-0對(duì)應(yīng)輸出端0,9-1;或輸入
    發(fā)表于 02-07 07:29

    文看懂ADC轉(zhuǎn)換過(guò)程

    單位:數(shù)字信號(hào)最低位LSB所對(duì)應(yīng)的模擬信號(hào)大小。用 表示。 量化:把取樣后的保持信號(hào)化為量化單位的整數(shù)倍。 量化誤差:因模擬電壓不一定能被 整除而引起的誤差。 編碼:把量化的數(shù)值用二進(jìn)制代碼表示。劃分量化電平的兩種方法: ? 2
    的頭像 發(fā)表于 01-23 17:43 ?1698次閱讀
    <b class='flag-5'>一</b>文看懂ADC轉(zhuǎn)換過(guò)程

    養(yǎng)成良好的編程習(xí)慣|堆內(nèi)存初值不一定是0

    ;} 代碼很簡(jiǎn)單,使用 malloc 申請(qǐng)段堆內(nèi)存,假設(shè)內(nèi)存空間足夠大。 通過(guò) getchar 配合 while 循環(huán),從標(biāo)準(zhǔn)輸入獲取個(gè)字符串,直到遇到換行符結(jié)束。 最后就是把獲取的字符串輸出。 乍看,好像程序沒(méi)什么問(wèn)題。
    的頭像 發(fā)表于 12-18 09:14 ?356次閱讀

    使用ADS1256中出現(xiàn)重新上電會(huì)出現(xiàn)讀取AD值不一樣的情況,怎么解決?

    您好,我在使用ADS1256中出現(xiàn)重新上電會(huì)出現(xiàn)讀取AD值不一樣的情況:我這邊直給個(gè)恒定的電壓輸入,重復(fù)上電斷電讀取AD值的實(shí)驗(yàn),10中大約出現(xiàn)兩
    發(fā)表于 12-13 09:34

    TLV320AIC3104在沒(méi)有輸入聲音的時(shí)候,采集出來(lái)的信號(hào)底噪大小不一樣,差異比較大是為什么?

    我們使用aic3104碰到以下問(wèn)題,在沒(méi)有輸入聲音的時(shí)候,采集出來(lái)的信號(hào)底噪大小不一樣,差異比較大。 客戶那邊的測(cè)試情況是這樣。
    發(fā)表于 10-10 06:18

    兩種形式電路咪頭拾音的信號(hào)大小不一樣,為什么?

    如上圖所示,兩種形式電路,用示波器測(cè)試,相同條件下測(cè)得咪頭的信號(hào)大小不一樣,請(qǐng)問(wèn)是為什么呢?下面那種情況咪頭信號(hào)大。
    發(fā)表于 09-20 08:23

    請(qǐng)問(wèn)下LM3433中Vadj是不是一定是需要大于0.3V?

    請(qǐng)問(wèn)下LM3433中Vadj是不是一定是需要大于0.3V,如果Vadj的電壓小于0.3V,比如Vadj=0.25V,那么Vsense是等于0.3/16.667還是0.25/16.667?謝謝!
    發(fā)表于 09-04 06:16

    OPA2340UA 0輸入時(shí),有的運(yùn)放是0輸出,有的0輸入有輸出,這是怎么回事?

    自己在供應(yīng)商買了些OPA2340UA發(fā)現(xiàn)0輸入時(shí),有的運(yùn)放是0輸出,有的0輸入有輸出,而且輸出的大小不一樣,為了完成我所需要的功能,要更換很多次運(yùn)放,我以為是買到了假的運(yùn)放,然后在官網(wǎng)申請(qǐng)了些樣片,發(fā)現(xiàn)也是這樣
    發(fā)表于 08-29 07:28

    用的PGA309和24LC16BE,校準(zhǔn)完成之后零點(diǎn)輸出4mA,讀取eeprom的值發(fā)現(xiàn)程序的標(biāo)志位變了,為什么?

    發(fā)現(xiàn)程序的標(biāo)志位變了,原來(lái)正確的值應(yīng)為5449,更改之后的值就不一定是什么值了,請(qǐng)問(wèn)有沒(méi)有遇見(jiàn)過(guò)同樣的問(wèn)題,可能產(chǎn)生這種情況的原因在哪啊?
    發(fā)表于 08-19 08:30

    LM723可調(diào)電路PCB板

    此板不一定與LM723可調(diào)電路相同,謹(jǐn)慎下載
    發(fā)表于 07-17 13:02 ?2次下載
    主站蜘蛛池模板: 勐海县| 隆林| 兴安县| 兴义市| 桐乡市| 潜山县| 阜平县| 铁力市| 开原市| 洮南市| 珲春市| 五寨县| 津南区| 滦南县| 瓦房店市| 清新县| 郓城县| 新乐市| 金阳县| 美姑县| 邵阳市| 依兰县| 磴口县| 巨鹿县| 卢湾区| 墨玉县| 文安县| 龙陵县| 康平县| 区。| 陆良县| 旺苍县| 岐山县| 吉林市| 年辖:市辖区| 五指山市| 招远市| 永年县| 昌平区| 中宁县| 桐乡市|