Python開發環境的安裝與配置;
使用PyCharm進行程序的開發與調試;
今天,我們再來介紹如何在PyCharm中配置深度學習環境,并在後續章節中通過實例來演示深度學習在圖像處理方面的應用。雖然Python平台下有許多深度學習框架,如TensorFlow、Keras、Theano以及Mxnet等,不過老碼農還是喜歡使用PyTorch,本文就以PyTorch為例進行配置。
PyTorch簡介PyTorch的前身是Torch,使用Lua語言開發,Torch是一個基于BSD License的開源科學計算框架,最初版本于2002年發布,廣泛應用于機器學習領域,受益于Lua語言的特性,它即簡單易用又高效,為了提高性能,底層使用C/CUDA實現。其的核心特性如下:
- 功能強大的N維數組,也稱之為張量;
- 為數組索引、切片、轉置等操作提供了多種方法;
- 通過LuaJIT提供了一個非常好的C語言接口;
- 線性代數支持程序;
- 神經網絡與基于能量的模型;
- 數學優化程序;
- 快速高效的GPU支持;
- 可嵌入IOS和Android後台。
PyTorch的前身Torch
PyTorch複用了Torch的底層框架,使用Python重新改寫了很多功能,使得PyTorch更加靈活。它最初于2017年1月,由Facebook FAIR(臉書人工智能研究院)推出,現在的最新版本已經升級到1.5,除了提供Python接口外,它還提供C 接口,使用戶可以通過更高效的C 語言來調用訓練好的PyTorch模型。目前PyTorch即可以運行于支持CUDA的GPU,也可以直接在CPU運行(當然,速度會慢很多)。
PyTorch的設計追求最少的封裝,它的設計遵循張量->自動求導->模型三個由低到高的抽象層次,這三層之間緊密聯系,這種簡潔的設計使得該庫易于學習和使用。PyTorch的源碼隻有TensorFlow的十分之一左右,但是PyTorch的簡潔不以速度為代價,在許多評測中,同樣的算法,PyTorch的速度表現都勝過了其它框架。個人認為,PyTorch框架是衆多機器學習框架中設計最優雅的一個。
Cuda簡介與安裝CUDA(Compute Unified Device Architecture)是著名顯卡廠商英偉達推出的一套并行計算架構,該架構充分利用GPU的并行特性,能夠高效的解決許多複雜的計算問題,開發人員可以使用C/C ,FORTRAN等多種語言編寫CUDA程序,目前CUDA已經被廣泛的用于處理計算量巨大的複雜問題,特别是以神經網絡為基礎的深度學習領域。
支持并行計算的CUDA
在安裝CUDA之前确保系統已經安裝支持CUDA開發的GPU及其驅動,在Windows下可以通過設備管理器查看當前系統安裝的GPU型号,然後可以根據型号查看該GPU對CUDA的支持情況,如下圖:
通過設備管理器查看顯卡類型
在确認支持CUDA後,可以搜索也可以直接輸入網址打開CUDA工具包頁面,這裡有相關工具的介紹,見下圖:
CUDA開發包
點擊CUDA Toolkit下面的下載按鈕進入下載頁面,根據自己的軟硬件平台選擇合适的選項,如下圖:
選擇CUDA版本
默認情況下會下載最新的10.2版本,如果想下載其它版本可選擇Legacy Releses按鈕進入曆史版本頁面,如下圖:
CUDA曆史版本
選擇需要的版本,将進入與最新版本類似的下載選項頁面,下載完成後,打開安裝包,根據根據提示完成安裝即可。
PyTorch安裝PyTorch中有大量的numpy數組操作,所以在安裝PyTorch之前需要先安裝numpy,此外在實際應用中根據數據分析的需要,一般還會安裝如scipy、pandas、matplotlib等庫,在本示例中我們就一并安裝。打開windows命令行窗口(linux是終端,命令略有差别),輸入命令如下圖:
安裝Numpy等庫
因為numpy已經安裝,所以直接跳過。Scipy庫因為沒有安裝需要下載,老碼農百兆寬帶,下載速度卻隻能可憐以kb計,關鍵是有時候還會出錯,為了解決這個問題,在網上找到了國内的鏡像服務器,輸入命令如下圖:
使用高内鏡像下載
這次速度快了很多,一會兒就下載完成并安裝成功,見下圖:
依賴庫安裝成功
依賴庫安裝成功,準備工作就緒,正式開始PyTorch安裝,打開PyTorch官網,如下圖:
PyTorch官網安裝頁面
選擇1.5穩定版,喜歡嘗鮮的小夥伴也可以選擇預覽版(不穩定,存在潛在問題),選擇系統、安裝方式、編程語言、CUDA版本後,會在最下方給出運行命令,正常情況下隻需要将該命令複制并在終端窗口執行即可完成安裝。
不幸的是,上面官方給出的安裝方式,對于國内的廣大用戶來說,存在下載速度太慢,甚至無法安裝的問題,老碼農在不同地方嘗試都會出現下面問題(翻牆是一種解決辦法),見下圖:
直接使用官方安裝方式會出錯
針對這一問題,老碼農找到了一個有效的解決辦法,打開上面命令最後的網址,會看到如下圖内容:
PyTorch安裝文件列表
這裡顯示的是所有可用版本的輪子文件列表,在這裡選擇自己需要的版本,然後通過右鍵複制鍊接,再通過一些下載工具來下載,比如老碼農使用迅雷來下載,很快就能完成。在這裡需要注意的是,除了要下載PyTorch的輪子文件外,如果是做圖像處理方面的應用,需要一并下載TorchVision的輪子文件,安裝方式與PyTorch安裝類似。
關于文件命名做個簡要說明,見下圖:
文件命名規則
文件名主要包含四個關鍵信息,依次是CUDA版本、PyTorch版本、Python版本和系統架構,TorchVision的命名與此類似。
下載完成後,直接通過輪子文件安裝,會非常高效,安裝完成後會得到如下結果:
PyTorch安裝成功
CPU版PyTorch安裝與GPU版類似,不同的是CPU版不需要GPU支持,所以在沒有GPU顯卡的系統也可以運行,也不需要安裝CUDA開發包,此外在選擇CUDA版本的時候選擇None即可,見下圖:
CPU版PyTorch安裝選項
在安裝完成之後,測試一下PyTorch是否能正常工作,在命令行窗口依次輸入如下圖的命令:
測試PyTorch是否安裝成功
如果能看到類似上面的輸出結果(這裡生成的是一個随機的4x5張量,所以每個人的輸出結果會各不相同),那麼恭喜你,PyTorch已經安裝完畢,可以開始深度學習相關的開發了。
在PyCharm中使用PyTorch打開PyCharm,輸入類似上面的測試代碼,并運行程序,如果運行成功,那麼恭喜你。不過有些小夥伴可能會出現如下錯誤:
PyCharm中出現錯誤
其實這個錯誤的原因很簡單,雖然我們已經安裝了PyTorch庫,但是PyCharm并不知道,所以需要在PyCharm中導入這些内容,可以通過菜單File->Setting->Project->Project Interpreter設置,見下圖:
解釋器設置
點擊紅框中的 号,會出現下面的包管理頁面:
包管理器
左側是可用的有效包列表,因為此處列出的包過多,可以通過紅框1出輸入包名搜索,選中需要的包後,右側會出現描述信息,同時可以在紅框2處指定想要安裝的版本号和特殊選項。最後點擊紅框3出的按鈕安裝包即可。
再次測試,出現如下結果:
PyCharm中測試成功
至此,我們已經可以在PyCharm中使用PyTorch進行深度學習相關的開發。雖然PyTorch是一個優秀的開發框架,但是要想靈活高效的使用它,還需要不斷的學習和實踐。
後記在下一篇文章中,老碼農準備通過一個實例程序來演示使用PyTorch進行圖像處理方面的深度學習應用開發,敬請期待。
,