code: def function_dump(
      filename,
      inputs,
      outputs=None,
      mode=None,
      updates=None,
      givens=None,
      no_default_updates=False,
      accept_inplace=False,
      name=None,
      rebuild_strict=True,
      allow_input_downcast=None,
      profile=None,
      on_unused_input=None,
      extra_tag_to_remove=None,
  ):
      """
      This is helpful to make a reproducible case for problems during Theano
      compilation.
  
      Ex:
  
      replace `theano.function(...)` by
      `theano.function_dump('filename.pkl', ...)`.
  
      If you see this, you were probably asked to use this function to
      help debug a particular case during the compilation of a Theano
      function. `function_dump` allows you to easily reproduce your
      compilation without generating any code. It pickles all the objects and
      parameters needed to reproduce a call to `theano.function()`. This
      includes shared variables and their values. If you do not want
      that, you can choose to replace shared variables values with zeros by
      calling set_value(...) on them before calling `function_dump`.
  
      To load such a dump and do the compilation:
  
      >>> from six.moves import cPickle
      >>> import theano
      >>> d = cPickle.load(open("func_dump.bin", "rb"))  # doctest: +SKIP
      >>> f = theano.function(**d)  # doctest: +SKIP
  
      Note:
      The parameter `extra_tag_to_remove` is passed to the StripPickler used.
      To pickle graph made by Blocks, it must be:
      `['annotations', 'replacement_of', 'aggregation_scheme', 'roles']`
  
      """
      assert isinstance(filename, string_types)
      d = dict(
          inputs=inputs,
          outputs=outputs,
          mode=mode,
          updates=updates,
          givens=givens,
          no_default_updates=no_default_updates,
          accept_inplace=accept_inplace,
          name=name,
          rebuild_strict=rebuild_strict,
          allow_input_downcast=allow_input_downcast,
          profile=profile,
          on_unused_input=on_unused_input,
      )
      with open(filename, "wb") as f:
          import theano.misc.pkl_utils
  
          pickler = theano.misc.pkl_utils.StripPickler(
              f, protocol=-1, extra_tag_to_remove=extra_tag_to_remove
          )
          pickler.dump(d)
  
file_path: Theano/theano/compile/function.py
imports: from __future__ import absolute_import, print_function, division
  import logging
  import traceback
  import re
  from six import string_types
  from theano.compile.function_module import orig_function
  from theano.compile.pfunc import pfunc
  import warnings
  from theano import compat
label_desc: Use image node_id 1 for calling a global function with example usage: function_dump(filename, inputs, outputs, mode, updates, givens, no_default_updates, accept_inplace, name, rebuild_strict, allow_input_downcast, profile, on_unused_input, extra_tag_to_remove) without return types