搭建一套神经网络的各层套路 - 搭建网络模型

        搭建网络模型基本上也有两种基本方法,一种是直接调用pyTorch里现成的经典训练模型,另一种方法是自己撰写网络模型。

1.利用现成网络模型

        pyTorch为我们提供了很多经典的训练模型,本章主要写分类的神经网络,有

        下面列写如何使用现成的网络模型:

form torchvision。models import Alexnet

model = Alexnet()   这里面需要填入 需要分的类型数量 和 随机失活比例(dropout)

        在torchvision.models中,以alexnut为例,分为Alexnet 以类的形式存在,和alexnet以函数的形式存在。两者在使用上的区别我还不太清楚,先暂且用Alexnet搭建。 

         这是最简单的调用网络的方法。除此之外,对于网络的操作还有很多,比如网络的追加、删改,本文只为搭建最简单的框架,这里不再过多介绍。

2.自己撰写一个网络模型

           写一个神经网络的类,包含__init__、super、forward.

from torch import nn
from torch.nn import Conv2d, MaxPool2d, Flatten, Linear, Sequential

class Tudui(nn.Module):
    def __init__(self):
        super(Tudui, self).__init__()
        # self.conv1 = Conv2d(in_channels=3,out_channels=32,kernel_size=5,padding=2,stride=1)#输入是32*32图像,输出也是32*32,故需要边缘补两圈零(padding)
        # self.maxpool1 = MaxPool2d(2)
        # self.conv2 = Conv2d(32,32,kernel_size=5,padding=2)
        # self.maxpool2 = MaxPool2d(2)
        # self.conv3 = Conv2d(in_channels=32,out_channels=64,kernel_size=5,padding=2)
        # self.maxpool3 = MaxPool2d(2)
        # self.flatten = Flatten() #就是数据展平的功能,64通道4*4的图像共1024个像素点,所以展成1024的长条。
        # self.linear1 = Linear(1024,64) #1024的长条缩到64。
        # self.linear2 = Linear(64,10) #64缩到10
 
        #用Sequential体现DRY原则
 
        self.model1 = Sequential(
            Conv2d(3,32,5,padding=2),
            MaxPool2d(2),
            Conv2d(32,32,5,padding=2),
            MaxPool2d(2),
            Conv2d(32,64,5,padding=2),
            MaxPool2d(2),
            Flatten(),
            Linear(1024,64),
            Linear(64,10)
        )
 
    def forward(self,x):
        x = self.model1(x)
        # x = self.conv1(x)
        # x = self.maxpool1(x)
        # x = self.conv2(x)
        # x = self.maxpool2(x)
        # x = self.conv3(x)
        # x = self.maxpool3(x)
        # x = self.flatten(x)
        # x = self.linear1(x)
        # x = self.linear2(x)
        return x
 

tudui = Tudui()     #实例化模型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值