從零開始的機器學(xué)習(xí)筆記(序)PyTorch的安裝與使用

寫在前面
本文是我的機器學(xué)習(xí)筆記,也是我根據(jù)我自己所學(xué)的知識總結(jié)的,對機器學(xué)習(xí)的零門檻入門讀物。由于是我自己總結(jié)的,內(nèi)容或多或少都有些錯誤。如果有不懂的問題或發(fā)現(xiàn)我文中的錯誤,歡迎大家及時批評指正!
本文會帶大家從支撐向量機一路講到神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,在過程中,我會對所需要的前置知識進行講解。希望大家在看完之后,也能親手訓(xùn)練出自己的第一個神經(jīng)網(wǎng)絡(luò)!
趁手的工具——PyTorch
入門機器學(xué)習(xí),光靠眼睛看可不行,需要自己親身實踐,才能逐步了解機器學(xué)習(xí)背后的原理。實踐就需要工具。目前在機器學(xué)習(xí)中,有兩個趁手的工具可以使用,一個是由google開發(fā)的tensorflow,另一個就是由facebook開發(fā)的pytorch。由于兩者都基于python——一門計算機語言——發(fā)展而來,因此,安裝整個環(huán)境的第一步,就是安裝python。
以下粘貼的鏈接為anaconda,它是一個python的包管理軟件,除了自帶python環(huán)境外,anaconda也會為python提供一個便捷的環(huán)境配置方案。
Windows系統(tǒng)點擊 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2020.11-Windows-x86_64.exe 以下載;
Linux系統(tǒng)點擊?https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2020.11-Linux-x86_64.sh 以下載。
下載好后,執(zhí)行程序,按照步驟安裝即可,注意過程中需要勾選所有含有“PATH”的選項。
安裝好以后,打開命令行,輸入
:

若看見“>>>”符號,即代表python已經(jīng)安裝成功。此時可以關(guān)閉命令行,也可以輸入
退出python環(huán)境。
第二步,我們將開始安裝pytorch。有條件的可以參考網(wǎng)絡(luò)上的教程安裝cuda與cudnn,隨后安裝支持GPU加速的pytorch;新手可以不考慮這些,我們的教程中不會有復(fù)雜到不得不使用GPU加速的神經(jīng)網(wǎng)絡(luò)。因此,我們可以安裝CPU版本,這樣方便我們?nèi)腴Tpytorch:
打開命令行,在命令行中粘貼如下命令:
隨后按下回車,等待命令執(zhí)行結(jié)束,即可在python中安裝pytorch。
命令執(zhí)行結(jié)束后,我們關(guān)閉當(dāng)前命令行,打開一個新的命令行,仍舊是輸入
啟動python環(huán)境,隨后我們輸入
import是python的一個關(guān)鍵詞,代表著包的導(dǎo)入。在每一次環(huán)境啟動時,都只會啟動最原始的變量與函數(shù)。此時,需要我們使用import語句導(dǎo)入我們需要的變量與函數(shù)。在這里,torch就是我們需要導(dǎo)入的模塊。
導(dǎo)入pytorch之后,我們新建一個torch的張量:
執(zhí)行結(jié)果如下圖所示。

張量是神經(jīng)網(wǎng)絡(luò)計算的一個重要概念。對于單個數(shù),我們叫它“數(shù)”,或者叫它“標(biāo)量”;當(dāng)我們把一組標(biāo)量按照特定的順序組合起來時,我們叫它“向量”或者“矢量”;當(dāng)我們把多個向量橫著拼起來時,我們得到了一張二維數(shù)表,我們叫它“矩陣”。不管是標(biāo)量,向量還是矩陣,我們都可以稱之為“張量”。我們在提到張量時,前面一般會加上一個維度,比如標(biāo)量可以被看作“0維張量”,向量可以被看作“1維張量”,矩陣可以被看作“2維張量”。pytorch中的神經(jīng)網(wǎng)絡(luò),就是在對于這些張量的計算中實現(xiàn)。
標(biāo)量舉例:;
向量舉例:;
矩陣舉例:。
我們之后還會再接觸到“標(biāo)量”、“向量”和“矩陣”這些概念,現(xiàn)在的階段,了解即可。在python中,列表的初始化用中括號進行,torch.tensor相當(dāng)于一個函數(shù)(實際上是一個類),它的輸入是python的列表,輸出(返回值)是pytorch的張量。讓我們看看以上所舉的示例在pytorch中如何被構(gòu)建:
將其輸入命令行后,我們可以得到我們想要的結(jié)果:

這個就是我們向pytorch中輸入標(biāo)量、向量和矩陣的過程。在之后機器學(xué)習(xí)的過程中,它們會如影隨形地存在著。然而,需要注意的是,無論多么復(fù)雜的神經(jīng)網(wǎng)絡(luò),最后都可以被拆解成為“標(biāo)量”、“向量”、“矩陣”和“函數(shù)”這四個概念的組合技。因此,掌握這四個概念,就離掌握神經(jīng)網(wǎng)絡(luò)不遠了。