1
resposta

RuntimeError

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)

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

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!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software