code: def check_configs(self):
      # Do some basic checking of the configs.  The component-level code does
      # some more thorough checking, but if you set the height-out too small it
      # prints it as a warning, which the user may not see, so at a minimum we
      # want to check for that here.
      height_subsample_out = self.config["height-subsample-out"]
      height_in = self.config["height-in"]
      height_out = self.config["height-out"]
      if height_subsample_out <= 0:
          raise RuntimeError(
              "height-subsample-out has invalid value {0}.".format(
                  height_subsample_out
              )
          )
      # we already checked height-in in set_derived_configs.
      if height_out <= 0:
          raise RuntimeError(
              "height-out has invalid value {0}.".format(height_out)
          )
      if height_out * height_subsample_out > height_in:
          raise RuntimeError(
              "The combination height-in={0}, height-out={1} and "
              "height-subsample-out={2} does not look right "
              "(height-out too large).".format(
                  height_in, height_out, height_subsample_out
              )
          )
      height_offsets = self.config["height-offsets"]
      time_offsets = self.config["time-offsets"]
      required_time_offsets = self.config["required-time-offsets"]
  
      if not "noconv" in self.layer_type.split("-"):
          # only check height-offsets, time-offsets and required-time-offsets if there
          # is actually a convolution in this layer.
          if not self.check_offsets_var(height_offsets):
              raise RuntimeError(
                  "height-offsets={0} is not valid".format(
                      height_offsets
                  )
              )
          if not self.check_offsets_var(time_offsets):
              raise RuntimeError(
                  "time-offsets={0} is not valid".format(time_offsets)
              )
          if (
              required_time_offsets != ""
              and not self.check_offsets_var(required_time_offsets)
          ):
              raise RuntimeError(
                  "required-time-offsets={0} is not valid".format(
                      required_time_offsets
                  )
              )
  
      if height_out * height_subsample_out < height_in - len(
          height_offsets.split(",")
      ):
          raise RuntimeError(
              "The combination height-in={0}, height-out={1} and "
              "height-subsample-out={2} and height-offsets={3} "
              "does not look right (height-out too small)."
          )
  
      if self.config["target-rms"] <= 0.0:
          raise RuntimeError(
              "Config value target-rms={0} is not valid".format(
                  self.config["target_rms"]
              )
          )
  
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 5 for calling the XconfigConvLayer obj's underlying member method code with example usage: obj.check_configs() without return types