class_docstr: This uses a reparameterisation of the Beta density. We have the mean of the
  Beta distribution given by the transformed process:
  
      m = invlink(f)
  
  and a scale parameter. The familiar α, β parameters are given by
  
      m     = α / (α + β)
      scale = α + β
  
  so:
      α = scale * m
      β  = scale * (1-m)
class_docstr_tok: ["This","uses","a","reparameterisation","of","the","Beta","density",".","We","have","the","mean","of","the","Beta","distribution","given","by","the","transformed","process",":","m","=","invlink","(","f",")","and","a","scale","parameter",".","The","familiar","\u03b1",",","\u03b2","parameters","are","given","by","m","=","\u03b1","\/","(","\u03b1","+","\u03b2",")","scale","=","\u03b1","+","\u03b2","so",":","\u03b1","=","scale","*","m","\u03b2","=","scale","*","(","1-m",")"]
code: def _scale(self, X: TensorType) -> tf.Tensor:
      return evaluate_parameter_or_function(
          self.scale, X, lower_bound=self.scale_lower_bound
      )
  
imports: from math import sqrt
  from typing import Any, Callable, Optional
  import numpy
  import tensorflow
  from check_shapes import check_shapes, inherit_check_shapes
  from ..None import logdensities
  from ..base import MeanAndVariance, TensorType
  from ..config import default_likelihood_positive_minimum
  from ..utilities.parameter_or_function import ConstantOrFunction, ParameterOrFunction, evaluate_parameter_or_function, prepare_parameter_or_function
  from .base import ScalarLikelihood
  from .utils import inv_probit
label_desc: Use image node_id 2 for calling the Beta obj's underlying member method code with example usage: obj._scale(X) and returns: evaluate_parameter_or_function