机器学习从理论到工程的第二步-开发环境与工具篇(下)
好啦~繼續昨天的《第二步——開發環境與工具篇(上)》~
?
其實有點尷尬啦,本來想一篇講完的,結果小夕太啰嗦了,還沒有開始講正文,就寫了快2000字了。。。所以說,這一篇是上一篇的正文。。。
?
matlab就不用說了,matlab程序本身就集成了所有你需要的東西了~順便提一下,沒有條件使用特殊免收費版matlab的時候,octave甚至一些在線octave網站都是可以接手matlab的~
?
C、C++、Java也不用多說了,C/C++就用VS、Xcode、Qt等IDE吧,同樣,Java也是就用intellij idea或者eclipse等IDE吧(小夕覺得前者更好用)。
?
下面重點說python,也是我們做機器學習完整項目時的主力語言。
?文本/代碼編輯器(上):
Python的代碼編輯器與解釋器,小夕強烈推薦Jupyter Notebook(前身是Ipython,以下簡稱JN)。
?
官網:http://jupyter.org/
?
JN不僅可以讓你碼代碼,而且可以讓你優雅的碼出優雅的代碼~直接上個臨時亂寫的演示截圖(忽略代碼里大量語法錯誤啦~)
?
?
它是由很多單元格組成,每個單元格你可以設置成文本格,也可以設置成代碼格。對于文本格,可以讓你用markdown排版文字,用latex寫數學公式,如上圖第1、3、5個格子~比如第5個格子,運行一下,markdown和latex源碼就被轉化成了漂亮的排版和公式:
?
?
而我們在JN中寫完函數,下面就可以緊跟著做一下單元測試(當然僅對于方便做這個的函數)。比如上面的,我們定義了優化函數,下面就可以緊跟著寫個單元測試的代碼。這樣做是因為每個單元格都是可以獨立運行的啦,得益于它內嵌的解釋器~
?
比如我們運行一下第二個單元格。
?
?
可以看到這個單元格里的代碼就運行了~
?
當代碼完成之后,可以進一步進行整體調試的時候,就可以把它導出為python代碼啦:
?
?
所以JN尤其適合去寫機器學習,或者說科學計算相關的項目代碼。在完成一個很復雜的數學過程的函數前,你完全可以用一個文本單元格來詳細的描述這個函數的功能和實現細節,然后再優雅的實現這個函數。是不是炒雞棒呢~
?
這里小夕只是給大家稍微介紹一下,它的功能和特色遠比小夕說的多得多,官網的詳細的教程鏈接貼在這里了~
?
https://jupyter-notebook.readthedocs.io/en/latest/index.html
英語基礎比較慘的同學可以試試用chrome翻譯成中文,或者直接找中文博客啦。
?文本/代碼編輯器(下):
JN適合優雅的寫代碼,但是不適合重量級的代碼閱讀或者數據集預覽。這時候就需要一款傳統的高性能代碼編輯器啦。小夕在此力推Sublime Text 3。
?
比如你的數據集是一個700多M的純文本,里面有幾十萬的樣本,比如下面:
?
?
然后你想看一下這個數據集里面是什么樣子的,什么想進去匹配一些關鍵字看看有沒有。那怎么辦呢?為此去敲代碼也太麻煩啦~而大部分的編輯器開這么大的文件的時候往往卡半天甚至直接崩潰。而用sublime的話:
?
?
打開過程非常優雅啊有沒有~而且絲毫不卡,不會影響你其他的工作。
?
?
就這么優雅的打開了~進行查找替換等操作也是相對來說很優雅的啦。
?
這種高性能文本編輯器,也可以通過安裝插件打造成一個輕量級IDE,不過小夕不建議初學者嘗試啦。如下,project管理,代碼編譯、運行、檢查等功能一應俱全,當然是因為安裝了一堆插件的原因。
?
?
哦對了,剛下載好的Sublime的界面跟小夕的不一樣的,小夕DIY了部分皮膚,2333,相關的DIY教程網上也有很多,但是小夕不建議初學者弄的太復雜,僅僅把它作為一個性能重量級,使用輕量級的文本/代碼的編輯器/閱讀器就可以啦。
IDE:
代碼完成了~需要整體調試、打包的時候怎么辦呢?當然就需要一個正式的IDE啦~當然主要用的是它的調試器和項目管理的功能。
?
從小夕的使用體驗來看,Pycharm給小夕的感覺最棒。而且也有免費版,功能足夠了。
?
?
快捷鍵、皮膚什么的都可以方便的DIY,而且可以白天、夜間快速切換主題~
?
如圖,白天么么噠~
?
?
晚上。。。
?
?
項目管理、運行與調試等基本技能小夕就不講了,下面小夕只講一下如何將其與我們的環境管理軟件協同工作。
開發環境管理:
?不僅代碼編輯器沒有使用pycharm(當然啦,調試代碼的時候當然使用pycharm內置的編輯器更方便),而且開發環境管理也沒有使用pycharm的,當然是因為有更好用的~
?
那就是Anaconda。
?
相信很多人都聽說過anaconda了。使用它可以很方便的管理開發環境(不理解開發環境概念的同學務必先返回上一篇理解一下)。
?
安裝好anaconda后,在命令行里一句
?
?
就可以創建一個名為“myenv”的開發環境(虛擬機)。(注意!不同操作系統下的命令可能不一樣!以官方文檔為準。)
?
要管理這個虛擬機里的資源,就進入(激活)這個虛擬機,也是一句:
?
?
就可以進入這個虛擬機里。然后通過“conda list”查看當前虛擬機里的資源(已安裝的庫及其版本),使用“conda install”安裝新的庫,使用“conda uninstall”卸載已安裝的庫,而且與python自帶的安裝器“pip”完美融合,管理開發環境炒雞方便有沒有。
?
那在anaconda把開發環境管理好了,如何在pycharm中使用anaconda管理的開發環境呢?
?
只需要在創建新項目的時候,解釋器選擇虛擬機里的python解釋器就可以啦:
?
(當然,也可以在這里點擊“Create Conda Env”直接新建一個Anaconda環境,都是相通的)
虛擬機一般是在anaconda的安裝目錄下的env文件夾下,如圖,小夕這里有4個開發環境:
?
?
確定好要用哪個開發環境后,就進去選擇bin文件夾里的python:
?
?
就ok啦~
?
然后在項目開發過程中,使用anaconda添加了新的庫的時候,就可以pycharm的File標簽下同步一下,就ok了~
?
總結一下,小夕推薦的python利器有:
1、jupyter notebook:優雅的寫代碼與單元測試的代碼編輯器。
2、sublime text 3:高性能的文本/代碼編輯/閱讀器。
3、pycharm:方便項目管理與調試的IDE。
4、anaconda:開發環境管理的利器。
?
這些神器的使用教程小夕就不寫了,還是首推官網的教程,無法接受英語的同學可以尋找中文優秀博客甚至視頻教程。這是小夕御用的開發神器哦(逃\(//?//)\
對了,如果大家有私藏的神器,歡迎發到評論區共享哦( ̄? ̄)
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的机器学习从理论到工程的第二步-开发环境与工具篇(下)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里P7架构师要求:Web核心+开源框架
- 下一篇: 磁盘I/O那些事