FC ConcursosFC Concursos

Questão FC369936

Considere o código python a seguir. import torch from torch import nn, Tensor class CVMNet(nn.Module): def __init__(self, dim_in: int, dim_hidden: int, n_classes: int): super().__i

Inteligência Artificial (IA)

FGV · 2024

Considere o código python a seguir.


import torch

from torch import nn, Tensor

 

class CVMNet(nn.Module):

   def __init__(self,

                dim_in: int,

                dim_hidden: int,

                n_classes: int):

    super().__init__()

    self.i_layer = nn.Linear(dim_in, dim_hidden)

    self.h_layer = nn.Sequential(

     nn.Linear(dim_hidden, dim_hidden // 2),

     nn.Tanh()

   )

   self.o_layer = nn.Sequential(

     nn.Dropout(0.2),

     nn.Linear(dim_hidden // 2, n_classes),

     nn.Softmax(dim=-1)

   )
  def forward(self, x: Tensor):

   return self.o_layer(self.h_layer(self.i_layer(x)))

 

model = CVMNet(400, 100, 3)

pred = model(torch.eye(20).flatten()).detach()

 

Sobre a variável pred, é correto afirmar que:

  1. seus gradientes foram preparados para a retropropagação;
  2. seus valores, quando somados, resultam em 1.0;
  3. sua dimensão é 50;
  4. seus valores serão os mesmos para qualquer execução do código;
  5. sua dimensão é 1.
Mostrar resposta e comentário

Gabarito

B

Comentário do professor

Ao passar torch.eye(20).flatten() (vetor com 400 elementos) pelo modelo, a última camada é uma sequência que termina em Softmax com dim=-1. Isso produz um vetor de saída com 3 componentes (uma pontuação por classe) transformadas em probabilidades.

A função softmax é definida por \( \text{softmax}(z)_i = \frac{e^{z_i}}{\sum_j e^{z_j}} \). Pela sua construção, os componentes são não-negativos e obedecem \( \sum_i \text{softmax}(z)_i = 1 \).

Portanto, os valores em pred correspondem a probabilidades relativas às três classes e, quando somados, resultam em 1.0 (até pequenas variações numéricas por ponto flutuante). A chamada .detach() apenas separa o tensor do grafo; não altera essa propriedade.

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

Continue aprendendo