Referente ao curso
Treinando uma Rede Neural: Deep Learning com PyTorch
,
no capítulo
Otimização e Taxa de Aprendizado
e atividade
Projeto da aula anterior
Acredito que deve ser algum erro de versão ou alguma implementação nova que teve no pytorch, pois não estou conseguindo fazer rodas nem o script ipynb que baixei do repositório da aula de Funções de perda. Apresenta o seguinte erro
loss = criterion(pred, yTns)
Oii, Willian! Como vai?
No erro apresentado na imagem, "
'nll_loss_forward_reduce_cuda_kernel_2d_index' not implemented for 'Int'
", indica que os dados de entrada para a função de perda não estão no
tipo
correto.
No PyTorch, a
função CrossEntropyLoss
espera que os rótulos (
target
) estejam em um tensor de tipo
LongTensor
(inteiros de 64 bits). Se os rótulos estiverem em um tipo diferente, como
IntTensor
(inteiros de 32 bits), você encontrará esse tipo de erro.
Como sugestão, converta os rótulos para
LongTensor
, utilizando o método
.long()
. Além disso, verifique o tipo de dados dos rótulos, utilizando o
método
.dtype
no tensor de rótulos.
As páginas linkadas acima podem abrir em Inglês, caso não se sinta confortável com o idioma, clique com o botão direito do mouse em qualquer canto da página e escolha a opção
Traduzir para o português
.
Deixo também o notebook disponibilizado pela pessoa Instrutora para que você possa comparar o seu código.
Espero que as sugestões te ajude. Qualquer dúvida, conte conosco.
Bons estudos, Willian!