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

SRobertJames picture SRobertJames · Jan 8, 2017 · Viewed 38.2k times · Source

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.

Answer

Sergii Gryshkevych picture Sergii Gryshkevych · Jan 8, 2017

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.