SparseCategoricalCrosstentropy vs sparse_categorical_crossentropy
-
12-12-2020 - |
Pergunta
What is the difference between SparseCategoricalCrosstentropy and sparse_categorical_crossentropy ?
SparseCategoricalCrossentropy: Computes the crossentropy loss between the labels and predictions.
sparse_categorical_crossentropy: Computes the sparse categorical crossentropy loss.
But I am still not sure. Any loss will always be calculates between labels and predictions. SO how are these two different ?
Solução
SparseCategoricalCrossentropy is a class. So you have to define a object first then you can compute the loss using it.
scce = tf.keras.losses.SparseCategoricalCrossentropy()
scce(y_true, y_pred).numpy()
While sparse_categorical_crossentropy is merely a function which can be directly used to compute cost.
loss = tf.keras.losses.sparse_categorical_crossentropy(y_true, y_pred)
If you are to pass the loss to a Sequential API then you must pass the object ,not the function.
model.compile('sgd', loss=tf.keras.losses.SparseCategoricalCrossentropy())
Outras dicas
SparseCategoricalCrossentropy is a class while sparse_categorical_crossentropy is a function.
SparseCategoricalCrossentropy -> You create an instance of this class and then pass the true values and predicted values.
sparse_categorical_crossentropy -> You pass the true and predicted values just as you would do with any other function.