pytorch初學入門(一)

2021-10-18 06:54:01 字數 2041 閱讀 3798

需要能力:線性代數,概率論和梳理統計,和一定的python基礎

在先進入正題之前我們需要明白並且牢記兩件事情和乙個流程

1,通過pytorch實現學習系統

2,理解基本神經網路/深度學習

(以上內容以後部落格會有)

學習流程:

dataset——>model——>training——>inferring

1,dataset資料集,簡單理解就是我們收集的資料組成的集合。

2,model模型,就像這篇文章的模型一樣,這是其一,模型很多,不過重點是通過這些模型構造屬於自己的模型

3,training訓練,這個交給電腦就好

4,inferring推測,這個交給電腦就好(這兩個過程看完線性模型就知道了)

現在介紹一下線性模型,通俗來講就是給定很多個資料點,希望能夠找到乙個函式來擬合這些資料點令它的誤差最小,比如簡單的一元函式就可以來表示給出一系列的點,找一條直線,使得直線盡可能與這些點接近,也就是這些點到直線的距離之和盡可能小。用數學語言來嚴格表達 ,即 給定由 d 個屬性描述的示例 x = (x1,x2 ,x3 , …,xd) 』 其中 xi 表示x在第i個屬性上面的取值, 線性模型就是試圖學習 乙個通過屬性的線性組合來進行**的函式,即一元線性模型非常簡單,每個i

ii對應於乙個資料點,希望建立乙個模型 ,其中 ,y一般可以用向量來表達:

w=(w1,w2,…,wd)和b都是要學習的引數,模型通過不斷地調整w和b,最後就能得到乙個最優的模型.

如圖所示這就是乙個極其簡單構造線性模型的資料,看圖右下角,我們把前三行,知道輸入和輸出的稱為tiainingset(訓練集),僅僅知道輸入的為testset(測試集),這裡需要強調的是測試集是已知的。看到這裡你可能不大明白,具體就是我們知道這四組資料,但是呢我們用前面的一部分進行訓練,這也就是我們上述流程的第三步。當我們訓練之後,我們可以輸入第四組資料,我們就可以得出乙個結果,和原來的那個問號的數字比對,這樣就確定我們的訓練的正確性。

其實剛才那個模型,我們一眼就能看出4對應的8,得出的線性模型就是y=2x,這裡的2就是斜率,或者說叫權值(w),也就是這張圖中的trueline,但是作為計算機該如何學習呢?事實是計算機首先隨機給乙個權值,然後就是做出與上圖類似的線,通過對每乙個x對應的y~與真實y的距離進行加和。

這裡我們引進了損失函式loss,如圖所示,我們知道這個模型的權值應該是2,當電腦認為權值為三的時候我們會對應得出每組資料的損失,最後我們平均求出損失值,如圖所示。

現在我需要強調一點那就是上一張的loss求得是一種權值的損失和,而我們為了需要用的是不同權值對應的平均損失。這裡引入乙個重要概念叫平均方差誤差,如圖我們可以很好找到最優的權值2,當然這裡比較巧合,2就是最優,而且損失為0,但是在實際中,損失往往大於0,那我們如何精確找出哪?比較簡單,還是上圖,假設這個圖我們一眼找不到最優,但是我們可以在乙個小範圍內即權值在1~3有最優,那麼我們可以:

通過資料擬合出一條曲線,具體為,你可以讓權值加的很小,不向上上圖,權值為0,1,2,3,4,你可以讓權值為1.01,1.02,,,,,,這樣減小步長就是乙個好辦法。

此**就是在spyder上執行的**和結果,可以明顯看出當權值為2時,損失為0,這裡權值的步長為0.1。有興趣可以看看以下**。

Pytorch 快速入門(一)

pytorch是facebook 的 ai 研究團隊發布了乙個基於 python的科學計算包,旨在服務兩類場合 乙個提供了高度靈活性和效率的深度學習實驗性平台 匯入pytorch的包import torchjupyter notebook 現在,pytorch看起來真的像乙個框架了,而純tensor...

PyTorch入門 一 簡介

2017年1月fair facebook ai research 發布了pytorch。pytorch是在torch的基礎上用python語言重新打造的一款深度學習框架。原先的torch是用lua語言為介面的機器學習框架,但因lua語言較為小眾,導致了torch知名度不高。2017年1月正式發布py...

Pytorch快速入門一 Tensor

tensor 可以簡單地認為是乙個陣列,且支援高效的科學計算。基礎操作 從儲存角度講,可以分為以下兩類 tensor和numpy的相互轉換。tensor 和numpy共享記憶體,所以互相轉換的速度非常快。這也意味著,如果其中乙個變了,另外乙個也會變。import torch as t a t.one...