深度学习练手项目(二)-----利用PyTorch进行线性回归
生活随笔
收集整理的這篇文章主要介紹了
深度学习练手项目(二)-----利用PyTorch进行线性回归
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
深度學習并沒有想象的那么難,甚至比有些傳統的機器學習更簡單。所用到的數學知識也不需要特別的高深。這篇文章將利用PyTorch來實現線性回歸這個經典的模型。
一、線性回歸理論
線性回歸時利用數理統計中的回歸分析來確定兩種或者兩種以上變量間相互依賴的定量關系的一種統計分析方法,運用十分廣泛?;貧w分析中,只包括一個自變量和一個因變量,且二者的關系可用一條直線近似表示,這種回歸分析稱為一元線性回歸分析。如果回歸分析中包括兩個或兩個以上的自變量,且因變量和自變量之間是線性關系,則稱為多元線性回歸分析。
簡單的說: 線性回歸對于輸入x與輸出y有一個映射f,y=f(x),而f的形式為aX+b。其中a和b是兩個可調的參數,我們訓練的目的就是訓練a,b這兩個參數。
二、PyTorch代碼實現
下面我們來用pyTorch的代碼來做一個詳細的解釋
- 首先,我們需要導入相關的包
- 下面定義一個線性函數,這里使用 y=5x+7y = 5x + 7y=5x+7,這里的5和7就是上面說到的參數a和b,我們先使用matplot可視化一下這個函數
- 下面生成一些隨機的點,來作為我們的訓練數據
- 在圖上顯示下我們生成的數據
- 我們隨機生成了一些點,下面將使用PyTorch建立一個線性的模型來對其進行擬合,這就是所說的訓練的過程,由于只有一層線性模型,所以我們就直接使用了
其中參數(1, 1)代表輸入輸出的特征(feature)數量都是1. Linear 模型的表達式是 y=w?x+by=w \cdot x+by=w?x+b,其中 www 代表權重, bbb 代表偏置
- 損失函數我們使用均方損失函數:MSELoss
- 優化器我們選擇最常見的優化方法 SGD,就是每一次迭代計算 mini-batch 的梯度,然后對參數進行更新,學習率 0.01
- 訓練3000次
- 準備訓練數據: x_train, y_train 的形狀是 (256, 1), 代表 mini-batch 大小為256, feature 為1. astype(‘float32’) 是為了下一步可以直接轉換為 torch.float.
- 開始訓練
- 訓練完成了,看一下訓練的成果是多少。用 model.parameters() 提取模型參數。 www, bbb 是我們所需要訓練的模型參數 我們期望的數據 w=5w=5w=5,b=7b=7b=7 可以做一下對比
- 再次可視化一下我們的模型,看看我們訓練的數據,如果你不喜歡seaborn,可以直接使用matplot
參考文獻
https://github.com/zergtant/pytorch-handbook/blob/master/chapter2/2.2-deep-learning-basic-mathematics.ipynb
總結
以上是生活随笔為你收集整理的深度学习练手项目(二)-----利用PyTorch进行线性回归的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BRD、MRD 和 PRD 之间的区别与
- 下一篇: 2021抖音电商商家经营方法论白皮书