1
resposta

Uso da combinação de convolução e pooling

Vendo o exemplo da questão apresentada, observei que em determinado momento há duas camadas de convolução seguidas, sem que uma camada de pooling entre elas. É comum que haja casos em que não seja usada a combinação de uma camada de convolução seguida de uma camada de pooling, como o exemplo apresentado? Se sim, quais essas situações? Qual a vantagem?

Net = nn.Sequential(
    nn.Conv2d(3, 32, kernel_size=3, padding=1),
    nn.ReLU(),
    nn.MaxPool2d(kernel_size=2),
    nn.Conv2d(32, 64, kernel_size=3, padding=1), # <----------------
    nn.ReLU(),
    nn.Conv2d(64, 64, kernel_size=3, padding=1), # <----------------
    nn.ReLU(),
    nn.MaxPool2d(kernel_size=2),
    nn.Flatten(),
    nn.Linear(4096, 1024),
    nn.ReLU(),
    nn.Linear(1024, 10)
)
1 resposta

Olá, tudo bem?

Sim, é normal encontrar redes neurais convolucionais com várias camadas de convolução seguidas sem camadas de pooling entre elas. Isso acontece por algumas razões e tem suas vantagens.

Quando há várias camadas de convolução em sequência, a rede consegue aprender detalhes mais complexos das imagens. Cada camada adicional ajuda a capturar padrões mais refinados.

A principal vantagem de usar várias camadas de convolução seguidas é que a rede consegue extrair mais informações detalhadas das imagens. E ao evitar o pooling imediato, a rede reduz a dimensionalidade das imagens de forma mais gradual, o que pode ajudar a manter informações importantes.

Então, as duas camadas de convolução seguidas neste código ajudam a rede a captar características mais refinadas antes de aplicar o pooling. Com isso, reconhecemos padrões que podem não ser tão claros com apenas uma camada de convolução.

Espero ter ajudado.

Qualquer dúvida, não hesite em compartilhar no fórum.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!