欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pytorch簡介

 更新時間:2020年11月11日 14:51:32   作者:bestrivern  
Pytorch是torch的python版本,是由Facebook開源的神經(jīng)網(wǎng)絡框架,專門針對 GPU 加速的深度神經(jīng)網(wǎng)絡(DNN)編程。這篇文章給大家介紹pytorch的相關知識,感興趣的朋友一起看看吧

一.Pytorch是什么?

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

二.為什么選擇 Pytorch?

 1.簡潔:

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

2.速度:

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

3.易用:

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

4.活躍的社區(qū):

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

三.PyTorch 的架構是怎樣的?

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

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

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

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

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

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

到此這篇關于pytorch簡介的文章就介紹到這了,更多相關pytorch簡介內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論