berry.objectives
¶
berry.objectives
module contains a list of loss functions and other evaluation methods for training or testing neural networks.
A small list of loss functions currently defined in berry
are given below.
categorical_crossentropy 
Categorical crossentropy between an output tensor and a target tensor, where the target is a tensor of the same shape as the output. 
triplet_loss 
Triplet loss function. 
The following evaluation methods are provided to montior the train or test performance of the neural network.
accuracy 
Multiclass zeroone accuracy 
Helper function¶

braid.berry.objectives.
get_objective
(key, output, target)¶ Helper function to retrieve the appropriate objective function.
 key : string
 Name of the objective function  “categorical_crossentropy”, “accuracy”, etc.
 function
 The appropriate function given the
key
.
>>> from berry.objectives import get_objective >>> # assume: `target`  output Tensor to predict, `output`  predicted >>> # Tensor of the neural network >>> accuracy_op = get_objective("accuracy", output, target)
Examples¶
You are encouraged to use the helper function get_objective()
. Alternatively, you can use the objective functions directly,
>>> from berry.objectives import categorical_crossentropy
>>> # assume: `target`  output Tensor to predict, `output`  predicted Tensor
>>> # of the neural network
>>> loss_op = categorical_crossentropy(output, target)
Loss Functions¶

braid.berry.objectives.
categorical_crossentropy
(output, target)¶ Categorical crossentropy between an output tensor and a target tensor, where the target is a tensor of the same shape as the output.
 output :
 Tensor containing the predicted class probabilities of the neural network.
 target :
 Tensor containing the true classes for the corresponding inputs.
tf.Tensor
tf.Tensor
tf.Tensor
 Symbolic tensorflow Tensor which performs the loss calculation.
This function expects
output
to contain class probabilities instead of class prediction scores. Typically,activations.softmax()
activation should be used for the layer producingoutput
.

braid.berry.objectives.
triplet_loss
(Xa, Xp, Xn, margin=1.0)¶ Triplet loss function.
This function is useful for generating embeddings for images/inputs such that similar inputs lie close in the embedding and different objects lie further away. It takes 3 inputs  anchor (
Xa
), positive sample (Xp
) and negative sample (Xn
).Xa
andXp
are known to be similar inputs whereasXa
andXn
are different. For more details refer to [1]. output :
 Tensor containing the predicted class probabilities of the neural network.
 target :
 Tensor containing the true classes for the corresponding inputs.
tf.Tensor
tf.Tensor
tf.Tensor
 Symbolic tensorflow Tensor which performs the loss calculation.
[1] Florian Schroff, Dmitry Kalenichenko, James Philbin; “FaceNet: A Unified Embedding for Face Recognition and Clustering”, The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015, pp. 815823.
Evaluation Methods¶

braid.berry.objectives.
accuracy
(output, target)¶ Multiclass zeroone accuracy
The fraction of samples in the given minibatch with the correct predicted class.
 output :
 Tensor containing the predicted class probabilities of the neural network.
 target :
 Tensor containing the true classes for the corresponding inputs.
tf.Tensor
tf.Tensor
tf.Tensor
 Symbolic tensorflow Tensor which performs the accuracy calculation.