Pytorch tensor的感知機

2021-10-24 13:54:35 字數 1769 閱讀 2764

單層感知機的主要步驟:

# 單層感知機梯度的推導

# 要進行優化的是w,對w進行梯度下降

a=torch.randn(1,10)

# a是乙個【1,10】的向量

w=torch.randn(1,10,requires_grad=true)

# w是乙個可導的【1,10】的向量

# 1.2.經過乙個sigmoid啟用函式

o=torch.sigmoid([email protected]())

print(o.shape)

# 3.經過乙個mse_loss損失函式

# loss是乙個標量

loss=f.mse_loss(torch.ones(1,1),o)

print(loss.shape)

# 4.求loss對w0,w1....w9的偏導數

loss.backward()

print(w.grad)

# 5.後邊就可以對w進行梯度更新

輸出結果

torch.size([1, 1])

torch.size()

tensor([[ 3.6432e-05, -7.3545e-05, -4.3179e-05, 3.3986e-04, -9.5312e-05,

-1.7416e-04, -1.7869e-05, -2.3893e-04, -1.5513e-04, -2.1554e-05]])

多層感知機的主要步驟:

# 多層感知機梯度的推導

# 要進行優化的是w,對w進行梯度下降

a=torch.randn(1,10)

# a是乙個【1,10】的向量

w=torch.randn(2,10,requires_grad=true)

# w是乙個可導的【2,10】的向量

# 1.2.經過乙個sigmoid啟用函式

o=torch.sigmoid([email protected]())

print(o.shape)

# 3.經過乙個mse_loss損失函式

# loss是乙個標量

loss=f.mse_loss(torch.ones(1,2),o)

print(loss)

# 4.求loss對w0,w1....w9的偏導數

loss.backward()

print(w.grad)

# 5.後邊就可以對w進行梯度更新

輸出結果

torch.size([1, 2])

tensor(0.2823, grad_fn=)

tensor([[-0.0654, 0.0242, 0.0045, -0.1007, 0.0259, -0.0522, -0.0327, 0.0805,-0.0180,-0.0186],

[-0.1300, 0.0481, 0.0090, -0.2002, 0.0514, -0.1037, -0.0650, 0.1599,-0.0358,-0.0371]])

Pytorch Tensor和tensor的區別

在pytorch中,tensor和tensor都能用於生成新的張量 a torch.tensor 1 2 a tensor 1 2.a torch.tensor 1 2 a tensor 1 2 首先,我們需要明確一下,torch.tensor 是python類,更明確地說,是預設張量型別torch...

pytorch tensor 獲得中間節點的梯度

我們只能指定計算圖的leaf節點的requires grad變數來決定改變量是否記錄梯度,而不能指定它們運算產生的節點的requires grad,它們是否要梯度取決於它們的輸入節點,它們的輸入節點只要有乙個requires grad是true,那麼它的requires grad也是true.x t...

pytorch tensor的合併與分割

import torcha torch.rand 30,6 a記錄了班上前30個同學的6門考試成績 b torch.rand 25,6 b記錄了班上後30個同學的6門考試成績 torch.cat a,b dim 0 shapetorch.size 55,6 a torch.rand 5,3 5個同學...