FC ConcursosFC Concursos

Questão FC331242

A analista Ana está implementando um script para deep learning utilizando o Python e o PyTorch. Considere o seguinte trecho do script de Ana: import torch import torch.nn.functiona

Linguagens de Programação

FGV · 2024

A analista Ana está implementando um script para deep learning utilizando o Python e o PyTorch. Considere o seguinte trecho do script de Ana:

 

import torch

import torch.nn.functional as F

 

input = torch.randn(3, 5, requires_grad=True)

 

target = torch.tensor([1, 2, 0])

 

loss_fn = F.nll_loss

loss = loss_fn(F.log_softmax(input, dim=1), target)

 

print(loss)

 

Ao ser executado, o trecho do script acima irá:

  1. imprimir o valor do tensor loss;
  2. falhar, pois a função nll_loss inexiste no PyTorch;
  3. falhar, pois a função log_softmax inexiste no PyTorch;
  4. falhar, pois o valor atribuído à variável input não é um tensor;
  5. falhar, pois faltam informações no valor atribuído à variável target.
Mostrar resposta e comentário

Gabarito

A

Comentário do professor

A execução do trecho imprime o valor do tensor loss. O código calcula primeiro um tensor input de forma (3,5) (3 amostras, 5 classes) com requires_grad=True e um vetor de rótulos target com 3 índices de classe.

Em seguida aplica-se F.log_softmax(input, dim=1) para obter as log‑probabilidades por linha e passa‑se isso para F.nll_loss, que computa a perda de log‑verossimilhança negativa. Por definição, para N amostras a saída é a média: \( \text{loss} = -\frac{1}{N}\sum_{i=1}^{N}\log p_{i, y_i} \).

O resultado é um tensor escalar que mantém informação de gradiente (visto o input com requires_grad) e o comando print(loss) imprime esse tensor, mostrando seu valor numérico, o dtype e o dispositivo.

Portanto, a saída exibida no console será a representação textual do tensor loss calculado.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo