docstr: ``y = a * relu(-1 * x) + relu(x)``
  
  When ``x`` is rank 4, and ``a`` is of shape ``(1, C, 1, 1)`` or ``(C, 1, 1)``,
  this is equivalent to ``prelu`` with ``alpha = -a.flatten()``.
docstr_tok: ["``","y","=","a","*","relu","(","-1","*","x",")","+","relu","(","x",")","``","When","``","x","``","is","rank","4",",","and","``","a","``","is","of","shape","``","(","1",",","C",",","1",",","1",")","``","or","``","(","C",",","1",",","1",")","``",",","this","is","equivalent","to","``","prelu","``","with","``","alpha","=","-a.flatten","(",")","``","."]
code: def get_prelu_pattern():
      """
      ``y = a * relu(-1 * x) + relu(x)``
  
      When ``x`` is rank 4, and ``a`` is of shape ``(1, C, 1, 1)`` or ``(C, 1, 1)``,
      this is equivalent to ``prelu`` with ``alpha = -a.flatten()``.
      """
  
      @mb.program(
          input_specs=[
              mb.TensorSpec(
                  shape=(
                      [
                          get_new_symbol(),
                          get_new_symbol(),
                          get_new_symbol(),
                          get_new_symbol(),
                      ]
                  )
              ),
          ]
      )
      def prelu_pattern(x):
          return fuse_prelu._prelu_pattern(x)
  
      return prelu_pattern
  
imports: import numpy
  from coremltools.converters.mil.experimental.passes.generic_pass_infrastructure import fuse_all_blocks
  from coremltools.converters.mil.mil import Builder
  from coremltools.converters.mil.mil import get_new_symbol
  from coremltools.converters.mil.mil.passes.graph_pass import AbstractGraphPass
  from coremltools.converters.mil.mil.passes.helper import _check_child_op_type, _check_var_scalar_value, _check_var_scalar_value_in_interval, block_context_manager
  from coremltools.converters.mil.mil.passes.pass_registry import register_pass
label_desc: Use image node_id 3 for calling the FusePreluPattern1 obj's underlying member method code with example usage: obj.get_prelu_pattern() and returns: prelu_pattern, fuse_prelu