中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

一文告訴你為選擇pytorch

發布時間:2020-11-12 09:22:46 來源:億速云 閱讀:200 作者:Leah 欄目:開發技術

一文告訴你為選擇pytorch?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

一.Pytorch是什么?

Pytorch是torch的python版本,是由Facebook開源的神經網絡框架,專門針對 GPU 加速的深度神經網絡(DNN)編程。Torch 是一個經典的對多維矩陣數據進行操作的張量(tensor )庫,在機器學習和其他數學密集型應用有廣泛應用。與Tensorflow的靜態計算圖不同,pytorch的計算圖是動態的,可以根據計算需要實時改變計算圖。但由于Torch語言采用 Lua,導致在國內一直很小眾,并逐漸被支持 Python 的 Tensorflow 搶走用戶。作為經典機器學習庫 Torch 的端口,PyTorch 為 Python 語言使用者提供了舒適的寫代碼選擇。

二.為什么選擇 Pytorch?

 1.簡潔:

PyTorch的設計追求最少的封裝,盡量避免重復造輪子。不像 TensorFlow 中充斥著session、graph、operation、name_scope、variable、tensor、layer等全新的概念,PyTorch 的設計遵循tensor→variable(autograd)→nn.Module 三個由低到高的抽象層次,分別代表高維數組(張量)、自動求導(變量)和神經網絡(層/模塊),而且這三個抽象之間聯系緊密,可以同時進行修改和操作。 簡潔的設計帶來的另外一個好處就是代碼易于理解。PyTorch的源碼只有TensorFlow的十分之一左右,更少的抽象、更直觀的設計使得PyTorch的源碼十分易于閱讀。

2.速度:

PyTorch 的靈活性不以速度為代價,在許多評測中,PyTorch 的速度表現勝過 TensorFlow和Keras 等框架。框架的運行速度和程序員的編碼水平有極大關系,但同樣的算法,使用PyTorch實現的那個更有可能快過用其他框架實現的。

3.易用:

PyTorch 是所有的框架中面向對象設計的最優雅的一個。PyTorch的面向對象的接口設計來源于Torch,而Torch的接口設計以靈活易用而著稱,Keras作者最初就是受Torch的啟發才開發了Keras。PyTorch繼承了Torch的衣缽,尤其是API的設計和模塊的接口都與Torch高度一致。PyTorch的設計最符合人們的思維,它讓用戶盡可能地專注于實現自己的想法,即所思即所得,不需要考慮太多關于框架本身的束縛。

4.活躍的社區:

PyTorch 提供了完整的文檔,循序漸進的指南,作者親自維護的論壇 供用戶交流和求教問題。Facebook 人工智能研究院對 PyTorch 提供了強力支持,作為當今排名前三的深度學習研究機構,FAIR的支持足以確保PyTorch獲得持續的開發更新,不至于像許多由個人開發的框架那樣曇花一現。

三.PyTorch 的架構是怎樣的?

PyTorch(Caffe2) 通過混合前端,分布式訓練以及工具和庫生態系統實現快速,靈活的實驗和高效生產。PyTorch 和 TensorFlow 具有不同計算圖實現形式,TensorFlow 采用靜態圖機制(預定義后再使用),PyTorch采用動態圖機制(運行時動態定義)。PyTorch 具有以下高級特征:

  • 混合前端:新的混合前端在急切模式下提供易用性和靈活性,同時無縫轉換到圖形模式,以便在C ++運行時環境中實現速度,優化和功能。 
  • 分布式訓練:通過利用本地支持集合操作的異步執行和可從Python和C ++訪問的對等通信,優化了性能。
  • Python優先: PyTorch為了深入集成到Python中而構建的,因此它可以與流行的庫和Cython和Numba等軟件包一起使用。
  • 豐富的工具和庫:活躍的研究人員和開發人員社區建立了豐富的工具和庫生態系統,用于擴展PyTorch并支持從計算機視覺到強化學習等領域的開發。 
  • 本機ONNX支持:以標準ONNX(開放式神經網絡交換)格式導出模型,以便直接訪問與ONNX兼容的平臺,運行時,可視化工具等。 
  • C++前端:C++前端是PyTorch的純C++接口,它遵循已建立的Python前端的設計和體系結構。它旨在實現高性能,低延遲和裸機C++應用程序的研究。 使用GPU和CPU優化的深度學習張量庫。

四.Pytorch 與 tensorflow 之間的差異在哪里?

上面也將了PyTorch 最大優勢是建立的神經網絡是動態的, 對比靜態的 Tensorflow, 它能更有效地處理一些問題, 比如說 RNN 變化時間長度的輸出。各有各的優勢和劣勢。兩者都是大公司發布的, Tensorflow(Google)宣稱在分布式訓練上下了很大的功夫, 那就默認 Tensorflow 在分布式訓練上要超出 Pytorch(Facebook),還有tensorboard可視化工具, 但是 Tensorflow 的靜態計算圖使得在 RNN 上有一點點被動 (雖然它用其他途徑解決了), 不過用 PyTorch 的時候, 會對這種動態的 RNN 有更好的理解。而且 Tensorflow 的高度工業化, 它的底層代碼很難看懂, Pytorch 好那么一點點, 如果深入 PytorchAPI, 至少能比看 Tensorflow 多看懂一點點 Pytorch 的底層在干啥。

五.Pytorch有哪些常用工具包?

  • torch :類似 NumPy 的張量庫,強 GPU 支持 ;   
  • torch.autograd :基于 tape 的自動區別庫,支持 torch 之中的所有可區分張量運行;
  • torch.nn :為最大化靈活性未涉及、與 autograd 深度整合的神經網絡庫;
  • torch.optim:與 torch.nn 一起使用的優化包,包含 SGD、RMSProp、LBFGS、Adam 等標準優化方式;
  • torch.multiprocessing: python 多進程并發,進程之間 torch Tensors 的內存共享;
  • torch.utils:數據載入器。具有訓練器和其他便利功能; 
  • torch.legacy(.nn/.optim) :處于向后兼容性考慮,從 Torch 移植來的 legacy 代碼;

關于一文告訴你為選擇pytorch問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长春市| 波密县| 巍山| 阿合奇县| 阳曲县| 漳平市| 凤台县| 禄劝| 双辽市| 盈江县| 炎陵县| 酉阳| 巩义市| 钟祥市| 福贡县| 河北区| 准格尔旗| 南宁市| 独山县| 大理市| 边坝县| 鄄城县| 临海市| 准格尔旗| 南溪县| 建德市| 海原县| 永仁县| 韶关市| 星子县| 新龙县| 石景山区| 云阳县| 忻州市| 神农架林区| 泸水县| 友谊县| 蒙山县| 靖州| 托克托县| 绥化市|