Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 了解Conv2d的输入和输出大小_Python_Deep Learning_Pytorch_Conv Neural Network - Fatal编程技术网

Python 了解Conv2d的输入和输出大小

Python 了解Conv2d的输入和输出大小,python,deep-learning,pytorch,conv-neural-network,Python,Deep Learning,Pytorch,Conv Neural Network,我正在学习使用PyTorch(使用CIFAR-10数据集)进行图像分类 我试图了解给定的Conv2d代码的输入和输出参数: import torch.nn as nn import torch.nn.functional as F class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.conv1 = nn.Conv2d(3, 6, 5) sel

我正在学习使用PyTorch(使用CIFAR-10数据集)进行图像分类

我试图了解给定的
Conv2d
代码的输入和输出参数:

import torch.nn as nn
import torch.nn.functional as F

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.conv1 = nn.Conv2d(3, 6, 5)
        self.pool = nn.MaxPool2d(2, 2)
        self.conv2 = nn.Conv2d(6, 16, 5)
        self.fc1 = nn.Linear(16 * 5 * 5, 120)
        self.fc2 = nn.Linear(120, 84)
        self.fc3 = nn.Linear(84, 10)

    def forward(self, x):
        x = self.pool(F.relu(self.conv1(x)))
        x = self.pool(F.relu(self.conv2(x)))
        x = x.view(-1, 16 * 5 * 5)
        x = F.relu(self.fc1(x))
        x = F.relu(self.fc2(x))
        x = self.fc3(x)
        return x

net = Net()
我的
conv2d()
理解(如果我错了/遗漏了什么,请更正):

  • 因为图像有3个通道,所以第一个参数是
    3
    6
    是过滤器的数量(随机选择)
  • 5
    是内核大小(5,5)(随机选择)
  • 同样,我们创建下一层(上一层输出是该层的输入)
  • 现在使用
    linear
    函数创建一个完全连接的层: self.fc1=nn.线性(16*5*5120)
16*5*5
:这里的
16
是最后一个conv2d层的输出,但是在这里
5*5
是什么

这是内核大小吗?还是别的什么?如何知道我们需要乘以
5*5或4*4或3*3…..

我研究并了解到,由于图像大小是
32*32
,应用max pool(2)2次,因此图像大小将是32->16->8,因此我们应该将其乘以
最后一次输出大小*8*8
,但在这个链接中它是
5*5


有人能解释一下吗?

这些是图像大小本身的尺寸(即高度x宽度)

未加卷积 除非用零填充图像,否则卷积滤波器会将输出图像的大小在高度和宽度上缩小
filter\u size-1

3-filter将5x5图像转换为(5-(3-1)x 5-(3-1))图像 零填充保留图像尺寸 让我们。