PyTorch學習筆記之Variable

2021-09-19 01:31:29 字數 967 閱讀 6495

深度學習的演算法本質上是通過反向傳播求導數,pytorch的autograd模組實現了此功能。

autograd.variable是autograd中的核心類,它簡單封裝了tensor,並支援幾乎所有tensor的操作。tensor在被封裝為variable之後,可以呼叫它的.backward實現反向傳播,自動計算所有梯度。

variable主要包含三個屬性

from torch.autograd import variable

# 使用tensor新建乙個variable

x = variable(t.ones(2,

2), requires_grad=

true

)# y = x.sum() = (x[0][0] + x[0][1] + x[1][0] + x[1][1])

y = x.

sum(

)# 反向傳播,計算梯度

y.backward(

)# 檢視梯度

x.grad

variable的建構函式需要傳入tensor,同時有兩個可選引數

如果想要計算各個variable的梯度,只需呼叫根節點variable的backward方法,autograd會自動沿著計算圖反向傳播,計算每乙個葉子節點的梯度。

variable.backward(grad_variables=

none

, retain_graph=

none

, create_graph=

none

)

grad在反向傳播過程中是累加的,這意味著每次執行反向傳播,梯度都會累加之前的梯度,所以反向傳播之前需把梯度清零。

# 清零

x.grad.data.zero_(

)

variable和tensor具有近乎一致的介面,在實際使用中可以無縫切換。

Pytorch 學習筆記

本渣的pytorch 逐步學習鞏固經歷,希望各位大佬指正,寫這個部落格也為了鞏固下記憶。a a b c 表示從 a 取到 b 步長為 c c 2 則表示每2個數取1個 若為a 1 1 1 即表示從倒數最後乙個到正數第 1 個 最後乙個 1 表示倒著取 如下 陣列的第乙個為 0 啊,第 0 個!彆扭 ...

Pytorch學習筆記

資料集 penn fudan資料集 在學習pytorch官網教程時,作者對penn fudan資料集進行了定義,並且在自定義的資料集上實現了對r cnn模型的微調。此篇筆記簡單總結一下pytorch如何實現定義自己的資料集 資料集必須繼承torch.utils.data.dataset類,並且實現 ...

Pytorch學習筆記

lesson 1.張量 tensor 的建立和常用方法 一 張量 tensor 的基本建立及其型別 import torch 匯入pytorch包 import numpy as np torch.version 檢視版本號1.張量 tensor 函式建立方法 張量 tensor 函式建立方法 t ...