Cifar10简单卷积模型搭建,以及Sequential的使用

1. 在第一步的卷积中:padding = 2,stride=1

2.在FeatureMap的64@4*4输出后,要进行flatten操作,操作后输出为64*4*4=1024的长度,所以要经过两个全连接层:

第一个input_size=1024,output_size = 64

第二个input_size=64,output_size = 10

输出为10分类结果

import torch
import torchvision
from torch import nn
from torch.nn import Conv2d, MaxPool2d, Linear, Flatten, Sequential
from torch.utils.data.dataloader import DataLoader

class Module(nn.Module):
    def __init__(self):
        super().__init__()
        # self.conv1 = Conv2d(3,32,kernel_size=(5,5),padding=2,stride=1,dilation=1)
        # self.maxpool1=MaxPool2d(kernel_size=(2,2))
        # self.conv2 = Conv2d(32,32,kernel_size=(5,5),padding=2)
        # self.maxpool2 = MaxPool2d(kernel_size=(2,2))
        # self.conv3 = Conv2d(32, 64, kernel_size=(5, 5), padding=2)
        # self.maxpool3 = MaxPool2d(kernel_size=(2,2))
        # self.flatten = Flatten()
        # self.linear1 = Linear(1024,64)
        # self.linear2 =Linear(64,10)

        self.model1 =Sequential(
            Conv2d(3, 32, kernel_size=(5, 5), padding=2, stride=1, dilation=1),
            MaxPool2d(kernel_size=(2, 2)),
            Conv2d(32, 32, kernel_size=(5, 5), padding=2),
            MaxPool2d(kernel_size=(2, 2)),
            Conv2d(32, 64, kernel_size=(5, 5), padding=2),
            MaxPool2d(kernel_size=(2, 2)),
            Flatten(),
            Linear(1024, 64),
            Linear(64, 10),
        )

    def forward(self, input):
        # input=self.conv1(input)
        # input = self.maxpool1(input)
        # input = self.conv2(input)
        # input = self.maxpool2(input)
        # input = self.conv3(input)
        # input = self.maxpool3(input)
        # input = self.flatten(input)
        # input = self.linear1(input)
        # output = self.linear2(input)
        output = self.model1(input)
        return  output


train_data = torchvision.datasets.CIFAR10('dataset',transform=torchvision.transforms.ToTensor(),train=True,download=True)
test_data = torchvision.datasets.CIFAR10('dataset',transform=torchvision.transforms.ToTensor(),train=False,download=True)

# data_loader = DataLoader(test_data,batch_size=)
module =Module()
# 64相当于有64个图片
input = torch.ones((64,3,32,32))
output = module(input)
print(output)

如果你也碰到Flatten类不能调用的情况,可以参考:

(3条消息) Pytorch 1.0.0版本问题之module ‘torch.nn‘ has no attribute ‘Flatten‘_可基大萌萌哒的马鹿的博客-CSDN博客

 

先用一个随便的矩阵测试

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值