code: def _filter_nodes_map(
      nodes_map: Dict[Node, Node]
  ) -> Dict[Node, Node]:
      """
      Return a filtered `nodes_map` returned from the subgraph rewriter.
      The filtered `nodes_map` will contain only nodes that are actually
      matched in the pattern, excluding None or placeholder nodes.
      """
      new_nodes_map: Dict[Node, Node] = {}
      for pattern_node, graph_node in nodes_map.items():
          # bias can be None
          if graph_node is None:
              continue
          # skip pattern placeholder nodes
          if pattern_node.op == "placeholder":
              continue
          new_nodes_map[pattern_node] = graph_node
      return new_nodes_map
  
imports: import dataclasses
  import itertools
  import operator
  from typing import Any, Callable, Dict, List, Tuple, TYPE_CHECKING
  import torch
  from torch.fx import Graph, GraphModule, Node
  from torch.fx.subgraph_rewriter import replace_pattern_with_filters, ReplacedPatterns
  import torch.nn.functional
  from torch.ao.quantization.fx._decomposed import quantized_decomposed_lib
  from torch.ao.quantization.quantizer import DerivedQuantizationSpec, EdgeOrNode, SharedQuantizationSpec, QuantizationSpecBase
  from .utils import _conv1d_bn_example_inputs, _conv2d_bn_example_inputs, _is_conv, _is_bn_node, fold_bn_weights_into_conv_node, get_aten_graph_module
label_desc: Use image node_id 13 for calling a global function with example usage: _filter_nodes_map(nodes_map) and returns: new_nodes_map