code: def get_parameters(params=None, path="", grad_only=True):
      """Get parameter Variables under the current parameter scope.
  
      Args:
          params (dict): Internal use. User doesn't set it manually.
          path (str): Internal use.  User doesn't set it manually.
          grad_only (bool): Retrieve all parameters under the current scope if
              False, while only parameters with need_grad=True are retrieved
              if True.
  
      Returns:
          dict: {:obj:`str` : :obj:`~nnabla.Variable`}
  
      """
  
      global current_scope
      if params is None:
          params = OrderedDict()
      for k, v in iteritems(current_scope):
          if isinstance(v, dict):
              with parameter_scope(k):
                  params = get_parameters(
                      params,
                      "/".join([path, k]) if path else k,
                      grad_only=grad_only,
                  )
          else:
              assert isinstance(v, nn.Variable)
              if not grad_only or v.need_grad:
                  params["/".join([path, k]) if path else k] = v
      return params
  
imports: from six import iteritems
  from contextlib import contextmanager
  from collections import OrderedDict
  import google.protobuf.text_format
  import numpy
  import os
  import shutil
  import tempfile
  import zipfile
  import nnabla
  from nnabla.logger import logger
  import nnabla.utils.nnabla_pb2
  from nnabla.utils.get_file_handle import get_parameter_file_loader, load_files, FileHandlerContext
  from nnabla.utils.get_file_handle import get_file_handle_save, get_parameter_file_savers, save_files
  import warnings
label_desc: Use image node_id 9 for calling a global function with example usage: get_parameters(params, path, grad_only) and returns: params