class_docstr: Collect all tf.Tensor object, to be evaluated by tf.Session.run()
  These objects are grouped into::
  
      NETWORK_OUTPUT: to be decoded by an aggregator
      CONSOLE: to be printed on command line
      TF_SUMMARIES: to be added to tensorboard visualisation
docstr: This function checks the dictionary, if the variable needs to
  be averaged over devices, then a reduce_mean node is added to
  the graph.
  This function should be called in
  `ApplicationDriver.create_graph` function
docstr_tok: ["This","function","checks","the","dictionary",",","if","the","variable","needs","to","be","averaged","over","devices",",","then","a","reduce_mean","node","is","added","to","the","graph",".","This","function","should","be","called","in","`","ApplicationDriver.create_graph","`","function"]
code: def finalise_output_op(self):
      """
      This function checks the dictionary, if the variable needs to
      be averaged over devices, then a reduce_mean node is added to
      the graph.
      This function should be called in
      `ApplicationDriver.create_graph` function
      """
      self._average_variables_over_devices(self.console_vars, False)
      self._average_variables_over_devices(self.output_vars, False)
      self._average_variables_over_devices(self.summary_vars, True)
      self._merge_op = tf.summary.merge_all(key=TF_SUMMARIES)
  
imports: from __future__ import absolute_import, print_function
  import tensorflow
  from tensorflow.contrib.framework import list_variables
  from niftynet.io.misc_io import image3_axial, image3_coronal, image3_sagittal, resolve_checkpoint
  from niftynet.utilities import util_common
  from niftynet.utilities.restore_initializer import restore_initializer
label_desc: Use image node_id 5 for calling the OutputsCollector obj's underlying member method code with example usage: obj.finalise_output_op() without return types