class_docstr: This class represents the application logic for evaluating a set of
  results inferred within NiftyNet (or externally generated)
docstr: This function receives all parameters from user config file,
  create an instance of application.
  :param workflow_param: a dictionary of user parameters,
  keys correspond to sections in the config file
  :param data_param: a dictionary of input image parameters,
  keys correspond to data properties to be used by image_reader
  :return:
docstr_tok: ["This","function","receives","all","parameters","from","user","config","file",",","create","an","instance","of","application",".",":","param","workflow_param",":","a","dictionary","of","user","parameters",",","keys","correspond","to","sections","in","the","config","file",":","param","data_param",":","a","dictionary","of","input","image","parameters",",","keys","correspond","to","data","properties","to","be","used","by","image_reader",":","return",":"]
code: def initialise_application(self, workflow_param, data_param):
      """
      This function receives all parameters from user config file,
      create an instance of application.
      :param workflow_param: a dictionary of user parameters,
      keys correspond to sections in the config file
      :param data_param: a dictionary of input image parameters,
      keys correspond to data properties to be used by image_reader
      :return:
      """
      try:
          system_param = workflow_param.get("SYSTEM", None)
          net_param = workflow_param.get("NETWORK", None)
          infer_param = workflow_param.get("INFERENCE", None)
          eval_param = workflow_param.get("EVALUATION", None)
          app_param = workflow_param.get("CUSTOM", None)
      except AttributeError:
          tf.logging.fatal("parameters should be dictionaries")
          raise
      self.num_threads = 1
      # self.num_threads = max(system_param.num_threads, 1)
      # self.num_gpus = system_param.num_gpus
      # set_cuda_device(system_param.cuda_devices)
  
      # set output TF model folders
      self.model_dir = touch_folder(
          os.path.join(system_param.model_dir, "models")
      )
      self.session_prefix = os.path.join(self.model_dir, FILE_PREFIX)
  
      assert infer_param, "inference parameters not specified"
  
      # create an application instance
      assert app_param, "application specific param. not specified"
      self.app_param = app_param
      app_module = ApplicationFactory.create(app_param.name)
      self.app = app_module(net_param, infer_param, system_param.action)
  
      self.eval_param = eval_param
  
      data_param, self.app_param = self.app.add_inferred_output(
          data_param, self.app_param
      )
      # initialise data input
      data_partitioner = ImageSetsPartitioner()
      # clear the cached file lists
      data_partitioner.reset()
      if data_param:
          data_partitioner.initialise(
              data_param=data_param,
              new_partition=False,
              ratios=None,
              data_split_file=system_param.dataset_split_file,
          )
  
      # initialise data input
      self.app.initialise_dataset_loader(
          data_param, self.app_param, data_partitioner
      )
      self.app.initialise_evaluator(eval_param)
  
file_path: NiftyNet/niftynet/evaluation/evaluation_application_driver.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import os
  import time
  import itertools
  import pandas
  import tensorflow
  from niftynet.engine.application_factory import ApplicationFactory
  from niftynet.io.misc_io import touch_folder
  from niftynet.io.image_sets_partitioner import ImageSetsPartitioner
label_desc: Use image node_id 2 for calling the EvaluationApplicationDriver obj's underlying member method code with example usage: obj.initialise_application(workflow_param, data_param) without return types