很火的深度学习框架PyTorch怎么用?手把手带你安装配置
導讀:本文主要介紹PyTorch的一些基礎且常用的概念和模塊,以及:
為何選擇PyTorch。
PyTorch環境的安裝與配置。
作者:吳茂貴 郁明敏 楊本法 李濤 張粵磊
來源:大數據DT(ID:bigdatadt)
PyTorch是Facebook團隊于2017年1月發布的一個深度學習框架,雖然晚于TensorFlow、Keras等框架,但自發布之日起,其關注度就在不斷上升,目前在GitHub上的熱度已超過Theano、Caffe、MXNet等框架。
PyTorch 1.0版本推出后,增加了許多新的功能,對原有內容進行了優化,并整合了Caffe2,使用更方便,大大增強了生產性,所以其熱度也迅速上升。
PyTorch采用Python語言接口來實現編程,非常容易上手。它就像帶GPU的Numpy,與Python一樣都屬于動態框架。
PyTorch繼承了Torch靈活、動態的編程環境和用戶友好的界面,支持以快速和靈活的方式構建動態神經網絡,還允許在訓練過程中快速更改代碼而不妨礙其性能,支持動態圖形等尖端AI模型的能力,是快速實驗的理想選擇。
01 為何選擇PyTorch?
PyTorch是一個建立在Torch庫之上的Python包,旨在加速深度學習應用。它提供一種類似Numpy的抽象方法來表征張量(或多維數組),可以利用GPU來加速訓練。由于 PyTorch 采用了動態計算圖(Dynamic Computational Graph)結構,且基于tape的Autograd系統的深度神經網絡。
其他很多框架,比如TensorFlow(TensorFlow2.0也加入了動態網絡的支持)、Caffe、CNTK、Theano等,采用靜態計算圖。
使用PyTorch,通過一種稱為Reverse-mode auto-differentiation(反向模式自動微分)的技術,可以零延遲或零成本地任意改變你的網絡的行為。
Torch是PyTorch中的一個重要包,它包含了多維張量的數據結構以及基于其上的多種數學操作。
自2015年谷歌開源TensorFlow以來,深度學習框架之爭越來越激烈,全球多個看重AI研究與應用的科技巨頭均在加大這方面的投入。PyTorch從2017年年初發布以來,可謂是異軍突起,短時間內取得了一系列成果,成為明星框架。
最近PyTorch進行了一些較大的版本更新,0.4版本把Varable與Tensor進行了合并,并增加了對Windows的支持。1.0版本增加了即時編譯(Justintimecompilation,JIT,彌補了研究與生產的部署的差距)、更快的分布式、C++擴展等。
目前,PyTorch 1.0 穩定版已發布,該版本從Caffe2和ONNX移植了模塊化和產品導向的功能,并將這些功能和PyTorch已有的靈活、專注研究的特性相結合。PyTorch 1.0中的技術已經讓很多Facebook的產品和服務變得更強大,包括每天執行60億次的文本翻譯。
PyTorch由4個主要的包組成:
-
torch:類似于Numpy的通用數組庫,可將張量類型轉換為torch.cuda.TensorFloat,并在GPU上進行計算。
-
torch.autograd:用于構建計算圖形并自動獲取梯度的包。
-
torch.nn:具有共享層和損失函數的神經網絡庫。
-
torch.optim:具有通用優化算法(如SGD、Adam等)的優化包。
02 安裝配置
安裝PyTorch時,請核查當前環境是否有GPU,如果沒有,則安裝CPU版;如果有,則安裝GPU版本的。
1. 安裝CPU版PyTorch
安裝CPU版的PyTorch比較簡單,由于PyTorch是基于Python開發,所以如果沒有安裝Python需要先安裝,然后再安裝PyTorch。具體步驟如下:
1)下載Python:安裝Python建議采用Anaconda方式安裝,先從Anaconda的官網(https://www.anaconda.com/distribution),下載Anaconda3的最新版本,如圖2-1所示,如Anaconda3-5.0.1-Linux-x86_64.sh,建議使用3系列,3系列代表未來發展。另外,根據下載時自己的環境,選擇操作系統等。
▲圖2-1 下載Anaconda界面
2)在命令行執行如下命令,開始安裝Python:
Anaconda3-2019.03-Linux-x86_64.sh3)接下來根據安裝提示,直接按回車即可。其間會提示選擇安裝路徑,如果沒有特殊要求,可以按回車使用默認路徑(~/ anaconda3),然后就開始安裝。
4)安裝完成后,程序會提示是否把Anaconda3的binary路徑加入當前用戶的.bashrc配置文件中,建議添加。添加以后,就可以使用Python、IPython命令時自動使用Anaconda3的Python環境。
5)安裝PyTorch:
登錄PyTorch官網(PyTorch.org),登錄后,可看到圖2-2所示界面,然后選擇對應項。
▲圖2-2 PyTorch安裝界面
把第⑥項內容復制到命令行,執行即可進行安裝。
conda?install?PyTorch-cpu?torchvision-cpu?-c?PyTorch6)驗證安裝是否成功:
啟動Python,然后執行如下命令,如果沒有報錯,說明安裝成功!
2. 安裝GPU版PyTorch
安裝GPU版本的PyTorch稍微復雜一點,除需要安裝Python、PyTorch外,還需要安裝GPU的驅動(如英偉達的NVIDIA)及CUDA、cuDNN計算框架,主要步驟如下:
1)安裝NVIDIA驅動。
下載地址:
https://www.nvidia.cn/Download/index.aspx?lang=cn
登錄可以看到界面如圖2-3所示。
▲圖2-3 NVIDIA的下載界面
選擇產品類型、操作系統等,然后點擊“搜索”按鈕,進入下載界面。
安裝完成后,在命令行輸入“nvidia-smi”,用來顯示GPU卡的基本信息,如果出現圖2-4所示界面,則說明安裝成功。如果報錯,則說明安裝失敗,請搜索其他安裝驅動的方法。
▲圖2-4 顯示GPU卡的基本信息
2)安裝CUDA。
CUDA(Compute Unified Device Architecture),是英偉達公司推出的一種基于新的并行編程模型和指令集架構的通用計算架構,它能利用英偉達GPU的并行計算引擎,比CPU更高效地解決許多復雜計算任務。安裝CUDA Driver時,其版本需與NVIDIA GPU Driver的版本一致,這樣CUDA才能找到顯卡。
3)安裝cuDNN。
NVIDIA cuDNN是用于深度神經網絡的GPU加速庫。注冊NVIDIA并下載cuDNN包,獲取地址為
https://developer.nvidia.com/rdp/cudnn-archive
4)安裝Python及PyTorch。
這步與本書2.2.1節安裝CPU版PyTorch相同,只是選擇CUDA時,不是None,而是對應CUDA的版本號,如圖2-5所示。
▲圖2-5 安裝GPU版PyTorch
5)驗證。
驗證PyTorch安裝是否成功與本書2.2.1節一樣,如果想進一步驗證PyTorch是否在使用GPU,可以運行下面這一段測試GPU的程序test_gpu.py,如果成功的話,可以看到如圖2-6的效果。
#cat?test_gpu.py import?torchif?__name__?==?'__main__':#測試?CUDAprint("Support?CUDA??:?",?torch.cuda.is_available())x?=?torch.tensor([10.0])x?=?x.cuda()print(x)y?=?torch.randn(2,?3)y?=?y.cuda()print(y)z?=?x?+?yprint(z)#?測試?CUDNNfrom?torch.backends?import?cudnnprint("Support?cudnn??:?",cudnn.is_acceptable(x))在命令行運行以下腳本:
python?test_gpu.py如果可以看到如圖2-6或圖2-7所示的結果,則說明GPU版PyTorch安裝成功!
▲圖2-6 運行test_gpu.py的結果
在命令行運行:nvidia-smi,可以看到如圖2-7所示的界面。
▲圖2-7 含GPU進程的顯卡信息
03 Jupyter Notebook環境配置
Jupyter Notebook是目前Python比較流行的開發、調試環境,此前被稱為IPython notebook。它以網頁的形式打開,可以在網頁頁面中直接編寫和運行代碼,代碼的運行結果(包括圖形)也會直接顯示,如在編程過程中添加注釋、目錄、圖像或公式等內容。Jupyter Notebook有以下特點:
-
編程時具有語法高亮、縮進、Tab補全的功能。
-
可直接通過瀏覽器運行代碼,同時在代碼塊下方展示運行結果。
-
以富媒體格式展示計算結果。富媒體格式包括:HTML、LaTeX、PNG、SVG等。
-
對代碼編寫說明文檔或語句時,支持Markdown語法。
-
支持使用LaTeX編寫數學性說明。
接下來介紹配置Jupyter Notebook的主要步驟。
1)生成配置文件。
jupyter?notebook?--generate-config執行上述代碼,將在當前用戶目錄下生成文件:.jupyter/jupyter_notebook_config.py
2)生成當前用戶登錄Jupyter密碼。
打開Ipython,創建一個密文密碼。
In [1]:?
from?notebook.auth?import?passwdIn [2]:?
passwd() Enter?password:? Verify?password:?3)修改配置文件。
vim?~/.jupyter/jupyter_notebook_config.py進行如下修改:
c.NotebookApp.ip='*'?#?就是設置所有ip皆可訪問 c.NotebookApp.password?=?u'sha:ce...剛才復制的那個密文' c.NotebookApp.open_browser?=?False?#?禁止自動打開瀏覽器 c.NotebookApp.port?=8888?#這是缺省端口,也可指定其他端口4)啟動Jupyter Notebook。
#后臺啟動jupyter:不記日志: nohup?jupyter?notebook?>/dev/null?2>&1?&在瀏覽器上,輸入IP:port,即可看到與圖2-8類似的界面。
▲圖2-8 Jupyter Notebook網頁界面
接下來就可以在瀏覽器進行開發調試PyTorch、Python等任務了。
關于作者:吳茂貴,資深大數據和人工智能技術專家,就職于中國外匯交易中心,在BI、數據挖掘與分析、數據倉庫、機器學習等領域工作超過20年。在基于Spark、TensorFlow、PyTorch、Keras等的機器學習和深度學習方面有大量的工程實踐實踐。
郁明敏,資深商業分析師,從事互聯網金融算法研究工作,專注于大數據、機器學習以及數據可視化的相關領域,擅長 Python、Hadoop、Spark 等技術,擁有豐富的實戰經驗。
楊本法,高級算法工程師,在流程優化、數據分析、數據挖掘等領域有10余年實戰經驗,熟悉Hadoop和Spark技術棧。有大量工程實踐經驗。
李濤,資深AI技術工程師,對PyTorch、Caffe、TensorFlow等深度學習框架以及計算機視覺技術有深刻的理解和豐富的實踐經驗。
張粵磊,資深大數據技術專家,飛谷云創始人,有10余年一線數據數據挖掘與分析實戰經驗。先后在咨詢、金融、互聯網行業擔任大數據平臺的技術負責人或架構師。
本文摘編自《Python深度學習:基于PyTorch》,經出版方授權發布。
延伸閱讀《Python深度學習:基于PyTorch》
點擊上圖了解及購買
轉載請聯系微信:DoctorData
推薦語:本書是多位人工智能技術專家和大數據技術專家多年工作經驗的結晶,從工具使用、技術原理、算法設計、案例實現等多個維度對深度學習進行了系統的講解。內容選擇上,廣泛涉獵、重點突出、注重實戰;內容安排上,實例切入、由淺入深、循序漸進;表達形式上,深度抽象、化繁為簡、用圖說話。
「大數據」內容合伙人之「鑒書小分隊」上線啦!
最近,你都在讀什么書?有哪些心得體會想要跟大家分享?
數據叔最近搞了個大事——聯合優質圖書出版商機械工業出版社華章公司發起鑒書活動。
簡單說就是:你可以免費讀新書,你可以免費讀新書的同時,順手碼一篇讀書筆記就行。詳情請在大數據公眾號后臺對話框回復合伙人查看。
有話要說????
Q:?你的PyTorch設置好了嗎?
歡迎留言與大家分享
猜你想看????
-
天貓雙11、12306怎樣扛住流量高峰“集中轟炸”?一文全揭秘!
-
87萬人已開通5G套餐!8本書,給你劇透未來科技
-
PaaS、DevOps、OpenShift與業務中臺的實現
-
最后一個韓國人將在公元2750年死亡?人口學家:沒希望了
更多精彩????
在公眾號對話框輸入以下關鍵詞
查看更多優質內容!
PPT?|?報告?|?讀書?|?書單?|?干貨?
大數據?|?揭秘?|?Python?|?可視化
AI?|?人工智能?|?5G?|?中臺
機器學習?|?深度學習?|?神經網絡
合伙人?|?1024?|?段子?|?數學
?
覺得不錯,請把這篇文章分享給你的朋友
轉載 / 投稿請聯系:baiyu@hzbook.com
更多精彩,請在后臺點擊“歷史文章”查看
?
總結
以上是生活随笔為你收集整理的很火的深度学习框架PyTorch怎么用?手把手带你安装配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TIOBE 9 月编程语言:C++ 突起
- 下一篇: 为什么Flink会成为下一代大数据处理框