日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

PyTorch可以和TensorFlow一樣快,有時(shí)甚至比TensorFlow更快了?

DPVg_AI_era ? 來(lái)源:lq ? 2019-09-07 07:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

PyTorch可以和TensorFlow一樣快,有時(shí)甚至比TensorFlow更快了?這是怎么回事?最近Reddit的一個(gè)帖子引起熱議。

近日,Reddit 上有一個(gè)熱帖:為什么 PyTorch 和 TensorFlow 一樣快 (有時(shí)甚至比 TensorFlow 更快)?

作者說(shuō):

由于這兩個(gè)庫(kù)都在底層使用 cuDNN,所以我預(yù)想各個(gè)操作的速度是相似的。然而,TensorFlow (在 graph 模式下) 編譯一個(gè) graph,因此當(dāng)你運(yùn)行實(shí)際的訓(xùn)練循環(huán)時(shí),在 session.run 調(diào)用之外沒(méi)有任何 Python 開(kāi)銷。在 PyTorch 中,由于動(dòng)態(tài)圖的關(guān)系,需要經(jīng)常使用 Python,所以我預(yù)想這回增加一些開(kāi)銷。更不用說(shuō),擁有靜態(tài)圖意味著可以進(jìn)行圖優(yōu)化,比如節(jié)點(diǎn)修剪和排序操作。但我在網(wǎng)上看到的許多基準(zhǔn)測(cè)試中,在 GPU 上,PyTorch 都可以輕松地趕上 TensorFlow。

一個(gè)具體的例子是,在 PyTorch 和 TensorFlow 兩個(gè)庫(kù)中的 Adam 實(shí)現(xiàn):

https://github.com/pytorch/pytorch/blob/master/torch/optim/adam.py https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/training/adam.py

PyTorch 擁有你所期望的所有操作。對(duì)于 {_resource} _apply_density 情況下的 TensorFlow (據(jù)我所知這是常見(jiàn)情況), TensorFlow 有一個(gè)專用的 C++ 實(shí)現(xiàn)。因此,在這里,TensorFlow 不會(huì)在 Python 上花費(fèi)額外的時(shí)間,而且它在 C++ 中有一個(gè)優(yōu)化的實(shí)現(xiàn)。在這種情況下,為什么 TensorFlow 版本沒(méi)有更快一些呢?

我聽(tīng)說(shuō) PyTorch 在 cuDNN 級(jí)別上進(jìn)行了更好的優(yōu)化。有人能提供更多細(xì)節(jié)嗎?是什么阻止了 TensorFlow 做同樣的事情?我所知道的惟一優(yōu)化是 PyTorch 使用 NCHW 格式 (針對(duì) cuDNN 進(jìn)行了更好的優(yōu)化),而 TensorFlow 默認(rèn)使用 NHWC。

更新:看起來(lái)新的 Volta GPU 使用 NHWC 格式 (TensorFlow 的默認(rèn)格式) 的性能更好:https://devblogs.nvidia.com/tensor-core-ai-performance- ones/

這個(gè)問(wèn)題引發(fā)了諸多 Reddit 網(wǎng)友的關(guān)注,大家紛紛給出自己的答案。

SR2Z:

這里的關(guān)鍵是異步執(zhí)行 —— 除非你不斷地在 GPU 之間復(fù)制數(shù)據(jù),否則 PyTorch 操作只會(huì)為 GPU 排隊(duì)。對(duì) torch 函數(shù)的 Python 調(diào)用將在排隊(duì)操作后返回,因此大多數(shù) GPU 工作都不會(huì)占用 Python 代碼。這將瓶頸從 Python 轉(zhuǎn)移到了 CUDA,這就是為什么它們執(zhí)行起來(lái)如此相似。

huberloss (回復(fù) SR2Z):

TF 構(gòu)建了一個(gè)執(zhí)行圖,然后由 C++ 后端處理,這意味著你在 Python 中所做的唯一工作就是設(shè)置這個(gè)圖 (至少在 TF1.x 中是這樣)。我不認(rèn)為 TF 會(huì)移動(dòng)移入 / 移出 GPU,除非需要 (例如,op1 運(yùn)行在 CPU 上,op2 運(yùn)行在 GPU 上,op3 運(yùn)行在 CPU 上 -> 這將導(dǎo)致向 GPU 復(fù)制或從 GPU 復(fù)制)。TF 有執(zhí)行程序,它也將異步運(yùn)行所有內(nèi)容 (這意味著獨(dú)立節(jié)點(diǎn)將以一種你能夠盡快滿足輸出節(jié)點(diǎn)的方式執(zhí)行)。

關(guān)于 OP 的觀點(diǎn),我真的不知道為什么有時(shí)候會(huì)更快。我可以想到的唯一猜測(cè)是數(shù)據(jù)格式,或者某些 ops 調(diào)用 CUDA/cuDNN 的方式。

entarko:

正如你所說(shuō),這兩個(gè)庫(kù)都使用 cuDNN,所以在較低級(jí)別上使用的大多數(shù)算法是相似的。我的理解是,在默認(rèn)情況下,PyTorch 中的執(zhí)行是異步的。這意味著 Python 命令在 GPU 上執(zhí)行某項(xiàng)調(diào)用,但不等待該調(diào)用的結(jié)果,除非下一個(gè)操作需要該結(jié)果。因此,GPU 操作速度的唯一不同之處在于 python 調(diào)用所需的時(shí)間,這與 GPU 上的實(shí)際計(jì)算相比總體上較小。這并不能解釋為什么有時(shí)候 PyTorch 更快,這在一定程度上來(lái)自 NCHW (盡管并不總是這樣),而且還來(lái)自算法為不同的操作進(jìn)行的選擇 (cuDNN 的 benchmark flag)。

patrickkidger:

這與 PyTorch 和 TensorFlow 沒(méi)有直接關(guān)系,但是既然 NCHW 和 NHWC 被提了出來(lái),我希望這里有人能知道答案……

為什么 batch size N 是第一個(gè)而不是最后一個(gè)?在我看來(lái),由于緩存的局部性,最后使用它通常會(huì)加快速度。

大多數(shù)數(shù)據(jù)集格式不統(tǒng)一應(yīng)該不是大問(wèn)題:相比于在整個(gè)計(jì)算的其余部分中具有 N-last 格式的好處而言,單個(gè)副本轉(zhuǎn)到 N-last 格式(即在將其送入神經(jīng)網(wǎng)絡(luò)之前)的開(kāi)銷應(yīng)該是微不足道的。

programmerChilli (回復(fù) patrickkidger):

我認(rèn)為你是正確的,將批處理維度放在最后可以實(shí)現(xiàn)一些非常有趣的優(yōu)化 (想想所有的向量化)。

但是,如果你的 batch size 很小,會(huì)發(fā)生什么呢?比如 batch size 為 2 (可能 3 會(huì)更糟)。突然之間,你可以在批處理維度上進(jìn)行向量化的數(shù)量變得非常少了,并且你已經(jīng)傳播了其余的數(shù)據(jù),但沒(méi)有獲得多少收益。

實(shí)際上,以前有幾個(gè)框架使用這種格式,比如來(lái)自 Nervana 的 Neon。

我想主要的答案是人們嘗試了,但是由于各種原因,一些政治上 / 技術(shù)上的原因,我們目前已經(jīng)把 batch size 作為第一個(gè)維度確定下來(lái)。

un_om_de_cal:

根據(jù)我將項(xiàng)目從 PyTorch 轉(zhuǎn)移到 TF 的經(jīng)驗(yàn),雖然 PyTorch 的基本訓(xùn)練操作 (前向傳播、反向傳播、更新參數(shù)) 更快,但是一些不尋常的操作 (包括 argmax 和 slicing),PyTorch 比 TF 要慢得多。因此,也許 PyTorch 更適合通?;鶞?zhǔn)測(cè)試的更常見(jiàn)的操作,而 TF 針對(duì)更廣泛的操作進(jìn)行了優(yōu)化?

我想到的另一點(diǎn)是,PyTorch 教程在 CPU 上做數(shù)據(jù)增強(qiáng),而 TF 教程在 GPU 上做數(shù)據(jù)增強(qiáng) (至少 1-2 年前我看到的教程是這樣)。如果你像這樣做項(xiàng)目,那么你將在 CPU 上執(zhí)行一些計(jì)算,只要你沒(méi)有耗盡 CPU, 就可以提高效率。

各位 PyTorcher 和 TF boy,你們?cè)趺纯矗?/p>

聲明:本文內(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)投訴
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1240

    瀏覽量

    26262
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    336

    瀏覽量

    62392
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    813

    瀏覽量

    14930

原文標(biāo)題:Reddit熱議:為什么PyTorch比TensorFlow更快?

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    瑞芯微(EASY EAI)RV1126B 模型轉(zhuǎn)換教程示例

    Pytorch模型都可以通過(guò)我們提供的toolkit工具將其轉(zhuǎn)換至rknn模型,而對(duì)于其他框架訓(xùn)練出來(lái)的模型,也可以先將其轉(zhuǎn)至onnx模型再轉(zhuǎn)換為rknn模型。模型轉(zhuǎn)換操作
    的頭像 發(fā)表于 04-30 14:26 ?158次閱讀
    瑞芯微(EASY EAI)RV1126B 模型轉(zhuǎn)換教程示例

    800V超充技術(shù):讓電動(dòng)汽車補(bǔ)能像加油一樣

    2024年以來(lái),800V高壓平臺(tái)成為新能源車企競(jìng)逐焦點(diǎn)。小米SU7Ultra、極氪007、智己LS6等車型相繼量產(chǎn),“讓補(bǔ)能像加油一樣快捷”從實(shí)驗(yàn)室走進(jìn)現(xiàn)實(shí)生活。2026年3月,
    的頭像 發(fā)表于 03-20 11:40 ?425次閱讀
    800V超充技術(shù):讓電動(dòng)汽車補(bǔ)能像加油<b class='flag-5'>一樣</b><b class='flag-5'>快</b>

    在 NPU 上運(yùn)行了 eIQ TensorFlow Lite 示例模型報(bào)錯(cuò)

    我們已經(jīng)在 NPU 上運(yùn)行了 eIQ TensorFlow Lite 示例模型,但它們失敗并出現(xiàn)以下錯(cuò)誤: 信息:加載的模型 mobilenet_v1_1.0_224_quant.tflite
    發(fā)表于 03-18 06:52

    PyTorch 中RuntimeError分析

    原生實(shí)現(xiàn)。這是個(gè)已知的 PyTorch 限制,常見(jiàn)于 Stable Diffusion、ComfyUI 等使用 interpolate(..., mode=\'nearest\') 的模型中
    發(fā)表于 03-06 06:02

    Pytorch 與 Visionfive2 兼容嗎?

    Pytorch 與 Visionfive2 兼容嗎? $ pip3 install torch torchvision torchaudio --index-url https
    發(fā)表于 02-06 08:28

    使用NORDIC AI的好處

    × 在 CPU 上運(yùn)行時(shí)可 10×、更省電,平均模型體積 <5 KB。[Edge AI 軟件頁(yè)] Axon NPU 對(duì)同 TensorFlow Lite 模型:* 推理速度最高可比
    發(fā)表于 01-31 23:16

    借助谷歌LiteRT構(gòu)建下代高性能端側(cè)AI

    ) 框架。雖然 TFLite 為傳統(tǒng)端側(cè)機(jī)器學(xué)習(xí)設(shè)定了標(biāo)準(zhǔn),但我們的使命是讓開(kāi)發(fā)者能夠像過(guò)去集成傳統(tǒng)端側(cè)機(jī)器學(xué)習(xí)一樣,無(wú)縫地在設(shè)備端部署當(dāng)今最前沿的 AI (如大語(yǔ)言模型)。
    的頭像 發(fā)表于 01-30 11:23 ?3427次閱讀
    借助谷歌LiteRT構(gòu)建下<b class='flag-5'>一</b>代高性能端側(cè)AI

    如何在TensorFlow Lite Micro中添加自定義操作符(1)

    來(lái)支持各種神經(jīng)網(wǎng)絡(luò)層的計(jì)算。也就是說(shuō),我們不僅可以使用內(nèi)嵌的算子運(yùn)算,還可以自己注冊(cè)個(gè)新的算子,更加的靈活。本期就將用兩期的文章以 `reshape.cpp` 為例,詳細(xì)說(shuō)明如何在 Tens
    的頭像 發(fā)表于 12-26 10:34 ?5818次閱讀

    一樣的展會(huì),不一樣的精彩 2025灣芯展圓滿收官

    10月17日,2025灣區(qū)半導(dǎo)體產(chǎn)業(yè)生態(tài)博覽會(huì)(2025灣芯展)在深圳會(huì)展中心(福田)圓滿收官。全球600多家展商、超30場(chǎng)論壇,在6萬(wàn)平方米的展區(qū)內(nèi),打造場(chǎng)“不一樣的展會(huì)”,呈現(xiàn)出“不一樣的精彩
    的頭像 發(fā)表于 10-29 16:56 ?1537次閱讀
    不<b class='flag-5'>一樣</b>的展會(huì),不<b class='flag-5'>一樣</b>的精彩 2025灣芯展圓滿收官

    一樣的展會(huì),不一樣的精彩:2025灣芯展順利收官

    內(nèi),打造場(chǎng)"不一樣的展會(huì)",呈現(xiàn)出"不一樣的精彩"。本屆展會(huì)人氣火爆,展期三天累計(jì)接待總量達(dá)到11.23萬(wàn)人次。參展企業(yè)集中發(fā)布年度新品數(shù)約2500件,新品發(fā)布與商業(yè)合作收獲頗豐。 ? 不
    的頭像 發(fā)表于 10-19 20:27 ?928次閱讀
    不<b class='flag-5'>一樣</b>的展會(huì),不<b class='flag-5'>一樣</b>的精彩:2025灣芯展順利收官

    【上海晶珩睿莓1開(kāi)發(fā)板試用體驗(yàn)】將TensorFlow-Lite物體歸類(classify)的輸出圖片移植到LVGL9.3界面中

    既然調(diào)通了TensorFlow-Lite物體歸類(classify)和LVGL9.3代碼,那么把這兩個(gè)東西結(jié)合起來(lái)也是沒(méi)問(wèn)題的,需要注意的是,TensorFlow-Lite是C++代碼,而
    發(fā)表于 09-21 00:39

    【上海晶珩睿莓1開(kāi)發(fā)板試用體驗(yàn)】TensorFlow-Lite物體歸類(classify)

    用。 OpenCV庫(kù)編譯成功之后,就可以新建個(gè)線程進(jìn)行TensorFlow-Lite物體歸類了,這里我直接使用現(xiàn)成的pb和pbtxt文件,具體內(nèi)容不贅述,來(lái)看看識(shí)別效果:
    發(fā)表于 09-12 22:43

    現(xiàn)場(chǎng)解決EMC電磁輻射干擾:“望聞問(wèn)切”,像中醫(yī)一樣

    南柯電子|現(xiàn)場(chǎng)解決EMC電磁輻射干擾:“望聞問(wèn)切”,像中醫(yī)一樣
    的頭像 發(fā)表于 09-04 09:47 ?1068次閱讀

    Nordic收購(gòu) Neuton.AI 關(guān)于產(chǎn)品技術(shù)的分析

    生成傳統(tǒng)框架(如 TensorFlowPyTorch 等)小 10 倍的模型,模型體積可低至個(gè)位數(shù) KB,并且推理速度更快、功耗更低。此次收購(gòu)將 Neuton 的自動(dòng)化 TinyM
    發(fā)表于 06-28 14:18

    無(wú)法將Tensorflow Lite模型轉(zhuǎn)換為OpenVINO?格式怎么處理?

    Tensorflow Lite 模型轉(zhuǎn)換為 OpenVINO? 格式。 遇到的錯(cuò)誤: FrontEnd API failed with OpConversionFailure:No translator found for TFLite_Detection_PostProcess node.
    發(fā)表于 06-25 08:27
    镇雄县| 大埔区| 长春市| 黔西| 乐陵市| 盐源县| 芮城县| 高淳县| 新建县| 永定县| 旬阳县| 穆棱市| 扎囊县| 漠河县| 城口县| 印江| 密云县| 庄河市| 克什克腾旗| 综艺| 青川县| 垫江县| 赣州市| 始兴县| 忻城县| 苍山县| 青岛市| 宜君县| 娄底市| 渭南市| 沙雅县| 紫云| 嘉义县| 玉树县| 霍邱县| 石台县| 和硕县| 浦江县| 家居| 贵溪市| 舟曲县|