Questão nº 64
Questão de Tecnologia da Informação · FGV DATAPREV 2024 (nº 64)
FGV2024Analista de Tecnologia da Informação - Inteligência da InformaçãoTecnologia da Informação
Gabarito: Bver comentário ↓
Considere o seguinte código que tenta criar e treinar uma rede neural simples com TensorFlow e Keras. Observe o erro que pode ocorrer ao tentar executá-lo (desconsidere questões de indentação do Python):

Com base no código, assinale a opção que indica o erro que levaria a uma falha na execução.
- AO modelo não pode ser compilado porque não possui uma função de métrica definida no método compile.
- BO código falhará, pois x_train e y_train não foram definidos ou carregados. (alternativa correta)
- CO método Dense precisa especificar a função de ativação sigmoid na última camada.
- DO código apresenta erro na função de perda, que deveria ser definida como categorical_crossentropy.
- EA função Sequential deveria ter os parâmetros explicitamente definidos como layers=[].
Resposta comentada
Gabarito Alternativa B
Para treinar uma rede neural, você precisa de dados de entrada e saída (o que a rede vai aprender a prever). Sem esses dados, a rede não tem nada para "estudar".
- (A) Incorreta: O método
compiledo Keras não exige que uma métrica seja definida. Ele pode ser compilado com sucesso apenas com otimizador e função de perda. A métrica é útil para monitorar o desempenho, mas não é obrigatória para a compilação. - (B) Correta: O código tenta usar as variáveis
x_trainey_trainno métodomodel.fit(). No entanto, essas variáveis não foram definidas ou carregadas em nenhum momento no código fornecido, o que resultaria em um erro deNameError(variável não definida) durante a execução. - (C) Incorreta: A função de ativação
softmaxna última camada com 10 neurônios é apropriada para problemas de classificação multi-classe (onde há 10 classes distintas e a saída deve ser uma distribuição de probabilidade entre elas).sigmoidseria usada para classificação binária ou multi-label. - (D) Incorreta: A função de perda
sparse_categorical_crossentropyé a escolha correta quando os rótulos (y_train) são inteiros (ex: 0, 1, 2...) representando as classes, e não codificados em "one-hot" (ex: [0,0,1,0...]). Não há erro aqui sem mais contexto sobre o formato dos rótulos. - (E) Incorreta: A função
Sequentialaceita uma lista de camadas diretamente como seu primeiro argumento, como feito no código (Sequential([...])). Não é necessário usarlayers=[]explicitamente.
Fonte: FGV DATAPREV 2024 Analista de Tecnologia da Informação - Inteligência da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.