Não sei se por conta das repetidas normalizações em cima de normalizações (já que a instrução que normaliza os dados de treino está na mesma célula do código do modelo e ela sempre está executando a mesma célula), mas uma rede que, após treinada com 5 épocas, me retorna uma taxa de acerto máxima de 23,83%, não está servindo para muita coisa. Os valores dos pixels das imagens dela já devem estar tão baixos (0,000005, por exemplo), que a rede está supondo que todas as imagens não passam de quadrados pretos. Daí o modelo endoida, porque uma hora um quadrado preto é calça, outra hora o quadrado preto é camisa, outra hora o quadrado preto é bota. Não há como extrair informações de contorno, por exemplo, para diferenciar as imagens e encaixá-las nas suas categorias.
As minhas aqui melhoraram até a camada de 128. Com a camada de 64, já deu um resultado um pouco pior. Usando somente até a camada de 128, obtive acurácia de 89,53% com 5 épocas. Aí vem o que mais está me incomodando nesse assunto de aprendizagem de máquina: a imprevisibilidade.
Se um modelo está retornando, no melhor dos casos, 23,83% de acurácia, alguma coisa está errada. Não é por conta da imprevisibilidade. Esse feeling, o(a) instrutor(a) tem que ter para corrigir durante a gravação ou então pedir para parar a gravação e começar de novo fazendo os testes em off.
Sugiro fazer a sequencia de exercícios previamente antes de gravar o vídeo. Daí o instrutor quando gravando o vídeo vai só comparando os resultados durante a gravação, com os resultados obtidos em off (de preferência validado por um par ou equipe). Se a diferença for gritante, ou interrompe a gravação ou procura o erro gravando.
Se colocar uma venda nos olhos do vendedor e pedir para ele adivinhar o tipo da peça de roupa, ele vai acertar mais do que o modelo.
Desculpem pelas observações, mas durante essa formação já é a segunda vez que ocorre problemas relacionados à normalização dos dados.