美文网首页
如何定义PyTorch模型

如何定义PyTorch模型

作者: geekboys | 来源:发表于2020-03-05 01:43 被阅读0次

作者:geekboys
日期:2020-3-4

PyTorch模型定义的三要素

1.必须继承nn.Module这个类,要让PyTorch知道这个类是一个Module
2.在init(self)中设置好需要的"组件"(如conv,pooling,Linear,BatchNorm等)
3.最后,在forward(self,x)中定义好的“组件”进行组装,就像搭积木,把网络结构搭建出来,这样一个模型就定义好了。

这里可以搭建一个简单的模型来体现一下这种模型搭建的方法:

#一个简单的模型
import torch
import torch.nn as nn
import torch.functional as F
class Net(nn.Module):
    def __init__(self):
        super(Net,self).__init__()#实现父类的初始化
        self.conv1=nn.Conv2d(3,6,5)#定义卷积层组件
        self.pool1=nn.MaxPool2d(2,2)#定义池化层组件
        self.conv2=nn.Conv2dn(6,16,5)
        self.pool2=nn.MaxPool2d(2,2)
        self.fc1=nn.Linear(16*5*5,120)#定义线性连接
        self.fc2=nn.Linear(120,84)
        self.fc3=nn.Linear(84,10)

当这些组件定义好之后,就可以定义forward()函数,用来搭建模型结构。

def forward(self,x):#x模型的输入
    x=self.pool1(F.relu(self.conv1(x)))
    x=self.pool2(F.relu(self.conv2(x)))
    x=x.view(-1,16*5*5)#表示将x进行reshape,为后面做为全连接层的输入
    x=F.relu(self.fc1(x))
    x=F.relu(self.fc2(x))
    x=self.fc3(x)
    return x

上面我们就成功的搭建了一个网络是不是很方便,当我们实例化一个模型net=Net(),然后把输入inputs扔进去,outputs=net(inputs)就可以得到输出outputs.
在PyTorch模型定义中还会经常的使用Sequetial这个组件

nn.Sequetial

torch.nn.Sequential其实就是Sequential容器,该容器将一系列操作按先后顺序给包起来,方便重复使用。
所以总结起来,PyTorch模型的定义过程为:

模型的定义就是先继承,在构建组件,最后组装

相关文章

  • CV-字符识别模型

    Pytorch构建CNN模型 Pytorch中构建CNN模型只需要定义好模型的参数和正向传播就可以,Pytorch...

  • 如何定义PyTorch模型

    作者:geekboys日期:2020-3-4 PyTorch模型定义的三要素 1.必须继承nn.Module这个类...

  • pytorch finetune模型

    pytorch finetune模型 文章主要讲述如何在pytorch上读取以往训练的模型参数,在模型的名字已经变...

  • Pytorch 之 forward函数

    在模型类定义的时候,定义forward函数,其中变量形式(self,x) 在使用Pytorch的时候,模型训练时,...

  • 手写一键抠图

    基于pytorch 定义U2Net网络 定义图片后期边缘处理类 模型主体 效果验证

  • 2021-07-06

    1、vim编辑器 2、shell 3、验证流程 定义参数 将pytorch模型转换为caffe模型 将caffe模...

  • PyTorch nn.Module中的self.register

    PyTorch中定义模型时,有时候会遇到self.register_buffer('name', Tensor)的...

  • pytorch转caffe2 之 onnx转caffe2报错的解

    目标:将 pytorch模型 转为 onnx模型 再转为 caffe2模型,得到两个.pb文件 pytorch转o...

  • pytorch线性回归

    pytorch线性回归 函数关系是 y = -5*x +3 创建模型 定义损失函数优化器 训练 可视化

  • Pytorch 使用预训练模型

    上一篇讲了如何载入模型,这里写一下如何使用载入的模型初始化新网络的部分层:我的理解在于,在pytorch中,模型的...

网友评论

      本文标题:如何定义PyTorch模型

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