Pytorch笔记

  • 深度学习中任何数据类型都是用tensor存储
  • tensor(w)中有data和grad(tensor),一般要将requested_grad设置为True
  • loss.backward()为反馈,更新grad(w.data = w.data - 0.01 * w.grad.data),可以防止构成计算图
  • 取出grad的值用grad.items()也是为了防止构成图
  • 模型训练的一般步骤:
  1. 准备数据
  2. 将模型封装成类(继承torch.nn.Module)
    __init__中有 (1)super(类名,self).init (2)self.前馈函数名 = torch.nn.对应模型(输入、输出模型的维度) __call__函数会直接通过对象()调用,里面有forward函数,需要人工重写`
  3. 定义loss(用于反向传播),optimization函数(用于更新参数)
    不管是随机梯度下降、批量梯度下降还是mini_batch梯度下降,都是用torch.nn.SGD 后续调用step进行参数更新
  4. 训练循环
    1. 前馈 2. loss、zero_grad、backward
    `3. 参数更新
  • Logistic Regression模型(分类)就是再linear模型的基础上增加了sigmoid函数(有很多种),将输出值转换到0-1之间,所以输出的是一个分布,其loss就是比较输出分布和理论分布的差距(BCELoss、CrossEntropyLoss等)
  • Dataset要被继承并实现__getitem__和__len__,才可以用Data_loader(shuffle,batch-size),加载一个个batch并Pytorch笔记_第1张图片
    且用于训练
  • ![[afa18fade72fe43ea90d4f01db7f147.jpg]]
  • 以上函数介绍:
    `1. transforms.Compose

预处理包,把多个步骤(比如归一化、裁剪、变成Tensor等等)整合到一起

`2. torch.nn.Conv2d

卷积函数

`3. torch.nn.MaxPool2d

最大池化

`4. view

将x摊平(x,-1)

5. torch.nn.functional.avg_pool2d

平均池化

  • Iception将多钟卷积结构整合起来,自动找到最适合的组合
  • 0是列,1是行

你可能感兴趣的:(pytorch,深度学习,机器学习)