Python tensorflow.python.ops.metrics_impl._confusion_matrix_at_thresholds() Examples
The following are 1
code examples of tensorflow.python.ops.metrics_impl._confusion_matrix_at_thresholds().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
tensorflow.python.ops.metrics_impl
, or try the search function
.
Example #1
Source File: post_export_metrics.py From model-analysis with Apache License 2.0 | 4 votes |
def confusion_matrix_metric_ops( self, features_dict: types.TensorTypeMaybeDict, predictions_dict: types.TensorTypeMaybeDict, labels_dict: types.TensorTypeMaybeDict, ) -> Tuple[Dict[Text, List[types.TensorType]], Dict[Text, List[types.TensorType]]]: """Metric ops for computing confusion matrix at the given thresholds. This is factored out because it's common to AucPlots and ConfusionMatrixAtThresholds. Args: features_dict: Features dict. predictions_dict: Predictions dict. labels_dict: Labels dict. Returns: (value_ops, update_ops) for the confusion matrix. """ # Note that we have to squeeze predictions, labels, weights so they are all # N element vectors (otherwise some of them might be N x 1 tensors, and # multiplying a N element vector with a N x 1 tensor uses matrix # multiplication rather than element-wise multiplication). predictions, labels = self._get_labels_and_predictions( predictions_dict, labels_dict) prediction_tensor = _flatten_to_one_dim(tf.cast(predictions, tf.float64)) label_tensor = _flatten_to_one_dim(tf.cast(labels, tf.float64)) squeezed_weights = tf.ones_like(prediction_tensor) if self._example_weight_key: squeezed_weights = _flatten_to_one_dim( tf.cast(features_dict[self._example_weight_key], tf.float64)) prediction_tensor, label_tensor, squeezed_weights = ( _create_predictions_labels_weights_for_fractional_labels( prediction_tensor, label_tensor, squeezed_weights)) # TODO(b/72239826): Expose _confusion_matrix_at_thresholds for OSS? values, update_ops = metrics_impl._confusion_matrix_at_thresholds( # pylint: disable=protected-access label_tensor, prediction_tensor, self._thresholds, squeezed_weights) values['precision'] = math.divide_no_nan(values['tp'], (values['tp'] + values['fp'])) values['recall'] = math.divide_no_nan(values['tp'], (values['tp'] + values['fn'])) return (values, update_ops) # pytype: disable=bad-return-type