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!