Oii, Eduardo!
É uma ótima pergunta e é importante entender a diferença entre os conjuntos de treino, validação e teste, especialmente quando se trabalha com modelos de classificação em TensorFlow e Keras.
Conjunto de treino: Esse é o conjunto de dados que você usa para treinar seu modelo. O modelo aprende os padrões e características dos dados durante esse processo.
Conjunto de validação: Durante o treinamento, é comum usar um conjunto de validação para ajustar hiperparâmetros e evitar o overfitting (quando o modelo se ajusta demais aos dados de treino e não generaliza bem para dados novos). O conjunto de validação ajuda a monitorar o desempenho do modelo enquanto ele está sendo treinado.
Conjunto de Teste: Esse conjunto é usado para avaliar o desempenho final do modelo após ele ter sido treinado e ajustado. Ele fornece uma estimativa de como o modelo irá performar em dados não vistos. Mesmo você não tenha mencionado explicitamente, é uma boa prática ter um conjunto de teste separado para essa avaliação final.
Em TensorFlow com Keras, o uso de um conjunto de teste não é obrigatório, mas é super recomendado pra garantir que o modelo generalize bem para novos dados. Você pode dividir seus dados em treino, validação e teste manualmente, ou usar funções do TensorFlow para isso.
Quanto ao cálculo das métricas, durante o treinamento e validação, o TensorFlow/Keras calcula métricas como acurácia, perda, etc., com base nos dados de validação para fornecer feedback sobre o desempenho do modelo. Quando você avalia o modelo com o conjunto de teste, as mesmas métricas podem ser calculadas para dar uma ideia de como o modelo se comporta com dados que ele nunca viu antes.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!