利用pytorch對二維資料進行求解梯度

2021-10-22 12:10:54 字數 2064 閱讀 7811

今天我們利用pytorch對二維資料進行求導並輸出顯示,主要用到pytorch中的linear()、mseloss()等函式,具體的求導過程詳見下面**:

import torch

#create tensors of shape(10,3)and (10,2)

x=torch.randn(10,3)

y=torch.randn(10,2)

#build a fully connected layer

linear=nn.linear(3,2)

print('w:',linear.weight)

print('b:',linear.bias)

#build loss function and optimizer

criterion=nn.mseloss()

optimizer=torch.optim.sgd(linear.parameters(),lr=0.01)

#forward pass

pred=linear(x)

#compute loss

loss=criterion(pred,y)

print('loss:',loss.item())

#backward pass

loss.backward()

#print out the gradients

print('dl/dw:',linear.weight.grad)

print('dl/db',linear.bias.grad)

#1-step gradient descent

optimizer.step()

輸出結果顯示:

另外一種方案:在1-step之後輸出loss

import torch

#create tensors of shape(10,3)and (10,2)

x=torch.randn(10,3)

y=torch.randn(10,2)

#build a fully connected layer

linear=nn.linear(3,2)

print('w:',linear.weight)

print('b:',linear.bias)

#build loss function and optimizer

criterion=nn.mseloss()

optimizer=torch.optim.sgd(linear.parameters(),lr=0.01)

# #forward pass

# pred=linear(x)

## #compute loss

# loss=criterion(pred,y)

# print('loss:',loss.item())

## #backward pass

# loss.backward()

## #print out the gradients

# print('dl/dw:',linear.weight.grad)

# print('dl/db',linear.bias.grad)

#1-step gradient descent

optimizer.step()

pred=linear(x)

loss=criterion(pred,y)

print('loss after 1 step optimization:',loss.item())

輸出結果顯示:

對比:

對二維資料進行邊界拓展

對二維資料處理的時候,常常遇到須要越界的問題。比方對影象進行濾波操作。對原始資料的邊界進行拓展。然後使用拓展後的資料作處理,能夠解決越界的問題。依據拓展出的資料的值來自 能夠分為多種邊界拓展方式,我們要實現的是將邊界進行奇對稱拓展。舉例說明什麼是奇拓展。比方對原始二維資料向左拓展4列,那麼在邊界上向...

php對二維資料進行排序

php一維陣列的排序可以用sort asort arsort 等函式,但是php二維陣列的排序需要自定義。方法一 經驗證,成功 作用 對二維陣列進行指定key排序 引數 arr 二維陣列 shortkey 需要排序的列,short 排序方式 shorttype 排序型別 function multi...

pytorch方法測試 卷積(二維)

pytorch方法測試 卷積 二維 測試 import torch import torch.nn as nn m nn.conv2d 2,2,3,stride 2 input torch.randn 1,2,5,7 output m input print input print 卷積的權重 pr...