python torch又稱PyTorach,是一個以Python優先的深度學習框架,一個開源的Python機器學習庫,用於自然語言處理等應用程序,不僅能夠實現強大的GPU加速,同時還支持動態神經網絡,這是現在很多主流框架例如Tensorflow等都不支持的。
PyTorch 是Torch7 團隊開發的,從它的名字就可以看出,其與Torch 的不同之處在於PyTorch 使用了Python 作為開發語言。
所謂“Python first”,同樣說明它是一個以Python 優先的深度學習框架,不僅能夠實現強大的GPU 加速,同時還支持動態神經網絡,這是現在很多主流框架比如Tensorflow 等都不支援的。
PyTorch 既可以看做加入了GPU 支援的numpy,同時也可以看成一個擁有自動求導功能的強大的深度神經網絡,除了Facebook 之外,它還已經被Twitter、CMU 和Salesforce等機構採用。
推薦手冊:Python 基礎入門教學
為何要使用PyTorch
#面對如此多的深度學習框架,我們為何要選擇PyTorch 呢? Tensorflow 不是深度學習框架預設的老大嗎,為什麼不直接選擇Tensorflow 而是要選擇PyTorch 呢?以下分4個面向來介紹為何要使用PyTorch。
(1)掌握一個框架並不能一勞永逸,現在深度學習並沒有誰擁有絕對的壟斷地位,就算是Google 也沒有,所以只學習Tensorflow 並不夠。同時現在的研究者使用各個框架的都有,如果你要去看他們實現的程式碼,至少也需要了解他們所使用的框架,所以多學一個框架,以備不時之需。
(2)Tensorflow 與Caffe 都是命令式的程式語言,而且是靜態的,首先必須建構一個神經網絡,然後一次又一次使用同樣的結構,如果想要改變網絡的結構,就必須從頭開始。但對於PyTorch,透過一種反向自動求導的技術,可以讓你零延遲地任意改變神經網路的行為,儘管這項技術不是PyTorch 獨有,但目前為止它實現是最快的,能夠為你任何瘋狂想法的實現獲得最高的速度和最佳的靈活性,這也是PyTorch 對比Tensorflow 最大的優勢。
(3)PyTorch 的設計思路是線性、直觀且易於使用的,當你執行一行程式碼時,它會忠實地執行,並沒有異步的世界觀,所以當你的程式碼出現Bug 的時候,可以透過這些資訊輕鬆快速地找到出錯的程式碼,不會讓你在Debug 的時候因為錯誤的指向或非同步和不透明的引擎浪費太多的時間。
(4)PyTorch 的程式碼相對於Tensorflow 而言,更簡潔直觀,同時對於Tensorflow高度工業化的很難看懂的底層程式碼,PyTorch 的原始碼就要友善得多,更容易看懂。深入API,理解PyTorch 底層肯定是一件令人高興的事。一個底層架構能夠看懂的框架,你對其的理解會更深。
相關文章推薦:
1.詳解PyTorch批次訓練及最佳化器比較
2.pytorch visdom 處理簡單分類問題
3.PyTorch上搭建簡單神經網路實作迴歸和分類的範例
相關影片推薦:
1.小甲魚零基礎入門學習Python影片教學
最後,我們簡單總結PyTorch 的特點:
#支援GPU;
動態神經網路;
Python 優先;
命令式體驗;
輕鬆擴充。
擁有著如此多優點的.PyTorch 也有著它的缺點,因為這款框架比較新,所以使用的人也就比較少,這也就使得它的社區沒有那麼強大,但是PyTorch 提供了一個官方的論壇,大多數碰到的問題都可以去裡面搜索,裡面的答案一般都是由作者或者其他PyTorch 用戶提供的,論壇的更新也特別頻繁,同時也可以去Github 上面提Issue,一般很快就會得到開發者的回應,也算是一定程度上解決了社區的問題。
以上是python torch是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!