全文共5029字,預計學習時長10分鐘
想用機器學習的方法了解放射學嗎?這可不是件容易的事情。
深度學習,TensorFlow,Scikit-Learn,Keras,Pandas,Python還有Anaconda,這麼多的新術語讓人頭暈眼花。在正式學習開始前,需要先掌握這些讓人目不暇接又相對基礎的信息。
大量的網絡資源還有書籍資源可以幫助我們更好地入手。不過,在開始學習各類優秀教程之前,最好對整個生態有所了解。
如果給我6小時砍樹,我會先花4小時磨利斧頭。亞伯拉罕·林肯
首先……
機器學習中最常用的開發語言是Python。許多機器學習的初學者都是從Python入門的,因此Python一定不能錯過。
本篇文章並不旨在教授Python的相關知識,而是演示開發人員如何在龐大的機器學習工具鏈中起步的。
所以,第一件事應該是下載Python以及其他用於機器學習的必要的Python工具。
Hello, Unix
需使用命令行界面來安裝管理Python工具。
Bash不是越多越好
Linux或Mac使用終端。可以在Finder>應用程式>實用程序>終端這個路徑中找到該程序。
Windows則使用命令提示符。單擊Windows圖標> Windows系統>命令提示符,或單擊Windows圖標並鍵入 cmd 。
光標的前面會看到一個文本字符串,上面寫著
machinename:directoryusername$
用戶在「$」後輸入。
以下是一些常見命令:
列出當前目錄中的文件:ls
顯示隱藏文件:ls -a
進入用戶主目錄:cd<directory_path>
轉回子目錄:cd~ 或直接輸入cd
返回上級目錄:cd ..
轉到你所在的最後一個文件夾:cd-
顯示當前工作目錄:pwd
使用上箭頭鍵可以重新輸入上一個指令。再按一次這個鍵則可以返回之前的命令。
清除窗口:clear
在文本編輯器中打開文件,如:atom <filename>
終止應用程式(如ping),按 Ctrl+C
Python
Python是一種解釋性語言,在運行程序時逐行讀取代碼,不像編譯性語言在程序執行前需要將原始碼編譯成機器碼。
目前Python有兩個不同的版本——Python2.7和Python3。Python2.7將於2020年暫停服務,而未來的Python3.x並不一定兼容。所以要不考慮一下以前的舊版本?很遺憾有些框架只支持Python2.7,無論是入門書籍還是網上的入門資源很多都是在這個版本上編寫的。那該如何解決這個問題呢?
幸運的是,電腦可以同時運行兩個版本,並在硬碟上不同的文件夾中運行不同的虛擬環境。通過這樣的方式,一方面我們可以在其他文件夾中專門運行Python2.7完成相應的任務,另一方面可以使用Python3.7完成大部分機器學習的任務。
Virtualenv,Python Environment Wrapper (pew),venv以及 pyvenv是管理不同Python虛擬環境的工具。其中最簡單的是Conda,使用Anaconda時,它與Python一起安裝。
Anaconda
Anaconda是一個開源平臺,可能是在Linux,Mac OS X和Windows上使用Python進行機器學習的最簡單方法。它可以幫助管理編程環境,它還包含數據科學中常用的Python包。
在系統上安裝完適用的Python版本後,接下來需要設置環境。
Conda
Conda是Anaconda使用的Python包管理器和環境管理系統。用戶可以通過Conda下載安裝大部分需要的軟體包,但它並不是萬能的。剩餘無法安裝的那部分可以通過命令行pip來完成,後文將詳細介紹。
如果要查看當前環境的軟體包,請鍵入:
conda list env
如果想查看當前Conda的版本,請鍵入:
conda -version
(如果版本低於4.1.0,請輸入conda update conda以更新Conda)
在Anaconda Navigator中,還可以從左邊菜單欄選擇Environments,然後按Create按鈕來創建環境。
用Anaconda Navigator創造名為「new_env」的新環境
還可以通過命令行來創造環境。下面例子使用了Python2.7創造了一個名為「py27」的新環境:
conda create -n py27python=2.7
如要激活環境,請鍵入:
conda activate<your_env_name>
如要停用當前環境,請鍵入:
conda deactivate
如要移除此環境,請鍵入:
conda remove -name<your_env_name> -all
如要列出所有的conda環境,請鍵入:
conda info --envs
如要查看當前環境的包,請鍵入:
conda list env
如果要查看當前運行Conda的版本,請鍵入:
conda -version
(如果版本低於4.1.0,請輸入conda update conda以更新Conda)
使用pip可以安裝兩個重要的機器學習包TensorFlow和Keras。用戶也可以安裝TuriCreate作為蘋果系統上的機器學習框架。
科學棧
以下的Python包為科學棧,可用於多個學科,包括有:
NumPy:用於高效處理數組和矩陣的庫
SciPy:處理數學和科學問題的工具包
matplatlib:Python中的標準2D繪圖庫
pandas:含有矩陣式數據結構,標記索引,時間函數等功能的庫
Scikit-learn:機器學習算法庫
Jupyter:在基於網絡的筆記本中運行的交互Python shell
Seaborn:用於統計數據可視化
Bokeh:用於交互數據可視化
PyTables:HDF5庫的Python包裝器
用戶可以使用Anaconda安裝以上包及相應的依賴項,同時也可以在新創的環境中搜索需要的包。
然後,通過選中複選框並單擊「apply」,從列表中選擇它們需要的包。
接下來就是像前文描述的那樣,運行pip指令安裝TensorFlow和Keras。(如要使用蘋果系統的CoreML,還可以安裝Turi Create)
pip
pip是通用的python包管理器。
pip install — upgradepip
使用pip安裝某個包,可以輸入以下命令:
pip install<package_name>
編輯Python文件
在Mac上的終端或Windows中的控制臺上可以與python進行交互。如果要寫代碼,大部分人會使用Atom或Sublime Text 等代碼編輯器。儘管目前已出現了各種各樣的編輯器,但大部分很快就湮滅在代碼編輯器的歷史長河中。
不少人喜歡的一款編輯器是Atom,這是由GitHub發布的免費編輯器。Atom還可以使用集成的終端窗口等功能擴展應用程式,這個功能賊6~
這個編輯器安裝完畢後,可以通過Settings/InstallPackages,然後搜索platformio-ide-terminal來添加這一功能。
運行Python文檔
在命令提示符($ or >)後輸入 python<filename.py>
如果要退出Python則輸入 exit()或直接按 Ctrl+D (如果是Windows系統則按Ctrl+Z )
要查看當前使用的python版本,請鍵入:python --version 或 python -V
要查看當前使用的Python安裝位置,請鍵入:which python
環境文件
環境文件是項目根目錄中的一個文件,它列出了所有包含的軟體包及其用於特定項目環境的版本號。因此用戶可以與他人分享項目,也允許在其他項目中重複使用這些軟體包。
創建文件請鍵入:
conda env export -fileenvironment.yaml
如需重創Conda環境及其包,請鍵入:
conda env create -n<conda-env> -f environment.yaml
在某些項目或教程中,作為包管理器的pip運行 requirements.txt,並沒有使用Conda的environment.yaml。
凍結環境可以完成以上動作:
pip freeze >requirements.txt
如要重組,請鍵入:
pip install -rrequirements.txt
Jupyter筆記本
Jupyter筆記本是一個基於網絡瀏覽器的開源應用。這個筆記本可以讓用戶在更方便自如的環境中運行Python代碼,並且能逐步查看效果。Jupyter筆記本可以在標記單元格中的代碼單元格之間添加文本和圖像,因此十分適用於教學。得益於其應用拓展性,還可以在筆記本上添加其他功能。也可以通過Anaconda Navigator安裝Jupyter筆記本:
使用Anaconda Navigator安裝Jupyter筆記本
在提示符下鍵入以下內容以在瀏覽器中創建新的Jupyter 筆記本:
jupyter notebook
用Python 3創建新的筆記本
如果要啟動某一特定筆記本,請鍵入:
jupyter notebook<notebook-name>
順便說一句,不建議同時在Jupyter筆記本上同時運行多個實例:
Jupyter
Jupyter筆記是個整理好幫手
要運行單元格,請單擊Jupyter工具欄中的「Run」按鈕或按Shift + Enter。如果要關閉筆記本,請直接關閉終端窗口或鍵入:
jupyter notebook stop
或是直接按Ctrl+C
終於要開始了!
2018年6月的期刊《數碼成像》,提供了很好的入門材料。(Hello World Deep Learning in Medical Imaging JDI(2018) 31: 283–289 Lakhani, Paras, Gray, Daniel L., Pett, Carl R., Nagy, Paul,Shih, George)
我們的工作並不只是創建一個分辨狗與貓的分類器,而是一個分辨胸部與腹部的x光分類器。AI之旅始於這裡!
留言 點讚 關注
我們一起分享AI學習與發展的乾貨
歡迎關注全平臺AI垂類自媒體 「讀芯術」