class_docstr: For some ops that will not produce masks.
class_docstr_tok: ["For","some","ops","that","will","not","produce","masks","."]
docstr: get all input from node_info.output_randomize and execute the node
  calc the out_mask and store to node_info.output_masks
docstr_tok: ["get","all","input","from","node_info.output_randomize","and","execute","the","node","calc","the","out_mask","and","store","to","node_info.output_masks"]
code: def direct_update_process(
      self, model_speedup: "ModelSpeedup", node: Node
  ):
      """
      get all input from node_info.output_randomize and execute the node
      calc the out_mask and store to node_info.output_masks
      """
      with torch.no_grad():
          model_speedup.node_infos[node].output_masks = tree_map_zip(
              lambda t: None,
              model_speedup.node_infos[node].output_origin,
          )
  
      if model_speedup.garbage_collect_values:
          # do memory collect to reduce memory usage
          for to_delete in model_speedup.user_to_last_uses.get(
              node, []
          ):
              del model_speedup.node_infos[to_delete]._output_randomize
  
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 NoMaskUpdater obj's underlying member method code with example usage: obj.direct_update_process(model_speedup, node) without return types