class_docstr: Extends the Layer object to have trainable parameters,
  adding initializers and regularizers.
code: def num_trainable_params(self):
      n = tf.Dimension(0)
      for x in self.trainable_variables():
          n += np.prod(x.get_shape())
      return int(n)
  
imports: from __future__ import absolute_import, print_function
  from abc import ABCMeta, abstractmethod
  import numpy
  import tensorflow
  from six import with_metaclass
  from niftynet.engine.application_variables import RESTORABLE
label_desc: Use image node_id 5 for calling the TrainableLayer obj's underlying member method code with example usage: obj.num_trainable_params() and returns: int