class_docstr: An execution trace of a scheduling program.
  
  A trace has two parts:
  1) The instructions invoked so far
  2) The random decisions made upon those instructions, if any
  
  A trace can be serialized to:
  1) Roundtrippable JSON format: can be saved to file and loaded back
  2) Python syntax: allows users to copy-paste the trace to reproduce the scheduling process
  
  A trace can be applied to a TensorIR schedule by re-applying all its instructions possibly with
  their decisions accordingly. Re-sampling is invoked if a sampling instruction doesn't have its
  corresponding decision; Otherwise the existing decision will be reused accordingly.
  
  Attributes
  ----------
  insts : List[Instruction]
      The instructions invoked so far in the program execution
  decisions : Dict[Instruction, DECISION_TYPE]
      The random decisions made upon those instructions
class_docstr_tok: ["An","execution","trace","of","a","scheduling","program",".","A","trace","has","two","parts",":","1",")","The","instructions","invoked","so","far","2",")","The","random","decisions","made","upon","those","instructions",",","if","any","A","trace","can","be","serialized","to",":","1",")","Roundtrippable","JSON","format",":","can","be","saved","to","file","and","loaded","back","2",")","Python","syntax",":","allows","users","to","copy-paste","the","trace","to","reproduce","the","scheduling","process","A","trace","can","be","applied","to","a","TensorIR","schedule","by","re-applying","all","its","instructions","possibly","with","their","decisions","accordingly",".","Re-sampling","is","invoked","if","a","sampling","instruction","does","n't","have","its","corresponding","decision",";","Otherwise","the","existing","decision","will","be","reused","accordingly",".","Attributes","--","--","--","--","--","insts",":","List","[","Instruction","]","The","instructions","invoked","so","far","in","the","program","execution","decisions",":","Dict","[","Instruction",",","DECISION_TYPE","]","The","random","decisions","made","upon","those","instructions"]
docstr: Constructor
  
  Parameters
  ----------
  insts : List[Instruction]
      The instructions invoked so far in the program execution
  decisions : Dict[Instruction, DECISION_TYPE]
      The random decisions made upon those instructions
docstr_tok: ["Constructor","Parameters","--","--","--","--","--","insts",":","List","[","Instruction","]","The","instructions","invoked","so","far","in","the","program","execution","decisions",":","Dict","[","Instruction",",","DECISION_TYPE","]","The","random","decisions","made","upon","those","instructions"]
code: def __init__(
      self,
      insts: List[Instruction],
      decisions: Dict[Instruction, DECISION_TYPE],
  ) -> None:
      """Constructor
  
      Parameters
      ----------
      insts : List[Instruction]
          The instructions invoked so far in the program execution
      decisions : Dict[Instruction, DECISION_TYPE]
          The random decisions made upon those instructions
      """
      self.__init_handle_by_constructor__(
          _ffi_api.Trace,  # type: ignore # pylint: disable=no-member
          insts,
          decisions,
      )
  
imports: import os
  from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional
  from tvm._ffi import register_object
  from tvm.runtime import Object
  from ...ir import Array, Map, save_json
  from ...runtime import String
  from ..expr import FloatImm, IntImm
  from ..function import IndexMap
  from .None import _ffi_api
  from .instruction import ATTR_TYPE, INPUT_RV_TYPE, Instruction
label_desc: Use image node_id 1 to create a new Trace object from inherited base classes: Object with example: obj = Trace(insts, decisions)