Home › Fóruns › Fórum Deep Learning de A à Z com PyTorch e Python › Classificação de gatos e cachorros
- Este tópico contém 5 respostas, 3 vozes e foi atualizado pela última vez 5 meses, 3 semanas atrás por Jones Granatyr.
- AutorPosts
- 30 de junho de 2022 às 09:01 #35750
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!
30 de junho de 2022 às 11:50 #35762Olá 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 estride
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 umkernel_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âmetroout_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.
30 de junho de 2022 às 12:51 #35763Olá 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 2 anos, 4 meses atrás por Luis Garcia.
30 de junho de 2022 às 15:00 #35765Olá 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.
30 de junho de 2022 às 15:15 #35767Olá 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
8 de maio de 2024 às 08:05 #44724Qualquer outra dúvida é só avisar!
- AutorPosts
- Você deve fazer login para responder a este tópico.