class_docstr: Profiler is a class that profiles the performance of a model within a space.
  
  Unlike the regular profilers, NAS profilers are initialized with a space,
  and are expected to do some pre-computation with the space,
  such that it can quickly computes the performance of a model given a sample within a space.
  
  A profiler can return many things, such as latency, throughput, model size, etc.
  Mostly things that can be computed instantly, or can be computed with a small overhead.
  For metrics that require training, please use :class:`~nni.nas.evaluator.Evaluator` instead.
code: def profile(self, sample: Sample) -> float:
      raise NotImplementedError()
  
file_path: nni/nni/nas/profiler/profiler.py
imports: from __future__ import annotations
  from nni.mutable import Sample
  from nni.mutable.symbol import SymbolicExpression
  from nni.nas.space import BaseModelSpace
label_desc: Use image node_id 2 for calling the Profiler obj's underlying member method code with example usage: obj.profile(sample) without return types