class_docstr: Class to search schedules considering both kernel execution time and
  layout transformation time.
  
  Before creating a Graph Executor instance, schedule candidates for all kernels in
  graph should be provided through tensor-level tuning.
class_docstr_tok: ["Class","to","search","schedules","considering","both","kernel","execution","time","and","layout","transformation","time",".","Before","creating","a","Graph","Executor","instance",",","schedule","candidates","for","all","kernels","in","graph","should","be","provided","through","tensor-level","tuning","."]
docstr: Write graph level optimal schedules into file.
  
  Parameters
  ----------
  record_file : str, optional
      Output schedule file.
docstr_tok: ["Write","graph","level","optimal","schedules","into","file",".","Parameters","--","--","--","--","--","record_file",":","str",",","optional","Output","schedule","file","."]
code: def write_opt_sch2record_file(
      self, record_file="graph_opt_schedule.log"
  ):
      """Write graph level optimal schedules into file.
  
      Parameters
      ----------
      record_file : str, optional
          Output schedule file.
      """
      with open(record_file, "a") as out_file:
          records = self.get_optimal_records()
          for record in records:
              out_file.write(encode(record[0], record[1]) + "\n")
      msg = f"Writing optimal schedules to {record_file} successfully."
      self._logger.info(msg)
  
imports: import logging
  from abc import abstractmethod
  import numpy
  from tvm import topi
  import tvm
  from tvm import te
  from tvm import autotvm, relay
  from tvm.autotvm.task import get_config
  from tvm.autotvm.record import encode, load_from_file
  from tvm.autotvm.measure import MeasureResult, MeasureInput
  from tvm.target import Target
  from ...target import Target
  from .utils import is_boundary_node, get_in_nodes, get_out_nodes, has_multiple_inputs, bind_inputs, expr2graph
  from ._base import INVALID_LAYOUT_TIME
  from ._base import OPT_OUT_OP
label_desc: Use image node_id 8 for calling the BaseGraphTuner obj's underlying member method code with example usage: obj.write_opt_sch2record_file(record_file) without return types