class_docstr: :meth:`MutableEvaluator.freeze` returns a :class:`FrozenEvaluator`,
  which is purely an empty-shell (i.e., symbol and init parameters), and not instantiated.
  
  For the evaluator itself and its parameters, if its constructor is decorated with ``nni.trace``,
  in :attr:`frozen_obj`, it will be a :class:`SerializableObject` that contains the constructor (class / function)
  as well as the arguments that have been used to instantiate the object.
  
  When :meth:`evaluate` is invoked, it instantiates to the full evaluator recursively and execute it.
class_docstr_tok: [":","meth",":","`","MutableEvaluator.freeze","`","returns","a",":","class",":","`","FrozenEvaluator","`",",","which","is","purely","an","empty-shell","(","i.e.",",","symbol","and","init","parameters",")",",","and","not","instantiated",".","For","the","evaluator","itself","and","its","parameters",",","if","its","constructor","is","decorated","with","``","nni.trace","``",",","in",":","attr",":","`","frozen_obj","`",",","it","will","be","a",":","class",":","`","SerializableObject","`","that","contains","the","constructor","(","class","\/","function",")","as","well","as","the","arguments","that","have","been","used","to","instantiate","the","object",".","When",":","meth",":","`","evaluate","`","is","invoked",",","it","instantiates","to","the","full","evaluator","recursively","and","execute","it","."]
code: def _dump(self) -> Any:
      return {
          "trace_symbol": self.trace_symbol,
          "trace_args": self.trace_args,
          "trace_kwargs": self.trace_kwargs,
      }
  
imports: from __future__ import annotations
  import logging
  from contextlib import contextmanager
  from typing import Any, Callable, Iterator, Iterable, Generator, TYPE_CHECKING, cast
  from typing_extensions import Literal
  import nni
  from nni.common.serializer import is_traceable, SerializableObject
  from nni.mutable import Mutable, Sample, LabeledMutable, SampleValidationError
  from nni.mutable.mutable import _mutable_equal
  from nni.runtime.trial_command_channel import TrialCommandChannel, set_default_trial_command_channel, get_default_trial_command_channel
  from nni.typehint import ParameterRecord, TrialMetric, Parameters
label_desc: Use image node_id 7 for calling the FrozenEvaluator obj's underlying member method code with example usage: obj._dump() and returns: dict