class_docstr: Fuses 3 operators reshape->transpose->reshape which is equivalent to
  pytorch's pixel_shuffle layer
class_docstr_tok: ["Fuses","3","operators","reshape-",">","transpose-",">","reshape","which","is","equivalent","to","pytorch","'s","pixel_shuffle","layer"]
code: def is_eligible(
      self, graph, nodes
  ):  # type: (Graph, Sequence[Node]) -> bool
      if nodes[0].op_type != "Reshape":
          return False
      if nodes[1].op_type != "Transpose":
          return False
      if nodes[2].op_type != "Reshape":
          return False
      if nodes[0].inputs[1] not in nodes[0].input_tensors:
          return False
      if nodes[2].inputs[1] not in nodes[2].input_tensors:
          return False
  
      shape = nodes[0].input_tensors[nodes[0].inputs[1]]
      if len(shape) != 6:
          return False
      if shape[0] != 1 or shape[2] != shape[3]:
          return False
  
      input_channels = shape[1]
      scale_factor = shape[2]
      input_height = shape[4]
      input_width = shape[5]
  
      if nodes[1].attrs.get("perm", []) != [0, 1, 4, 2, 5, 3]:
          return False
  
      shape = nodes[2].input_tensors[nodes[2].inputs[1]]
      if len(shape) != 4:
          return False
  
      output_channels = shape[1]
      output_height = shape[2]
      output_width = shape[3]
      if input_channels != output_channels:
          return False
      if (input_height * scale_factor) != output_height:
          return False
      if (input_width * scale_factor) != output_width:
          return False
  
      return True
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from __future__ import unicode_literals
  from typing import Sequence, Text, Dict, List
  import numpy
  from onnx import TensorProto
  from ._graph import Graph, Node
label_desc: Use image node_id 2 for calling the PixelShuffleFuser obj's underlying member method code with example usage: obj.is_eligible(graph, nodes) and returns: True, False, False, False, False, False, False, False, False, False, False, False, False