目錄
在剛入門機器學習時,我們經常會糾結使用哪種開發工具,我將我周圍的同學分成三類:Pycharm用戶,Anaconda用戶與Pycharm+Anaconda用戶,那麼這幾種各有什麼優缺點呢,我將以我在深度學習這的使用體驗爲例分別介紹。
環境搭建與管理
深度學習的起步便是環境的搭建與管理,我們首先明確幾個概念,下圖中的VirtualEnv(虛擬環境),CondaEnv(Conda的環境),以及SystemInterpreter(系統環境)的區別。純屬本人理解,有誤請指正。
- 虛擬環境:不想使用系統環境,而新建一個虛擬的環境。我們可以新建多個虛擬環境,每個環境中安裝不同的包,從而達到不同項目使用不同環境而不互相沖突的效果。
- CondaEnv:方便Pycharm直接調用Anaconda裏創建的環境,這個的使用一會解釋。
- System Interpreter:使用系統解釋器,就是使用本地的環境,當初安裝python的時候用pip裝了一些包就會在這裏。
在環境配置這一方面,Anaconda擁有一套強大的環境管理系統,在安裝深度學習環境時尤其方便,我們可以使用命令行快速創建多個虛擬環境,並且一行命令配置tensorflow、pytorch等環境,conda會自動檢測我們GPU的型號並配置相應的cuda/cudnn等,並且在安裝Anaconda的同時已自帶安裝了許多工具包。而Pycharm大部分工具包需要我們手動安裝,版本需要自己選擇。
使用感受
PyCharm: 在編程、調試以及項目管理的手感上,PyCharm具有傳統JetBrains的強大功能(個人用着是最順手的),在我使用的過程中沒有什麼顯著缺點。
Anaconda: Anaconda是計算機工程師們爲了計算機科學而自己製作的軟件,裏面自帶許多實用工具,我們常用的有Spyder, Jupyter Notebook和JupyterLab。
- Spyder的優點在於可以方便地觀察數據的值。
- JupyterNotebook是基於網頁的,更輕量級並且可以分段執行代碼,顯示執行結果,無需每次從頭執行整個文件。
- JupyterLab 則是JupyterNotebook的下一代產品,在Notebook的基礎上集成了更多的功能,包括許多自由擴展插件,如果使用Anaconda的話比較推薦這個。
Pycharm+Anaconda
許多人將Pycharm+Anaconda一起使用,原因就是1)既充分利用conda配置管理環境的便捷,2)又可以在熟悉的Jetbrains工具下進行編程,使用其強大的功能。包括學校的許多服務器上就是如此配置的。
方式也很簡單,首先使用conda創建環境,安裝好自己需要的包後打開Pycharm,在環境配置中就有使用Conda環境的選項:
我們在Existing environment中選擇已經配置好的環境就可以了。