code: def _generate_channel_average_config(self):
      configs = []
      name = self.name
      input_dim = self.descriptors["input"]["dim"]
      input_descriptor = self.descriptors["input"]["final-string"]
      dim = self.config["dim"]
      # choose the scale that makes it an average rather than a sum.
      scale = dim * 1.0 / input_dim
      configs.append(
          "component name={0} type=SumBlockComponent input-dim={1} "
          "output-dim={2} scale={3}".format(name, input_dim, dim, scale)
      )
      configs.append(
          "component-node name={0} component={0} input={1}".format(
              name, input_descriptor
          )
      )
      return configs
  
imports: from __future__ import print_function
  from __future__ import division
  import math
  import re
  import sys
  from libs.nnet3.xconfig.basic_layers import XconfigLayerBase
label_desc: Use image node_id 9 for calling the ChannelAverageLayer obj's underlying member method code with example usage: obj._generate_channel_average_config() and returns: configs