code: def save_parameters(path, params=None, extension=None):
      """Save all parameters into a file with the specified format.
  
      Currently hdf5 and protobuf formats are supported.
  
      Args:
        path : path or file object
        params (dict, optional): Parameters to be saved. Dictionary is of a parameter name (:obj:`str`) to :obj:`~nnabla.Variable`.
      """
      if isinstance(path, str):
          _, ext = os.path.splitext(path)
      else:
          ext = extension
      ctx = FileHandlerContext()
      ctx.parameters = (
          get_parameters(grad_only=False) if params is None else params
      )
      file_savers = get_parameter_file_savers()
      supported = save_files(ctx, file_savers, path, ext)
      assert supported, "Only supported {}.".format(
          ",".join(list(file_savers.keys()))
      )
      logger.info("Parameter save ({}): {}".format(ext, path))
  
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 13 for calling a global function with example usage: save_parameters(path, params, extension) without return types