class_docstr: Hyperprior architecture (probability model).
class_docstr_tok: ["Hyperprior","architecture","(","probability","model",")","."]
code: def __init__(
      self, num_chan_bottleneck=220, num_filters=320, name="Hyperprior"
  ):
      super(Hyperprior, self).__init__(name=name)
  
      self._num_chan_bottleneck = num_chan_bottleneck
      self._num_filters = num_filters
      self._analysis = tf.keras.Sequential(
          [
              tfc.SignalConv2D(
                  num_filters,
                  (3, 3),
                  name=f"layer_{name}_0",
                  corr=True,
                  padding="same_zeros",
                  use_bias=True,
                  activation=tf.nn.relu,
              ),
              tfc.SignalConv2D(
                  num_filters,
                  (5, 5),
                  name=f"layer_{name}_1",
                  corr=True,
                  strides_down=2,
                  padding="same_zeros",
                  use_bias=True,
                  activation=tf.nn.relu,
              ),
              tfc.SignalConv2D(
                  num_filters,
                  (5, 5),
                  name=f"layer_{name}_2",
                  corr=True,
                  strides_down=2,
                  padding="same_zeros",
                  use_bias=True,
                  activation=None,
              ),
          ],
          name="HyperAnalysis",
      )
  
      def _make_synthesis(syn_name):
          return tf.keras.Sequential(
              [
                  tfc.SignalConv2D(
                      num_filters,
                      (5, 5),
                      name=f"layer_{syn_name}_0",
                      corr=False,
                      strides_up=2,
                      padding="same_zeros",
                      use_bias=True,
                      kernel_parameterizer=None,
                      activation=tf.nn.relu,
                  ),
                  tfc.SignalConv2D(
                      num_filters,
                      (5, 5),
                      name=f"layer_{syn_name}_1",
                      corr=False,
                      strides_up=2,
                      padding="same_zeros",
                      use_bias=True,
                      kernel_parameterizer=None,
                      activation=tf.nn.relu,
                  ),
                  tfc.SignalConv2D(
                      num_chan_bottleneck,
                      (3, 3),
                      name=f"layer_{syn_name}_2",
                      corr=False,
                      padding="same_zeros",
                      use_bias=True,
                      kernel_parameterizer=None,
                      activation=None,
                  ),
              ],
              name="HyperSynthesis",
          )
  
      self._synthesis_scale = _make_synthesis("scale")
      self._synthesis_mean = _make_synthesis("mean")
  
      self._side_entropy_model = FactorizedPriorLayer()
  
imports: import collections
  from compare_gan.architectures import abstract_arch
  from compare_gan.architectures import arch_ops
  import numpy
  import tensorflow.compat.v1
  import tensorflow_compression
  from hific.helpers import ModelMode
label_desc: Use image node_id 1 to create a new Hyperprior object from inherited base classes: tf.keras.layers with example: obj = Hyperprior(num_chan_bottleneck, num_filters, name)