深度学习pytorch- tensor, 基本运算与梯度gradient和backward

  1. 与numpy中的基本操作相似, pytorch 的作用是引入GPU加快运算, 增加图形界面, 适合大数据运算, 尤其是deep learning
  2. gradient 梯度类似于求导, 找到梯度下降的最佳路径。
  3. tensor 除了可以进行线性代数运算, 还可以求梯度。
    建立三个tensor:
# Create tensors.
import torch
x = torch.tensor(3.) # 数字
w = torch.tensor(4., requires_grad=True) # 数字
b = torch.tensor(5., requires_grad=True) # 数字
x, w, b

(tensor(3.),
tensor(4., requires_grad=True),
tensor(5.,requires_grad=True))

requires_grad=True 的作用就是引入梯度

引入表达式y, y 为tensor

# Arithmetic operations
y = w * x + b
y

基本算数运算

tensor(17., grad_fn=<AddBackward0>)

通过调运backward()方法, 可以对y函数求导, 也就是求梯度。必须用backward 想到与积分。

# Compute derivatives
y.backward()
相当于函数变为 y = 3 * w + b

求梯度:
# Display gradients
print('dy/dx:', x.grad)
print('dy/dw:', w.grad)
print('dy/db:', b.grad)
dy/dx: None
dy/dw: tensor(3.)
dy/db: tensor(1.)

因为x为常数, 对x求偏导数为0, y对w求偏导数为x = 3, 对b求偏导数等于1.

x = torch.tensor(1.)
w = torch.tensor(1., requires_grad=True)
y = w * x
y.backward()

print('dy/dx:', x.grad)
print('dy/dw:', w.grad)
``
> dy/dx: None 
> dy/dw: tensor(1.)

你可能感兴趣的:(deep,learning,深度学习,pytorch,神经网络)