Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.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 Pytork——cnn的基本结构_Python_Neural Network_Conv Neural Network_Pytorch - Fatal编程技术网

Python Pytork——cnn的基本结构

Python Pytork——cnn的基本结构,python,neural-network,conv-neural-network,pytorch,Python,Neural Network,Conv Neural Network,Pytorch,我今天刚开始写pytorch,现在正在读这篇文章。 文档中给出了此代码和此说明。这些有什么关系吗?比如,这是给定代码网络的结构还是架构 import torch import torch.nn as nn import torch.nn.functional as F class Net(nn.Module): def __init__(self): super(Net, self).__init__() # 1 input image channe

我今天刚开始写pytorch,现在正在读这篇文章。 文档中给出了此代码和此说明。这些有什么关系吗?比如,这是给定代码网络的结构还是架构

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


class Net(nn.Module):

    def __init__(self):
        super(Net, self).__init__()
        # 1 input image channel, 6 output channels, 5x5 square convolution
        # kernel
        self.conv1 = nn.Conv2d(1, 6, 5)
        self.conv2 = nn.Conv2d(6, 16, 5)
        # an affine operation: y = Wx + b
        self.fc1 = nn.Linear(16 * 5 * 5, 120)
        self.fc2 = nn.Linear(120, 84)
        self.fc3 = nn.Linear(84, 10)

    def forward(self, x):
        # Max pooling over a (2, 2) window
        x = F.max_pool2d(F.relu(self.conv1(x)), (2, 2))
        # If the size is a square you can only specify a single number
        x = F.max_pool2d(F.relu(self.conv2(x)), 2)
        x = x.view(-1, self.num_flat_features(x))
        x = F.relu(self.fc1(x))
        x = F.relu(self.fc2(x))
        x = self.fc3(x)
        return x

    def num_flat_features(self, x):
        size = x.size()[1:]  # all dimensions except the batch dimension
        num_features = 1
        for s in size:
            num_features *= s
        return num_features


net = Net()
print(net)
CNN架构的链接:


是的,图像中的网络由代码表示。这里,C1,C3。。。表示卷积层和S2,S4。。。最大池层数。显示的尺寸是穿过每一层后的图像尺寸。您可以使用以下步骤进行检查:

图像的输入尺寸为(1,32,32),对应于(通道、高度、宽度)。通过C1后:
Conv2d(1,6,5)
尺寸将为(6,28,28),可以通过以下公式找到:
output dim=(input\u dim-filter\u size+2*padding)/stride+1
。然后,通过S2:
max_pool2d
,空间大小将减少一半,即尺寸将为(6,14,14)。同样,您可以检查进一步的维度,并亲自证明图像与代码相对应


您可以检查以计算图像尺寸。

欢迎使用StackOverflow。请按照您创建此帐户时的建议,阅读并遵循帮助文档中的发布指南,在这里申请。StackOverflow不是设计、编码、研究或教程资源。请检查一般问题。