class_docstr: A likelihood for doing ordinal regression.
  
  The data are integer values from 0 to k, and the user must specify (k-1)
  'bin edges' which define the points at which the labels switch. Let the bin
  edges be [a₀, a₁, ... aₖ₋₁], then the likelihood is
  
  p(Y=0|F) = ɸ((a₀ - F) / σ)
  p(Y=1|F) = ɸ((a₁ - F) / σ) - ɸ((a₀ - F) / σ)
  p(Y=2|F) = ɸ((a₂ - F) / σ) - ɸ((a₁ - F) / σ)
  ...
  p(Y=K|F) = 1 - ɸ((aₖ₋₁ - F) / σ)
  
  where ɸ is the cumulative density function of a Gaussian (the inverse probit
  function) and σ is a parameter to be learned.
  
  A reference is :cite:t:`chu2005gaussian`.
docstr: A helper function for making predictions. Constructs a probability
  matrix where each row output the probability of the corresponding
  label, and the rows match the entries of F.
  
  Note that a matrix of F values is flattened.
docstr_tok: ["A","helper","function","for","making","predictions",".","Constructs","a","probability","matrix","where","each","row","output","the","probability","of","the","corresponding","label",",","and","the","rows","match","the","entries","of","F.","Note","that","a","matrix","of","F","values","is","flattened","."]
code: def _make_phi(self, F: TensorType) -> tf.Tensor:
      """
      A helper function for making predictions. Constructs a probability
      matrix where each row output the probability of the corresponding
      label, and the rows match the entries of F.
  
      Note that a matrix of F values is flattened.
      """
      scaled_bins_left = tf.concat(
          [self.bin_edges / self.sigma, np.array([np.inf])], 0
      )
      scaled_bins_right = tf.concat(
          [np.array([-np.inf]), self.bin_edges / self.sigma], 0
      )
      return inv_probit(
          scaled_bins_left - tf.reshape(F, (-1, 1)) / self.sigma
      ) - inv_probit(
          scaled_bins_right - tf.reshape(F, (-1, 1)) / self.sigma
      )
  
imports: from typing import Any, Callable
  import numpy
  import tensorflow
  from check_shapes import check_shapes, inherit_check_shapes
  from ..None import logdensities
  from ..base import AnyNDArray, MeanAndVariance, Parameter, TensorType
  from ..config import default_float
  from ..utilities import positive, to_default_int
  from .base import ScalarLikelihood
  from .utils import inv_probit
label_desc: Use image node_id 3 for calling the Ordinal obj's underlying member method code with example usage: obj._make_phi(F) and returns: unknown