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
#自动求导数 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.)
梯度下降 可以求极小值
核心;x = x -f'(x)×学习率(导数)#学习率为了更 精确的预测 在f'(x)=0处抖动,因为=0也会有误差 极小值
一般只要预测值是连续的,都叫回归问题
逻辑回归:用于预测属于某类的概率 (预测值在[0,1]),从这个角度理解,他就是2分类预测
w,b在变动