我正在尝试为具有这样主干的深度神经网络制作模型:
每个块应该有一定数量的卷积层(比如说3) 它还应该有一个线性层。 输入通过平均池、线性层和非线性激活函数进行处理。 它也由卷积层处理。 线性层和卷积层的结果应该结合起来(线性向量中的第一个数字与第一个卷积层等)
将 torch.nn 导入为 nn
类 MyModel(nn.Module): 定义init(自我): super(MyModel, self).init() self.conv1 = nn.Conv2d(3, 16, 3, padding=1) self.relu1 = nn.ReLU() self.pool1 = nn.AvgPool2d(2, 2) self.conv2 = nn.Conv2d(16, 32, 3, padding=1) self.relu2 = nn.ReLU() self.pool2 = nn.AvgPool2d(2, 2) self.conv3 = nn.Conv2d(32, 64, 3, padding=1) self.relu3 = nn.ReLU() self.pool3 = nn.AvgPool2d(2, 2) self.conv4 = nn.Conv2d(64, 128, 3, padding=1) self.relu4 = nn.ReLU() self.pool4 = nn.AvgPool2d(2, 2) self.flatten = nn.Flatten()
def forward(self, x):
x = self.conv1(x)
x = self.relu1(x)
x = self.pool1(x)
x = self.conv2(x)
x = self.relu2(x)
x = self.pool2(x)
x = self.conv3(x)
x = self.relu3(x)
x = self.pool3(x)
x = self.conv4(x)
x = self.relu4(x)
x = self.pool4(x)
x = self.flatten(x)
return x
我认为这不符合规格。
任何理解方面的帮助将不胜感激。