Изображение структуры архитектуры CNN из модели - PullRequest
0 голосов
/ 19 апреля 2020

Мне нужно создать образ моей нейронной сети в презентации, но я немного озадачен тем, какой слой следует за следующим. Моя модель это '' '

Модель класса (torch.nn.Module):

def __init__(self):
    super(Model, self).__init__()
    self.conv1 = nn.Conv2d(1, 10, kernel_size=5)
    self.conv2 = nn.Conv2d(10, 20, kernel_size=5)
    self.conv2_drop = nn.Dropout2d()
    self.conv3 = nn.Conv2d(20, 30, kernel_size=5)
    self.conv3_drop = nn.Dropout2d()

    self.fc1 = nn.Linear(30*4*4, 200)  # 20*13*13
    print(count_parameters(self.fc1))
    self.fc2 = nn.Linear(200, 100)
    print(count_parameters(self.fc2))
    self.fc3 = nn.Linear(100, 50)
    print(count_parameters(self.fc3))
    self.fc4 = nn.Linear(50, 26)
    print(count_parameters(self.fc4))

def forward(self, x):
    x = F.relu(F.max_pool2d(self.conv1(x), 2))
    x = F.relu(F.max_pool2d(self.conv2_drop(self.conv2(x)), 2))
    x = F.relu(F.max_pool2d(self.conv3_drop(self.conv3(x)), 2))


    # Reshaping the tensor to BATCH_SIZE. Torch infers this from other dimensions when one of the parameter is -1.
    #print(x.shape)
    x = x.view(-1, 30*4*4)  # 20*13*13 #30*4*4
    #print(x.size())
    x = F.relu(self.fc1(x))
    #print(x.size())
    x = F.relu(self.fc2(x))
    #print(x.size())
    x = F.dropout(x)
    #print(x.size())
    x = F.relu(self.fc3(x))
    #print(x.size())
    x = F.dropout(x)
    #print(x.size())
    x = self.fc4(x)

' '' Я думаю, что структура похожа на Input -> (Conv layer - > maxpool -> ReLu -> Линейный слой) -> (Conv layer -> maxpool -> ReLu -> dropout -> Linear layer) -> (Conv layer -> maxpool -> ReLu -> dropout -> Linear layer) -> Linear layer -> Output \

Может кто-нибудь подтвердить, правильная ли это архитектура или что-то не так в моем понимании

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...