def testToScalar(self): self.assertEqual(1, metric_util.to_scalar(np.array([1]))) self.assertEqual(1.0, metric_util.to_scalar(np.array(1.0))) self.assertEqual('string', metric_util.to_scalar(np.array([['string']]))) sparse_tensor = tf.compat.v1.SparseTensorValue( indices=np.array([0]), values=np.array([1]), dense_shape=(1,)) self.assertEqual(1, metric_util.to_scalar(sparse_tensor))
def key_by_query_key(extracts: types.Extracts, query_key: Text) -> Tuple[Text, types.Extracts]: """Extract the query key from the extract and key by that.""" value = metric_util.to_scalar(util.get_by_keys( extracts, [constants.FEATURES_KEY, query_key], optional=True), tensor_name=query_key) if value is None: missing_query_key_counter.inc() return ('', extracts) return ('{}'.format(value), extracts)
def _gain(self, i: metric_types.StandardMetricInputs) -> float: gain = util.get_by_keys(i.features, [self._gain_key]) if gain.size == 1: scalar = metric_util.to_scalar(gain) if scalar is not None: return scalar raise ValueError('expected {} to be scalar, but instead it has size = {}: ' 'value={}, metric_keys={}, ' 'StandardMetricInputs={}'.format(self._gain_key, gain.size, gain, self._metric_keys, i))
def _query( self, i: metric_types.StandardMetricInputs ) -> Optional[Union[float, int, Text]]: return metric_util.to_scalar( util.get_by_keys(i.features, [self._query_key]))