2.2 搭建圖像識別開發(fā)環(huán)境
2.2.1 Anacond
要想使用PyTorch,首先需要安裝Python。
Python可以在https://www.python.org上下載,當需要某個軟件包時可單獨進行下載并安裝。
Anaconda是一個用于科學計算的Python發(fā)行版,支持Linux、Mac、Windows系統(tǒng),能讓你在數(shù)據(jù)科學的工作中輕松安裝經(jīng)常使用的程序包。
2.2.2 conda
1.包的安裝和管理 conda對包的管理都是通過命令行來實現(xiàn)的(Windows用戶可以參考面向Windows的命令提示符教程),若想要安裝包,那么在終端中輸入conda install package_name即可。
例如,要安裝Numpy,輸入如下代碼:
conda install numpy
你可以同時安裝多個包。
類似conda install numpy scipy pandas的命令會同時安裝所有這些包。
你還可以通過添加版本號(例如,conda install numpy=1.10)來指定所需的包版本。 conda還會自動為你安裝依賴項。
例如,scipy依賴于Numpy,如果你只安裝scipy(conda install scipy),則conda還會安裝Numpy(如果尚未安裝的話)。
conda的命令:
要卸載包,conda remove package_name;
要更新包,conda update package_name;
更新環(huán)境中的所有包,conda update--all;
列出已安裝的包,conda list;
查找的包的確切名稱,conda search search_term進行搜索;
例如,我想安裝Beautiful Soup,但我不清楚包的具體名稱,可以嘗試執(zhí)行conda search beautifulsoup。
conda可以打破包管理與環(huán)境管理的約束,從而能夠更高效地安裝各種版本的Python以及各種pack age,并且切換起來也很方便。
2.環(huán)境管理
除了管理包之外,conda還是虛擬環(huán)境管理器。
環(huán)境能讓你分隔用于不同項目的包。在實際工作中常常需要使用依賴于某個庫的不同版本的代碼,例如,你的代碼可能使用了Numpy中的新功能,或者使用了已刪除的舊功能。
實際上,不可能同時安裝兩個Numpy版本。你要做的就是,為每個Numpy版本創(chuàng)建一個環(huán)境,然后在對應的環(huán)境中工作。
這里再補充一下,每一個 環(huán)境都是相互獨立、互不干預的。
不同的章節(jié)需要不同的運行環(huán)境,下面舉例說明: #創(chuàng)建第2~7章代碼運行的環(huán)境:
conda create -n basic_env python=3.7
#創(chuàng)建一個名為basic_env的環(huán)境
source activate basic_env
#激活這個環(huán)境—Linux和macOS代碼
activate basic_env
#激活這個環(huán)境—Windows代碼
#創(chuàng)建第8~12章代碼運行的環(huán)境:
conda create -n imgrecognition_env python=3.7
? ? ? ? ? ? ? ? ? ? ? ?#創(chuàng)建一個名為imgrecognition _env的環(huán)境
source activate imgrecognition _env
#激活這個環(huán)境—Linux和macOS代碼
activate imgrecognition_env
#激活這個環(huán)境—Windows代碼
2.2.3 Pytorch的下載與安裝
安裝PyTorch。首先,進入PyTorch的官方網(wǎng)站(https://pytorch.org),下載,按照說明安裝。
使用系統(tǒng)推薦的命令進行安裝。
你的電腦沒有支持的顯卡進行GPU加速,那么CUDA這個選項就選擇None。
2.3 Numpy使用詳解
Numpy(Numerical Python的簡稱)是高性能科學計算和數(shù)據(jù)分析的基礎包,其提供了矩陣運算的功能。Numpy提供的主要功能具體如下。
·ndarray——一個具有向量算術運算和復雜廣播能力的多維數(shù)組對象,當兩個維度不同的數(shù)組(array)運算的時候,可以將低維的數(shù)組復制成高維數(shù)組參與運算(因為Numpy運算的時候需要結(jié)構相同)。
·用于對數(shù)組數(shù)據(jù)進行快速運算的標準數(shù)學函數(shù)。
·用于讀寫磁盤數(shù)據(jù)的工具以及用于操作內(nèi)存映射文件的工具。
·非常有用的線性代數(shù),傅里葉變換和隨機數(shù)操作。
·用于集成C/C++和Fortran代碼的工具。 除了明顯的科學計算用途之外,Numpy還可以用作通用數(shù)據(jù)的高效多維容器,定義任意的數(shù)據(jù)類型。
這些都使得Numpy能夠無縫、快速地與各種數(shù)據(jù)庫集成。
圖像識別的本質(zhì),將圖片轉(zhuǎn)換為矩陣。
對圖片的處理簡化為向量空間中的向量運算?;谙蛄窟\算,實現(xiàn)圖像的識別。