pytorch

pytorch

 

 

import torch
import time
a = torch.randn(10000, 1000)#要有空格
b = torch.randn(1000, 2000)#1000行,2000列的矩阵
t0 = time.time()
c = torch.matmul(a, b)#CPU模式的矩阵乘法
t1 = time.time()
print(a.device, t1-t0, c.norm(2))
cpu 0.534600019454956 tensor(140360.3125

pytorch

 

 

#自动求导数
import torch
import time
from torch import autograd
x = torch.tensor(1.)
a = torch.tensor(1., requires_grad=True)#a的初始值为1
b = torch.tensor(2., requires_grad=True)
c = torch.tensor(3., requires_grad=True)
y = a**2*x+b*x+c
print('before: ', a.grad, b.grad, c.grad)
grads = autograd.grad(y, [a, b, c])#求导
print('after: ', grads[0], grads[1], grads[2])

before:  None None None
after:  tensor(2.) tensor(1.) tensor(1.)

pytorch

 

梯度下降 可以求极小值

 pytorch

 

核心;x = x -f'(x)×学习率(导数)#学习率为了更 精确的预测
在f'(x)=0处抖动,因为=0也会有误差 极小值

 

一般只要预测值是连续的,都叫回归问题
逻辑回归:用于预测属于某类的概率 (预测值在[0,1]),从这个角度理解,他就是2分类预测

 pytorch

 

 pytorch

 

 pytorch

 

 

w,b在变动

pytorch

 

 

上一篇:梯度计算


下一篇:pytorch固定部分参数