Classificação de gatos e cachorros

Home Fóruns Fórum Deep Learning de A à Z com PyTorch e Python Classificação de gatos e cachorros

Visualizando 5 posts - 1 até 5 (de 5 do total)
  • Autor
    Posts
  • #35750
    Profile photo ofwillfantLuis Garcia
    Participante

    Olá,

    Logo no primeiro video nos fazemos:

    nn.Linear(in_features=14*14*32, out_features=128)

    Será que me podem explicar melhor de onde vem o “14*14*32” e o “128”?

    Muito obrigado!

    #35762
    Profile photo ofdennyDenny Ceccon
    Moderador

    Olá Luís,

    Observe que, na aula seguinte (Base de dados, por volta de @5:15), o professor vai configurar o loader para entregar imagens com o tamanho de 64×64 pixels. Nas camadas de convolução, como estamos usando um kernel_size de 3 e stride de 1 (o stride não está explícito na construção do modelo, mas 1 é o valor padrão), isto implica que o resultado será uma matriz com 2 pixels a menos, 1 em cada extremidade. Ou seja, ao final da primeira convolução, a matriz terá 62×62 pixels. Na camada de MaxPooling, estamos usando um kernel_size de 2, o que fará com que a matriz fique com a metade dos pixels, ou seja, 31. Como este processo é repetido mais uma vez, isto resulta primeiro, na convolução, em uma matriz de 29×29, e depois, no MaxPooling, em uma matriz de 14×14 (1 pixel é descartado porque a divisão não é perfeita). Já o 32 é o número de filtros utilizado na última camada de convolução (parâmetro out_channels).

    O 128 não tem uma razão específica, a princípio poderia ser qualquer valor, mas é comum construir camadas densas com exponentes de 2, e 128 é um valor bastante comum.

    #35763
    Profile photo ofwillfantLuis Garcia
    Participante

    Olá Denny. Obrigado pela resposta rápida. Ficou esclarecido!

    Eu estava a tentar fazer o mesmo mas com imagens próprias mas estou tendo um erro na classificação quando estou a avaliar o modelo.

    Estou a usar exatamente o mesmo código mas com imagens diferentes. (todas elas têm o mesmo tamanho.

    No entanto quando tento classificar no fim usando a função classificar_imagem retorna-me este erro:

    “cannot reshape array of size 16384 into shape (64,64,3)”

    Estará a faltar-me alguma coisa?

    Obrigado mais uma vez!

    • Esta resposta foi modificada 11 meses, 1 semana atrás por Profile photo ofwillfantLuis Garcia.
    #35765
    Profile photo ofdennyDenny Ceccon
    Moderador

    Olá Luis,

    Se você observar, 16384 = 64 * 64 * 4. Imagens coloridas geralmente têm 3 canais diferentes, um para cada cor primária, mas algumas (como as de formato PNG) têm um quarto canal chamado de alpha com a transparência. Deve ser este o caso. Tenta converter elas pra JPEG antes.

    #35767
    Profile photo ofwillfantLuis Garcia
    Participante

    Olá Denny. Agora faz todo o sentido esqueci me desse canal extra. Após converter para jpg tudo deu certo.

    Mais uma vez obrigado pela resposta rápida.

    Cumprimentos

Visualizando 5 posts - 1 até 5 (de 5 do total)
  • Você deve fazer login para responder a este tópico.