docstr: preprocesses before direct update sparsity
  default action:
      do randomize to node_info.output_origin and store to node_info.output_randomize
      for submodules, randomize and apply masks to module.named_parameters
docstr_tok: ["preprocesses","before","direct","update","sparsity","default","action",":","do","randomize","to","node_info.output_origin","and","store","to","node_info.output_randomize","for","submodules",",","randomize","and","apply","masks","to","module.named_parameters"]
code: def direct_update_preprocess(
      self, model_speedup: "ModelSpeedup", node: Node
  ):
      """
      preprocesses before direct update sparsity
      default action:
          do randomize to node_info.output_origin and store to node_info.output_randomize
          for submodules, randomize and apply masks to module.named_parameters
      """
      raise RuntimeError(
          "direct_update_preprocess method should be overrided!"
      )
  
imports: from __future__ import annotations
  from typing import TYPE_CHECKING, Tuple
  import operator
  import torch
  from torch.nn import functional
  from torch.fx.node import Node
  from torch.utils._pytree import tree_flatten, tree_unflatten
  from .utils import randomize_tensor_inplace, randomize_if_tensor, tree_map_zip, torch_float_dtype, poss_deepcopy
label_desc: Use image node_id 2 for calling the MaskUpdater obj's underlying member method code with example usage: obj.direct_update_preprocess(model_speedup, node) without return types