Evaluation

The evaluation ops are useful for measuring the performance of a network. Since they are nondifferentiable, they are typically used at evaluation time.

tf.nn.top_k(input, k=1, sorted=True, name=None)

Finds values and indices of the k largest entries for the last dimension.

If the input is a vector (rank-1), finds the k largest entries in the vector and outputs their values and indices as vectors. Thus values[j] is the j-th largest entry in input, and its index is indices[j].

For matrices (resp. higher rank input), computes the top k entries in each row (resp. vector along the last dimension). Thus,

values.shape = indices.shape = input.shape[:-1] + [k]


If two elements are equal, the lower-index element appears first.

Args:
• input: 1-D or higher Tensor with last dimension at least k.
• k: 0-D int32 Tensor. Number of top elements to look for along the last dimension (along each row for matrices).
• sorted: If true the resulting k elements will be sorted by the values in descending order.
• name: Optional name for the operation.
Returns:
• values: The k largest elements along each last dimensional slice.
• indices: The indices of values within the last dimension of input.

tf.nn.in_top_k(predictions, targets, k, name=None)

Says whether the targets are in the top K predictions.

This outputs a batch_size bool array, an entry out[i] is true if the prediction for the target class is among the top k predictions among all predictions for example i. Note that the behavior of InTopK differs from the TopK op in its handling of ties; if multiple classes have the same prediction value and straddle the top-k boundary, all of those classes are considered to be in the top k.

More formally, let

$$predictions_i$$ be the predictions for all classes for example i, $$targets_i$$ be the target class for example i, $$out_i$$ be the output for example i,

$$out_i = predictions_{i, targets_i} \in TopKIncludingTies(predictions_i)$$

Args:
• predictions: A Tensor of type float32. A batch_size x classes tensor.
• targets: A Tensor. Must be one of the following types: int32, int64. A batch_size vector of class ids.
• k: An int. Number of top elements to look at for computing precision.
• name: A name for the operation (optional).
Returns:

A Tensor of type bool. Computed Precision at k as a bool Tensor.