How does keras define "accuracy" and "loss"?

40,396

Have a look at metrics.py, there you can find definition of all available metrics including different types of accuracy. Accuracy is not printed unless you add it to the list of desired metrics when you compile your model.

Regularizers are by definition added to the loss. For example, see add_loss method of the Layerclass.

Update

The type of accuracy is determined based on the objective function, see training.py. The default choice is categorical_accuracy. Other types like binary_accuracy and sparse_categorical_accuracy are selected when the objective function is either binary or sparse.

Share:
40,396
SRobertJames
Author by

SRobertJames

Updated on February 22, 2020

Comments

  • SRobertJames
    SRobertJames about 4 years

    I can't find how Keras defines "accuracy" and "loss". I know I can specify different metrics (e.g. mse, cross entropy) - but keras prints out a standard "accuracy". How is that defined? Likewise for loss: I know I can specify different types of regularization -- are those in the loss?

    Ideally, I'd like to print out the equation used to define it; if not, I'll settle for an answer here.

  • SRobertJames
    SRobertJames over 7 years
    If I add to the metrics 'accuracy', which metric is that? There are several in metrics.py that have the word "accuracy" in them?
  • SRobertJames
    SRobertJames over 7 years
    Thanks. But what is selected if the objective function is neither, but is mse? What does accuracy mean in that context?
  • Sergii Gryshkevych
    Sergii Gryshkevych over 7 years
    In such case categorical_accuracy is selected and it means according to the documentation "Calculates the mean accuracy rate across all predictions for multiclass classification problems". If your problem is not classification, then it does not make much sense to include accuracy. @SRobertJames
  • Xiaohong Deng
    Xiaohong Deng over 4 years
    @SergiiGryshkevych I clicked the link for categorical_accuracy. Seems categorical_accuracy is no longer a scalar. It's an array now if I'm not mistaken. categorical_accuracy