code: def linear_transpose(
      input: torch.Tensor,
      weight: torch.Tensor,
      bias: Optional[torch.Tensor],
  ) -> torch.Tensor:
      if bias is None:
          return torch.matmul(weight, input.transpose(-1, -2))
      return torch.matmul(
          weight, input.transpose(-1, -2)
      ) + bias.unsqueeze(-1)
  
imports: import copy
  import logging
  from typing import List, Optional
  import torch
  import torch.nn
  from torch._dynamo.utils import detect_fake_mode
  from torch._utils_internal import print_graph
  from torch.fx.experimental.optimization import matches_module_pattern, replace_node_module
  from torch.fx.passes.shape_prop import ShapeProp
  from torch.nn import functional
  from torch.nn.utils.fusion import fuse_conv_bn_eval, fuse_conv_bn_weights
  from ..None import config
  from ..fx_utils import matches_module_function_pattern
  from ..pattern_matcher import init_once_fakemode, PatternMatcherPass, stable_topological_sort
  from ..utils import is_cpu_device
  from .group_batch_fusion import group_batch_fusion_passes
  from .misc_patterns import numpy_compat_normalization
label_desc: Use image node_id 10 for calling a global function with example usage: linear_transpose(input, weight, bias) and returns: unknown, torch