Respostas:
Use a entropia cruzada categórica esparsa quando suas classes forem mutuamente exclusivas (por exemplo, quando cada amostra pertence exatamente a uma classe) e a entropia cruzada categórica quando uma amostra pode ter várias classes ou os rótulos são probabilidades brandas (como [0,5, 0,3, 0,2]).
A fórmula para a entropia cruzada categórica (S - amostras, C - sem classe, - a amostra pertence à classe c) é:
No caso em que as classes são exclusivas, você não precisa somar sobre elas - para cada amostra apenas o valor diferente de zero é apenas para a verdadeira classe c.
Isso permite economizar tempo e memória. Considere o caso de 10000 classes quando elas são mutuamente exclusivas - apenas 1 log em vez de resumir 10000 para cada amostra, apenas um número inteiro em vez de 10000 flutuadores.
A fórmula é a mesma nos dois casos, portanto, não há impacto na precisão.
o1,o2,o3e cada um tem 167,11,7classes, respectivamente. Eu li sua resposta de que não fará diferença, mas existe alguma diferença se eu usar sparse__ou não. Posso ir para categoricalas duas últimas e sparsepara a primeira, pois existem 167 aulas na primeira aula?
A resposta, em poucas palavras
Se seus destinos forem codificados com um hot hot, use categorical_crossentropy. Exemplos de codificações one-hot:
[1,0,0]
[0,1,0]
[0,0,1]
Mas se seus destinos forem números inteiros, use sparse_categorical_crossentropy. Exemplos de codificações inteiras (para fins de conclusão):
1
2
3
sparse_categorical_crossentropy? E o que o from_logitsargumento significa?