code: def layer_op(self, features, noise):
      fake_features = self.g_net(noise)
  
      real_logits = self.d_net(features)
      fake_logits = self.d_net(fake_features)
      return real_logits, fake_logits, fake_features
  
imports: from __future__ import absolute_import, print_function
  import tensorflow
  from niftynet.application.base_application import BaseApplication
  from niftynet.engine.application_factory import ApplicationNetFactory
  from niftynet.engine.application_factory import OptimiserFactory
  from niftynet.engine.application_variables import CONSOLE
  from niftynet.engine.application_variables import TF_SUMMARIES
  from niftynet.engine.sampler_random_vector_v2 import RandomVectorSampler
  from niftynet.layer.convolution import ConvolutionalLayer
  from niftynet.layer.fully_connected import FullyConnectedLayer
  from niftynet.network.base_net import BaseNet
label_desc: Use image node_id 2 for calling the TinyNet obj's underlying member method code with example usage: obj.layer_op(features, noise) and returns: real_logits,  fake_logits,  fake_features