在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

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

DPVg_AI_era ? 來源:lq ? 2019-09-07 07:50 ? 次閱讀

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

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

作者說:

由于這兩個庫都在底層使用 cuDNN,所以我預想各個操作的速度是相似的。然而,TensorFlow (在 graph 模式下) 編譯一個 graph,因此當你運行實際的訓練循環時,在 session.run 調用之外沒有任何 Python 開銷。在 PyTorch 中,由于動態圖的關系,需要經常使用 Python,所以我預想這回增加一些開銷。更不用說,擁有靜態圖意味著可以進行圖優化,比如節點修剪和排序操作。但我在網上看到的許多基準測試中,在 GPU 上,PyTorch 都可以輕松地趕上 TensorFlow。

一個具體的例子是,在 PyTorch 和 TensorFlow 兩個庫中的 Adam 實現:

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

PyTorch 擁有你所期望的所有操作。對于 {_resource} _apply_density 情況下的 TensorFlow (據我所知這是常見情況), TensorFlow 有一個專用的 C++ 實現。因此,在這里,TensorFlow 不會在 Python 上花費額外的時間,而且它在 C++ 中有一個優化的實現。在這種情況下,為什么 TensorFlow 版本沒有更快一些呢?

我聽說 PyTorch 在 cuDNN 級別上進行了更好的優化。有人能提供更多細節嗎?是什么阻止了 TensorFlow 做同樣的事情?我所知道的惟一優化是 PyTorch 使用 NCHW 格式 (針對 cuDNN 進行了更好的優化),而 TensorFlow 默認使用 NHWC。

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

這個問題引發了諸多 Reddit 網友的關注,大家紛紛給出自己的答案。

SR2Z:

這里的關鍵是異步執行 —— 除非你不斷地在 GPU 之間復制數據,否則 PyTorch 操作只會為 GPU 排隊。對 torch 函數的 Python 調用將在排隊操作后返回,因此大多數 GPU 工作都不會占用 Python 代碼。這將瓶頸從 Python 轉移到了 CUDA,這就是為什么它們執行起來如此相似。

huberloss (回復 SR2Z):

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

關于 OP 的觀點,我真的不知道為什么有時候會更快。我可以想到的唯一猜測是數據格式,或者某些 ops 調用 CUDA/cuDNN 的方式。

entarko:

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

patrickkidger:

這與 PyTorch 和 TensorFlow 沒有直接關系,但是既然 NCHW 和 NHWC 被提了出來,我希望這里有人能知道答案……

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

大多數數據集格式不統一應該不是大問題:相比于在整個計算的其余部分中具有 N-last 格式的好處而言,單個副本轉到 N-last 格式(即在將其送入神經網絡之前)的開銷應該是微不足道的。

programmerChilli (回復 patrickkidger):

我認為你是正確的,將批處理維度放在最后可以實現一些非常有趣的優化 (想想所有的向量化)。

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

實際上,以前有幾個框架使用這種格式,比如來自 Nervana 的 Neon。

我想主要的答案是人們嘗試了,但是由于各種原因,一些政治上 / 技術上的原因,我們目前已經把 batch size 作為第一個維度確定下來。

un_om_de_cal:

根據我將項目從 PyTorch 轉移到 TF 的經驗,雖然 PyTorch 的基本訓練操作 (前向傳播、反向傳播、更新參數) 更快,但是一些不尋常的操作 (包括 argmax 和 slicing),PyTorch 比 TF 要慢得多。因此,也許 PyTorch 更適合通常基準測試的更常見的操作,而 TF 針對更廣泛的操作進行了優化?

我想到的另一點是,PyTorch 教程在 CPU 上做數據增強,而 TF 教程在 GPU 上做數據增強 (至少 1-2 年前我看到的教程是這樣)。如果你像這樣做項目,那么你將在 CPU 上執行一些計算,只要你沒有耗盡 CPU, 就可以提高效率。

各位 PyTorcher 和 TF boy,你們怎么看?

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據集
    +關注

    關注

    4

    文章

    1220

    瀏覽量

    25183
  • tensorflow
    +關注

    關注

    13

    文章

    330

    瀏覽量

    60912
  • pytorch
    +關注

    關注

    2

    文章

    808

    瀏覽量

    13668

原文標題:Reddit熱議:為什么PyTorch比TensorFlow更快?

文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏

    評論

    相關推薦

    用樹莓派搞深度學習?TensorFlow啟動!

    介紹本頁面將指導您在搭載64位Bullseye操作系統的RaspberryPi4上安裝TensorFlowTensorFlow個專為深度學習開發的大型軟件庫,它消耗大量資源。您可以
    的頭像 發表于 03-25 09:33 ?212次閱讀
    用樹莓派搞深度學習?<b class='flag-5'>TensorFlow</b>啟動!

    可以使用OpenVINO?工具包將中間表示 (IR) 模型轉換為TensorFlow格式嗎?

    無法將中間表示 (IR) 模型轉換為 TensorFlow* 格式
    發表于 03-06 06:51

    OpenVINO?是否與TensorFlow集成支持Raspberry Pi?

    無法確定OpenVINO?是否與 TensorFlow* 集成支持 Raspberry Pi。
    發表于 03-05 08:26

    stm32mp135d的板子可不可以tensorflow的模型啊?

    請問是stm32mp135d的板子可不可以tensorflow的模型啊?
    發表于 07-18 06:49

    如何在Tensorflow中實現反卷積

    TensorFlow中實現反卷積(也稱為轉置卷積或分數步長卷積)是個涉及多個概念和步驟的過程。反卷積在深度學習領域,特別是在圖像分割、圖像超分辨率、以及生成模型(如生成對抗網絡GANs)等任務中
    的頭像 發表于 07-14 10:46 ?925次閱讀

    TensorFlow是什么?TensorFlow怎么用?

    TensorFlow是由Google開發的個開源深度學習框架,它允許開發者方便地構建、訓練和部署各種復雜的機器學習模型。TensorFlow憑借其高效的計算性能、靈活的架構以及豐富的工具和庫,在學
    的頭像 發表于 07-12 16:38 ?1077次閱讀

    使用TensorFlow進行神經網絡模型更新

    使用TensorFlow進行神經網絡模型的更新是個涉及多個步驟的過程,包括模型定義、訓練、評估以及根據新數據或需求進行模型微調(Fine-tuning)或重新訓練。下面我將詳細闡述這個過程,并附上相應的TensorFlow代碼
    的頭像 發表于 07-12 11:51 ?673次閱讀

    請問ESP32如何運行TensorFlow模型?

    請問ESP32如何運行TensorFlow模型?
    發表于 07-09 07:30

    tensorflowpytorch哪個更簡單?

    PyTorch更簡單。選擇TensorFlow還是PyTorch取決于您的具體需求和偏好。如果您需要個易于使用、靈活且具有強大社區支持的框架,Py
    的頭像 發表于 07-05 09:45 ?1253次閱讀

    tensorflowpytorch哪個好

    tensorflowpytorch都是非常不錯的強大的框架,TensorFlow還是PyTorch哪個更好取決于您的具體需求,以下是關于這兩個框架的
    的頭像 發表于 07-05 09:42 ?980次閱讀

    tensorflow簡單的模型訓練

    在本文中,我們將詳細介紹如何使用TensorFlow進行簡單的模型訓練。TensorFlow個開源的機器學習庫,廣泛用于各種機器學習任務,包括圖像識別、自然語言處理等。我們將從安裝
    的頭像 發表于 07-05 09:38 ?1090次閱讀

    keras模型轉tensorflow session

    在這篇文章中,我們將討論如何將Keras模型轉換為TensorFlow session。 Keras和TensorFlow簡介 Keras是個高級神經網絡API,它提供了種簡單、快
    的頭像 發表于 07-05 09:36 ?734次閱讀

    如何使用Tensorflow保存或加載模型

    TensorFlow個廣泛使用的開源機器學習庫,它提供了豐富的API來構建和訓練各種深度學習模型。在模型訓練完成后,保存模型以便將來使用或部署是項常見的需求。同樣,加載已保存的模型進行預測或
    的頭像 發表于 07-04 13:07 ?2305次閱讀

    TensorFlow的定義和使用方法

    TensorFlow個由谷歌人工智能團隊谷歌大腦(Google Brain)開發和維護的開源機器學習庫。它基于數據流編程(dataflow programming)的概念,將復雜的數學運算表示為
    的頭像 發表于 07-02 14:14 ?1202次閱讀

    TensorFlowPyTorch深度學習框架的比較與選擇

    深度學習作為人工智能領域的個重要分支,在過去十年中取得了顯著的進展。在構建和訓練深度學習模型的過程中,深度學習框架扮演著至關重要的角色。TensorFlowPyTorch是目前最受歡迎的兩大深度
    的頭像 發表于 07-02 14:04 ?1383次閱讀
    主站蜘蛛池模板: 美女视频黄a全部 | 五月天婷婷伊人 | 91视频免费观看 | 男女视频在线观看免费高清观看 | 久久国产视频一区 | 人人天天夜夜 | 成人精品第一区二区三区 | 一区二区中文字幕在线观看 | 伊人成年综合网 | 热久在线| 男人都懂得网址 | 黄黄网址 | 免费黄色大片视频 | 国产精品久久久久影院色老大 | 国产成人精品曰本亚洲77美色 | avtt亚洲一区中文字幕 | 在线播放亚洲视频 | 色中色资源 | 婷婷六月丁 | www三级| 岛国片欧美一级毛片 | 免费看日本大片免费 | 网络色综合久久 | 国产视频国产 | 欧美日韩国产成人精品 | 视频在线观看高清免费看 | 天天草比| 韩漫免费网站无遮挡羞羞漫画 | 一级做a爰片久久毛片毛片 一级做a爰片久久毛片美女图片 | 色网站在线播放 | 手机看片99| 调教双性学霸美人 | 狠狠色婷婷丁香六月 | 亚洲黄色小说网站 | 美女无遮挡拍拍拍免费视频 | 一区二区三区无码高清视频 | 在线你懂的 | 成年人激情视频 | 成年人毛片网站 | 一区二区不卡免费视频 | 国产综合成色在线视频 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品