Pytorch實戰 二 梯度及優化演算法

2021-10-06 04:43:28 字數 1967 閱讀 3826

一、計算梯度的簡單示例

import torch

x = torch.tensor([1

.,2.

], requires_grad=

true

)y = x[0]

**2+ x[1]

**2print

('y = {}'

.format

(y))

y.backward(

)print

('grad = {}'

.format

(x.grad)

)# 輸出結果

# y = 5.0

# grad = tensor([2., 4.])

注意問題:

二、梯度下降法的簡單示例

import torch.optim

x = torch.tensor([3

.,2.

], requires_grad=

true

)optimizer = torch.optim.sgd(

[x], lr=

0.1, momentum=0)

# sgd能夠實現梯度下降的邏輯

for step in

range(11

):if step:

optimizer.zero_grad(

)# 清空上次迭代中儲存的資料

y.backward(

)# 求解梯度

optimizer.step(

)# 更新值

y = x[0]

**2+ x[1]

**2print

('step {}: x = {}, y= {}'

.format

(step, x.tolist(

), y)

)"""

執行結果:

step 0: x = [3.0, 2.0], y= 13.0

step 1: x = [2.4000000953674316, 1.600000023841858], y= 8.320000648498535

step 2: x = [1.9200000762939453, 1.2799999713897705], y= 5.32480001449585

step 3: x = [1.5360000133514404, 1.0239999294281006], y= 3.407871961593628

step 4: x = [1.2288000583648682, 0.8191999197006226], y= 2.1810381412506104

step 5: x = [0.9830400347709656, 0.6553599238395691], y= 1.3958643674850464

step 6: x = [0.7864320278167725, 0.5242879390716553], y= 0.8933531641960144

step 7: x = [0.629145622253418, 0.41943034529685974], y= 0.5717460513114929

step 8: x = [0.5033165216445923, 0.33554428815841675], y= 0.36591750383377075

step 9: x = [0.40265321731567383, 0.26843541860580444], y= 0.23418718576431274

step 10: x = [0.32212257385253906, 0.2147483378648758], y= 0.1498797982931137

"""

基本的梯度下降法有如下缺陷:

三、優化演算法

可使用torch.optim.sgdtorch.optim.rmsproptorch.optim.adam等等。

Pytorch 二 梯度下降

一 梯度下降的作用 乙個神經網路的典型訓練過程如下 定義包含一些可學習引數 或者叫權重 的神經網路 在輸入資料集上迭代 通過網路處理輸入 計算損失 輸出和正確答案的距離 將梯度反向傳播給網路的引數 更新網路的權重,一般使用乙個簡單的規則 weight weight learning rate gra...

二 梯度下降

第二講正式開始介紹機器學習中的監督學習,首先宣告了以下約定 對於m組訓練樣本,x表示其輸入 input feature y表示其輸出 target variable m是乙個正整數 表示個數的嘛 x和y可是是向量也可以是標量,不過入門而言一般y為標量,x i y i 表示訓練樣本,表示訓練集 我們的...

21 梯度法及共軛梯度法

coding utf 8 created on wed mar 20 21 56 21 2019 author zhangchaoyu 當離最優值較遠時,利用梯度法,接近極小點時用收斂較快的其他方法 import math import copy 1 f x,y x x 25 y y 2 f x,y...