美文网首页
Pytorch袖珍手册之五

Pytorch袖珍手册之五

作者: 深思海数_willschang | 来源:发表于2021-08-20 11:19 被阅读0次
pytorch pocket reference
原书下载地址:
我用阿里云盘分享了「OReilly.PyTorch.Pocket.R...odels.149209000X.pdf」,你可以不限速下载🚀
复制这段内容打开「阿里云盘」App 即可获取
链接:https://www.aliyundrive.com/s/NZvnGbTYr6C

第三章 基于Pytorch的深度学习开发

该笔记为原书第三章后半部分

模型开发 Model Development

  • 数据准备
  • 模型构建
  • 模型训练
  • 模型验证,调优
  • 模型测试,评价模型
  • 模型实际应用

模型设计
近几年来,模型设计方面得到了很大的发展,不管是在工业界还是在学术界,每年都有很多的相关论文发表出来。

  • 用已有训练好的模型
    在实际应用中,若我们面对的问题跟已有模型处理问题相似,前期可以调用已有模型进行训练再微调,这样可以大大提升工作效率。

Pytorch里提供了大部分主流成熟的模型,让大家直接调用,如计算机视觉模型torchvision.models。

from torchvison import models

# pretrained=True,调用已训练好的模型包括结构及参数
vgg16 = models.vgg16(pretrained=True)
# 查看网络结构
print(vgg16)
# out:
# Sequential(
# (0): Linear(in_features=25088,
# out_features=4096, bias=True)
# (1): ReLU(inplace=True)
# (2): Dropout(p=0.5, inplace=False)
# (3): Linear(in_features=4096,
# out_features=4096, bias=True)
# (4): ReLU(inplace=True)
# (5): Dropout(p=0.5, inplace=False)
# (6): Linear(in_features=4096,
# out_features=1000, bias=True)
# )

Linear, ReLU, and Dropout are torch.nn modules. torch.nn is used to create NN layers, activations, loss functions, and other NN components.

torchvision里提供的模型库:https://pytorch.org/vision/stable/models.html

Pytorch Hub里包括了一些不错的已训练好的模型,我们可以通过torch.hub.load()来加载所需的模型。
Pytorch Hub模型库:https://pytorch.org/hub/

torch.nn,Pytorch NN Module

Pytorch的NN模块里提供了各种好用的模块组件,便于我们后续的模型的构建。

示例:简单网络模型
继承于nn.Module,完成 init() 和forward()函数。

  • init()
    模型相关初始化工作
  • forward()
    定义数据在模型中的处理流程
import torch.nn as nn
import torch.nn.functional as F

class SimpleNet(nn.Module):
    def __init__(self):
        super(SimpleNet, self).__init__()
        self.fc1 = nn.Linear(2048, 256)
        self.fc2 = nn.Linear(256, 64)
        self.fc3 = nn.Linear(64, 2)

    def forwar(self, x):
        x = x.view(-1, 2048)
        x = F.relu(self.fc1(x))
        x = F.relu(self.fc2(x))
        x = F.softmax(self.fc3(x), dim=1)
        return x

模型设计一般流程

  1. 模块定义,如线性连接,卷积核等
  2. 激活函数,如Relu,softmax等
  3. 模块间连接
  4. 输出选择

下面截图为torch.nn包所提供的各种方法函数

image.png
image.png

nn.Module is the base class for all NN building blocks.

image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png

从上面的截图,我们可以看出Pytorch提供了很多健壮稳定的神经网络层及激活函数。在实际应用中,我们都可快速调用这些层及函数进行模型结构开发。

训练模型

模型设计阶段主要有下面几个步骤:定义神经网络模块,参数,各个模块的连接。
在模型设计完成后,就是通过训练数据来训练模型,不断优化参数以提高模型的预测能力。

模型循环训练

损失函数

优化算法

验证模型

测试模型

模型部署

模型保存

相关文章

  • Pytorch袖珍手册之五

    我用阿里云盘分享了「OReilly.PyTorch.Pocket.R...odels.149209000X.pdf...

  • Pytorch袖珍手册之十

    第六章 Pytorch加速及优化(性能提升)之一 在实际应用中,我们可能面对的数据是比之前章节里的还要多,模型网络...

  • Pytorch袖珍手册之十一

    第六章 Pytorch加速及优化(性能提升) 之二 模型并行处理 model parallel processin...

  • Pytorch袖珍手册之四

    第三章 基于Pytorch的深度学习开发 前面章节我们已经了解tensor及其操作,这章主要就是学习如何用Pyto...

  • Pytorch袖珍手册之八

    我用阿里云盘分享了「OReilly.PyTorch.Pocket.R...odels.149209000X.pdf...

  • Pytorch袖珍手册之九

    第五章 基于Pytorch的深度学习网络结构自主式开发 前面章节我们主要通过pytorch提供的类,函数和各种库进...

  • Pytorch袖珍手册之六

    我用阿里云盘分享了「OReilly.PyTorch.Pocket.R...odels.149209000X.pdf...

  • Pytorch袖珍手册之七

    我用阿里云盘分享了「OReilly.PyTorch.Pocket.R...odels.149209000X.pdf...

  • Pytorch袖珍手册之十三

    第六章 Pytorch加速及优化(性能提升) 之四 模型优化--量化 Quantization 模型量化属于模型压...

  • Pytorch袖珍手册之十四

    第六章 Pytorch加速及优化(性能提升) 之五 模型优化--剪枝 Pruning 现在的模型基本上都是成百上千...

网友评论

      本文标题:Pytorch袖珍手册之五

      本文链接:https://www.haomeiwen.com/subject/jrxtiltx.html