code: def setup_function(self, func):
      try:
          func.function_instance.setup(
              func.variable_inputs, func.variable_outputs
          )
      except:
          logger.critical(
              "An error occurred while setup of function {} (nn.{}) in network {}".format(
                  func.name, func.function_instance.name, self.name
              )
          )
          logger.critical("Input variables:")
          for v in func.inputs:
              logger.critical(
                  "  {} (shape: {}, design_shape: {})".format(
                      v.name,
                      str(v.variable_instance.shape),
                      str(v.shape),
                  )
              )
          logger.critical("Output variables:")
          for v in func.outputs:
              logger.critical(
                  "  {} (shape: {}, design_shape: {})".format(
                      v.name,
                      str(v.variable_instance.shape),
                      str(v.shape),
                  )
              )
          raise
  
file_path: nnabla/python/test/core/legacy_network.py
imports: from nnabla.logger import logger
  import nnabla.function
label_desc: Use image node_id 1 for calling the Network obj's underlying member method code with example usage: obj.setup_function(func) without return types