【问题标题】:CNN Model Definition input and output change with RGBCNN模型定义输入输出随RGB变化
【发布时间】:2020-10-25 20:28:01
【问题描述】:

我正在尝试使用 CNN 的交通标志数据集,我已经完成了它是一个灰度转换,但想看看使用 RGB 的影响。我使用的是 32x32x1 的尺寸,但现在是 32x32x3。

class ConvNet(nn.Module):
def __init__(self):
    super(ConvNet, self).__init__() 
    self.conv1 = nn.Conv2d(in_channels=1,
                           out_channels=6,
                           kernel_size=(5,5),
                           stride=(1,1))
    self.pool2 = nn.MaxPool2d(kernel_size = (2,2))
    self.conv3 = nn.Conv2d (in_channels=6,
                            out_channels=16,
                            kernel_size=(5,5),
                            stride=(1,1))
    self.pool4 = nn.MaxPool2d(kernel_size=(2,2))
    self.conv5 = nn.Conv2d (in_channels=16,
                           out_channels=120,
                           kernel_size=(5,5),
                           stride=(1,1))
    self.fc6 = nn.Linear(in_features=120,
                         out_features=84)
    self.fc7 = nn.Linear(in_features=84,
                         out_features=62)
def forward(self,x):
    x = x.view([-1, 1, 32, 32])
    x = nn.functional.relu(self.conv1(x))
    x = self.pool2(x)
    x = nn.functional.relu(self.conv3(x))
    x = self.pool4(x)
    x = nn.functional.relu(self.conv5(x))
    x = x.view(-1, 120)
    x = nn.functional.relu(self.fc6(x))
    x = self.fc7(x)
    return x

我无法理解如何使用附加通道定义层。希望能帮助您定义这一点。

【问题讨论】:

  • 将第一个conv层的输入通道改为3。

标签: machine-learning dataset pytorch conv-neural-network


【解决方案1】:

由于您只更改输入层的通道,因此您只需将self.conv1 的输入通道更改为 3,而不是 1:self.conv1 = nn.Conv2d(in_channels=3, out_channels=6, kernel_size=(5,5), stride=(1,1))。这样做,您还必须将扁平化形状 [-1, 1, 32, 32] 更改为 [-1, 3, 32, 32],因为您现在有 3 个通道。

【讨论】:

    猜你喜欢
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 2023-03-30
    • 2021-11-22
    相关资源
    最近更新 更多