mappings {
  frameworkName: "onnx"
  opName: "or"
  inputFrameworkOpName: "Or"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "A"
    inputTensorName: "B"
    outputTensorName: "input"
    outputTensorName: "y"
    inputToOutput {
      key: "input"
      value: "A"
    }
    inputToOutput {
      key: "y"
      value: "B"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Or"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputFloatName: "comparable"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "comparable"
        argType: DOUBLE
      }
    }
    inputFrameworkOpName: "Or"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "reduce_max"
  inputFrameworkOpName: "ReduceMax"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "data"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "data"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "ReduceMax"
  }
  rule {
    ruleName: "invertbooleannumber"
    functionName: "invertbooleannumber"
    inputIntName: "keepdims"
    outputBooleanName: "keepDims"
    inputToOutput {
      key: "keepDims"
      value: "keepdims"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "ReduceMax"
  }
  rule {
    ruleName: "listnumbertolistnumber"
    functionName: "listnumbertolistnumber"
    inputIntName: "axes"
    outputIntName: "dimensions"
    inputToOutput {
      key: "dimensions"
      value: "axes"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "ReduceMax"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "maxpool2d"
  inputFrameworkOpName: "MaxPool"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "X"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "MaxPool"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputIntName: "isNCHW"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "isNCHW"
        argType: INT64
        argIndex: 10
      }
    }
    inputFrameworkOpName: "MaxPool"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputIntName: "extraParam0"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "extraParam0"
        argType: INT64
        argIndex: 9
      }
    }
    inputFrameworkOpName: "MaxPool"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputIntName: "isSameMode"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "isSameMode"
        argType: INT64
        argIndex: 8
      }
    }
    inputFrameworkOpName: "MaxPool"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "dilations"
    inputIntName: "dH"
    inputIntName: "dilations"
    outputIntName: "dH"
    inputToOutput {
      key: "dH"
      value: "dilations"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "dH"
      transformerArgs {
        name: "dilations"
        argType: INT64
        argIndex: 6
      }
      transformerArgs {
        name: "dH"
        int64Value: 1
        argType: INT64
        argIndex: 6
      }
    }
    transformerArgs {
      key: "dH"
      transformerArgs {
        name: "dilations"
        argType: INT64
        argIndex: 6
      }
      transformerArgs {
        name: "dH"
        int64Value: 1
        argType: INT64
        argIndex: 6
      }
    }
    inputFrameworkOpName: "MaxPool"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "dilations"
    inputIntName: "dW"
    inputIntName: "dilations"
    outputIntName: "dW"
    inputToOutput {
      key: "dW"
      value: "dilations"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "dW"
      transformerArgs {
        name: "dilations"
        int64Value: 1
        argType: INT64
        argIndex: 7
      }
      transformerArgs {
        name: "dW"
        int64Value: 1
        argType: INT64
        argIndex: 7
      }
    }
    transformerArgs {
      key: "dW"
      transformerArgs {
        name: "dilations"
        int64Value: 1
        argType: INT64
        argIndex: 7
      }
      transformerArgs {
        name: "dW"
        int64Value: 1
        argType: INT64
        argIndex: 7
      }
    }
    inputFrameworkOpName: "MaxPool"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "pads"
    inputIntName: "pads"
    inputIntName: "pads"
    outputIntName: "pH"
    inputToOutput {
      key: "pH"
      value: "pads"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "pH"
      transformerArgs {
        name: "pads"
        int64Value: 2
        argType: INT64
        argIndex: 4
      }
      transformerArgs {
        name: "pads"
        argType: INT64
        argIndex: 4
      }
    }
    transformerArgs {
      key: "pH"
      transformerArgs {
        name: "pads"
        int64Value: 2
        argType: INT64
        argIndex: 4
      }
      transformerArgs {
        name: "pads"
        argType: INT64
        argIndex: 4
      }
    }
    inputFrameworkOpName: "MaxPool"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "pads"
    inputIntName: "pads"
    inputIntName: "pads"
    outputIntName: "pW"
    inputToOutput {
      key: "pW"
      value: "pads"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "pW"
      transformerArgs {
        name: "pads"
        int64Value: 3
        argType: INT64
        argIndex: 5
      }
      transformerArgs {
        name: "pads"
        argType: INT64
        argIndex: 5
      }
    }
    transformerArgs {
      key: "pW"
      transformerArgs {
        name: "pads"
        int64Value: 3
        argType: INT64
        argIndex: 5
      }
      transformerArgs {
        name: "pads"
        argType: INT64
        argIndex: 5
      }
    }
    inputFrameworkOpName: "MaxPool"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "strides"
    inputIntName: "sH"
    inputIntName: "strides"
    outputIntName: "sH"
    inputToOutput {
      key: "sH"
      value: "strides"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "sH"
      transformerArgs {
        name: "strides"
        argType: INT64
        argIndex: 2
      }
      transformerArgs {
        name: "sH"
        int64Value: 1
        argType: INT64
        argIndex: 6
      }
    }
    transformerArgs {
      key: "sH"
      transformerArgs {
        name: "strides"
        argType: INT64
        argIndex: 2
      }
      transformerArgs {
        name: "sH"
        int64Value: 1
        argType: INT64
        argIndex: 6
      }
    }
    inputFrameworkOpName: "MaxPool"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "strides"
    inputIntName: "sW"
    inputIntName: "strides"
    outputIntName: "sW"
    inputToOutput {
      key: "sW"
      value: "strides"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "sW"
      transformerArgs {
        name: "strides"
        int64Value: 1
        argType: INT64
        argIndex: 3
      }
      transformerArgs {
        name: "sW"
        int64Value: 1
        argType: INT64
        argIndex: 7
      }
    }
    transformerArgs {
      key: "sW"
      transformerArgs {
        name: "strides"
        int64Value: 1
        argType: INT64
        argIndex: 3
      }
      transformerArgs {
        name: "sW"
        int64Value: 1
        argType: INT64
        argIndex: 7
      }
    }
    inputFrameworkOpName: "MaxPool"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "kernel_shape"
    inputIntName: "kernel_shape"
    outputIntName: "kH"
    inputToOutput {
      key: "kH"
      value: "kernel_shape"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "kH"
      transformerArgs {
        name: "kernel_shape"
        argType: INT64
      }
    }
    inputFrameworkOpName: "MaxPool"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "kernel_shape"
    inputIntName: "kernel_shape"
    outputIntName: "kW"
    inputToOutput {
      key: "kW"
      value: "kernel_shape"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "kW"
      transformerArgs {
        name: "kernel_shape"
        int64Value: 1
        argType: INT64
        argIndex: 1
      }
    }
    inputFrameworkOpName: "MaxPool"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "size"
  inputFrameworkOpName: "Size"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "data"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "data"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Size"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "isinf"
  inputFrameworkOpName: "IsInf"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "X"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "IsInf"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "IsInf"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "Unsqueeze"
}
mappings {
  frameworkName: "onnx"
  opName: "equals"
  inputFrameworkOpName: "Equal"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "A"
    inputTensorName: "B"
    outputTensorName: "input"
    outputTensorName: "y"
    inputToOutput {
      key: "input"
      value: "A"
    }
    inputToOutput {
      key: "y"
      value: "B"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Equal"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Equal"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "reduce_min"
  inputFrameworkOpName: "ReduceMin"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "data"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "data"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "ReduceMin"
  }
  rule {
    ruleName: "invertbooleannumber"
    functionName: "invertbooleannumber"
    inputIntName: "keepdims"
    outputBooleanName: "keepDims"
    inputToOutput {
      key: "keepDims"
      value: "keepdims"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "ReduceMin"
  }
  rule {
    ruleName: "listnumbertolistnumber"
    functionName: "listnumbertolistnumber"
    inputIntName: "axes"
    outputIntName: "dimensions"
    inputToOutput {
      key: "dimensions"
      value: "axes"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "ReduceMin"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "squeeze"
  inputFrameworkOpName: "Squeeze"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "data"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "data"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Squeeze"
  }
  rule {
    ruleName: "ndarraytointattributevalue"
    functionName: "ndarraytointattributevalue"
    outputIntName: "_a"
    inputToOutput {
      key: "_a"
      value: "axes"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "Squeeze"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "identity"
  inputFrameworkOpName: "Identity"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "input"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Identity"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Identity"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "reduce_sum"
  inputFrameworkOpName: "ReduceSum"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "data"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "data"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "ReduceSum"
  }
  rule {
    ruleName: "invertbooleannumber"
    functionName: "invertbooleannumber"
    inputIntName: "keepdims"
    outputBooleanName: "keepDims"
    inputToOutput {
      key: "keepDims"
      value: "keepdims"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "ReduceSum"
  }
  rule {
    ruleName: "ndarraytointattributevalue"
    functionName: "ndarraytointattributevalue"
    outputIntName: "dimensions"
    inputToOutput {
      key: "dimensions"
      value: "axes"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "ReduceSum"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "tanh"
  inputFrameworkOpName: "Tanh"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "input"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Tanh"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Tanh"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "subtract"
  inputFrameworkOpName: "Sub"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "A"
    inputTensorName: "B"
    outputTensorName: "input"
    outputTensorName: "y"
    inputToOutput {
      key: "input"
      value: "A"
    }
    inputToOutput {
      key: "y"
      value: "B"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Sub"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Sub"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "log"
  inputFrameworkOpName: "Log"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "input"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Log"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Log"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "flatten_2d"
  inputFrameworkOpName: "Flatten"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "input"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Flatten"
  }
  rule {
    ruleName: "valuemapping"
    functionName: "valuemapping"
    inputIntName: "axis"
    outputIntName: "flattenDimension"
    inputToOutput {
      key: "flattenDimension"
      value: "axis"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "Flatten"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "Transpose"
}
mappings {
  frameworkName: "onnx"
  opName: "argmax"
  inputFrameworkOpName: "ArgMax"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "data"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "data"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "ArgMax"
  }
  rule {
    ruleName: "invertbooleannumber"
    functionName: "invertbooleannumber"
    inputIntName: "keepdims"
    outputBooleanName: "keepDims"
    inputToOutput {
      key: "keepDims"
      value: "keepdims"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "ArgMax"
  }
  rule {
    ruleName: "valuemapping"
    functionName: "valuemapping"
    inputIntName: "axis"
    outputIntName: "dimensions"
    inputToOutput {
      key: "dimensions"
      value: "axis"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "ArgMax"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "Min"
}
mappings {
  frameworkName: "onnx"
  opName: "reduce_mean"
  inputFrameworkOpName: "ReduceMean"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "data"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "data"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "ReduceMean"
  }
  rule {
    ruleName: "invertbooleannumber"
    functionName: "invertbooleannumber"
    inputIntName: "keepdims"
    outputBooleanName: "keepDims"
    inputToOutput {
      key: "keepDims"
      value: "keepdims"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "ReduceMean"
  }
  rule {
    ruleName: "listnumbertolistnumber"
    functionName: "listnumbertolistnumber"
    inputIntName: "axes"
    outputIntName: "dimensions"
    inputToOutput {
      key: "dimensions"
      value: "axes"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "ReduceMean"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "Expand"
}
mappings {
  frameworkName: "onnx"
  opName: "softmax"
  inputFrameworkOpName: "Softmax"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "input"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Softmax"
  }
  rule {
    ruleName: "valuemapping"
    functionName: "valuemapping"
    inputIntName: "axis"
    outputIntName: "dimension"
    inputToOutput {
      key: "dimension"
      value: "axis"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "Softmax"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Softmax"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "erf"
  inputFrameworkOpName: "Erf"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "input"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Erf"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Erf"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "pow_pairwise"
  inputFrameworkOpName: "Pow"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    inputTensorName: "Y"
    outputTensorName: "input"
    outputTensorName: "y"
    inputToOutput {
      key: "input"
      value: "X"
    }
    inputToOutput {
      key: "y"
      value: "Y"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Pow"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Pow"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "bitwise_xor"
  inputFrameworkOpName: "Xor"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "A"
    inputTensorName: "B"
    outputTensorName: "input"
    outputTensorName: "y"
    inputToOutput {
      key: "input"
      value: "A"
    }
    inputToOutput {
      key: "y"
      value: "B"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Xor"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Xor"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "ceil"
  inputFrameworkOpName: "Ceil"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "X"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Ceil"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Ceil"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "relu"
  inputFrameworkOpName: "Relu"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "X"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Relu"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Relu"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputFloatName: "cutoff"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "cutoff"
        argType: DOUBLE
      }
    }
    inputFrameworkOpName: "Relu"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "GlobalAveragePool"
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "Split"
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "If"
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "NonZero"
}
mappings {
  frameworkName: "onnx"
  opName: "reduce_logsumexp"
  inputFrameworkOpName: "ReduceLogSumExp"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "data"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "data"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "ReduceLogSumExp"
  }
  rule {
    ruleName: "invertbooleannumber"
    functionName: "invertbooleannumber"
    inputIntName: "keepdims"
    outputBooleanName: "keepDims"
    inputToOutput {
      key: "keepDims"
      value: "keepdims"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "ReduceLogSumExp"
  }
  rule {
    ruleName: "valuemapping"
    functionName: "valuemapping"
    inputIntName: "keepdims"
    outputBooleanName: "keepDims"
    inputToOutput {
      key: "keepDims"
      value: "keepdims"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "ReduceLogSumExp"
  }
  rule {
    ruleName: "listnumbertolistnumber"
    functionName: "listnumbertolistnumber"
    inputIntName: "axes"
    outputIntName: "dimensions"
    inputToOutput {
      key: "dimensions"
      value: "axes"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "ReduceLogSumExp"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "Where"
  inputFrameworkOpName: "Where"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "condition"
    inputTensorName: "X"
    inputTensorName: "Y"
    outputTensorName: "condition"
    outputTensorName: "input"
    outputTensorName: "y"
    inputToOutput {
      key: "condition"
      value: "condition"
    }
    inputToOutput {
      key: "input"
      value: "X"
    }
    inputToOutput {
      key: "y"
      value: "Y"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Where"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "Gemm"
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "Cast"
}
mappings {
  frameworkName: "onnx"
  opName: "acosh"
  inputFrameworkOpName: "Acosh"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "input"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Acosh"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Acosh"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "less_equal"
  inputFrameworkOpName: "LessOrEqual"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "A"
    inputTensorName: "B"
    outputTensorName: "input"
    outputTensorName: "y"
    inputToOutput {
      key: "input"
      value: "A"
    }
    inputToOutput {
      key: "y"
      value: "B"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "LessOrEqual"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "LessOrEqual"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "SequenceRemove"
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "Placeholder"
}
mappings {
  frameworkName: "onnx"
  opName: "non_max_suppression_v3"
  inputFrameworkOpName: "NonMaxSuppression"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "boxes"
    inputTensorName: "scores"
    inputTensorName: "max_output_boxes_per_class"
    inputTensorName: "iou_threshold"
    inputTensorName: "score_threshold"
    outputTensorName: "boxes"
    outputTensorName: "scales"
    outputTensorName: "maxOutSize"
    outputTensorName: "iouThreshold"
    outputTensorName: "scoreThreshold"
    inputToOutput {
      key: "boxes"
      value: "boxes"
    }
    inputToOutput {
      key: "iouThreshold"
      value: "iou_threshold"
    }
    inputToOutput {
      key: "maxOutSize"
      value: "max_output_boxes_per_class"
    }
    inputToOutput {
      key: "scales"
      value: "scores"
    }
    inputToOutput {
      key: "scoreThreshold"
      value: "score_threshold"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "NonMaxSuppression"
  }
  rule {
    ruleName: "ndarraytointattributevalue"
    functionName: "ndarraytointattributevalue"
    outputIntName: "maxOutputSize"
    inputToOutput {
      key: "maxOutputSize"
      value: "max_output_boxes_per_class"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "NonMaxSuppression"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "shape_of"
  inputFrameworkOpName: "Shape"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "data"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "data"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Shape"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Shape"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "random_normal"
  inputFrameworkOpName: "RandomNormal"
  rule {
    ruleName: "listnumbertondarray"
    functionName: "listnumbertondarray"
    inputIntName: "shape"
    inputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "shape"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "RandomNormal"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "Max"
}
mappings {
  frameworkName: "onnx"
  opName: "hard_sigmoid"
  inputFrameworkOpName: "HardSigmoid"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "X"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "HardSigmoid"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "HardSigmoid"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "SequenceInsert"
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "Clip"
}
mappings {
  frameworkName: "onnx"
  opName: "reduce_norm1"
  inputFrameworkOpName: "ReduceL1"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "data"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "data"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "ReduceL1"
  }
  rule {
    ruleName: "invertbooleannumber"
    functionName: "invertbooleannumber"
    inputIntName: "keepdims"
    outputBooleanName: "keepDims"
    inputToOutput {
      key: "keepDims"
      value: "keepdims"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "ReduceL1"
  }
  rule {
    ruleName: "listnumbertolistnumber"
    functionName: "listnumbertolistnumber"
    inputIntName: "axes"
    outputIntName: "dimensions"
    inputToOutput {
      key: "dimensions"
      value: "axes"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "ReduceL1"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "abs"
  inputFrameworkOpName: "Abs"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "X"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Abs"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Abs"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "reduce_norm2"
  inputFrameworkOpName: "ReduceL2"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "data"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "data"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "ReduceL2"
  }
  rule {
    ruleName: "invertbooleannumber"
    functionName: "invertbooleannumber"
    inputIntName: "keepdims"
    outputBooleanName: "keepDims"
    inputToOutput {
      key: "keepDims"
      value: "keepdims"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "ReduceL2"
  }
  rule {
    ruleName: "listnumbertolistnumber"
    functionName: "listnumbertolistnumber"
    inputIntName: "axes"
    outputIntName: "dimensions"
    inputToOutput {
      key: "dimensions"
      value: "axes"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "ReduceL2"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "selu"
  inputFrameworkOpName: "Selu"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "X"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Selu"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Selu"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "argmin"
  inputFrameworkOpName: "ArgMin"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "data"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "data"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "ArgMin"
  }
  rule {
    ruleName: "invertbooleannumber"
    functionName: "invertbooleannumber"
    inputIntName: "keepdims"
    outputBooleanName: "keepDims"
    inputToOutput {
      key: "keepDims"
      value: "keepdims"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "ArgMin"
  }
  rule {
    ruleName: "valuemapping"
    functionName: "valuemapping"
    inputIntName: "axis"
    outputIntName: "dimensions"
    inputToOutput {
      key: "dimensions"
      value: "axis"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "ArgMin"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "RoiAlign"
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "GlobalMaxPool"
}
mappings {
  frameworkName: "onnx"
  opName: "avgpool2d"
  inputFrameworkOpName: "AveragePool"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "X"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "AveragePool"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputIntName: "isNCHW"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "isNCHW"
        argType: INT64
        argIndex: 10
      }
    }
    inputFrameworkOpName: "AveragePool"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputIntName: "dH"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "dH"
        int64Value: 1
        argType: INT64
        argIndex: 6
      }
    }
    inputFrameworkOpName: "AveragePool"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputIntName: "dW"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "dW"
        int64Value: 1
        argType: INT64
        argIndex: 7
      }
    }
    inputFrameworkOpName: "AveragePool"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputIntName: "extraParam0"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "extraParam0"
        argType: INT64
        argIndex: 9
      }
    }
    inputFrameworkOpName: "AveragePool"
  }
  rule {
    ruleName: "stringcontains"
    functionName: "stringcontains"
    inputStringAttrName: "auto_pad"
    outputIntName: "isSameMode"
    inputFloatName: "auto_pad"
    inputToOutput {
      key: "isSameMode"
      value: "auto_pad"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "isSameMode"
      transformerArgs {
        name: "auto_pad"
        argIndex: 8
        stringValue: "SAME"
      }
    }
    inputFrameworkOpName: "AveragePool"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "pads"
    inputIntName: "pH"
    inputIntName: "pads"
    outputIntName: "pH"
    inputToOutput {
      key: "pH"
      value: "pads"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "pH"
      transformerArgs {
        name: "pads"
        int64Value: 2
        argType: INT64
        argIndex: 4
      }
      transformerArgs {
        name: "pH"
        argType: INT64
        argIndex: 4
      }
    }
    transformerArgs {
      key: "pH"
      transformerArgs {
        name: "pads"
        int64Value: 2
        argType: INT64
        argIndex: 4
      }
      transformerArgs {
        name: "pH"
        argType: INT64
        argIndex: 4
      }
    }
    inputFrameworkOpName: "AveragePool"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "pads"
    inputIntName: "pW"
    inputIntName: "pads"
    outputIntName: "pW"
    inputToOutput {
      key: "pW"
      value: "pads"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "pW"
      transformerArgs {
        name: "pads"
        int64Value: 3
        argType: INT64
        argIndex: 5
      }
      transformerArgs {
        name: "pW"
        argType: INT64
        argIndex: 5
      }
    }
    transformerArgs {
      key: "pW"
      transformerArgs {
        name: "pads"
        int64Value: 3
        argType: INT64
        argIndex: 5
      }
      transformerArgs {
        name: "pW"
        argType: INT64
        argIndex: 5
      }
    }
    inputFrameworkOpName: "AveragePool"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "strides"
    inputIntName: "sH"
    inputIntName: "strides"
    outputIntName: "sH"
    inputToOutput {
      key: "sH"
      value: "strides"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "sH"
      transformerArgs {
        name: "strides"
        argType: INT64
        argIndex: 2
      }
      transformerArgs {
        name: "sH"
        int64Value: 1
        argType: INT64
        argIndex: 2
      }
    }
    transformerArgs {
      key: "sH"
      transformerArgs {
        name: "strides"
        argType: INT64
        argIndex: 2
      }
      transformerArgs {
        name: "sH"
        int64Value: 1
        argType: INT64
        argIndex: 2
      }
    }
    inputFrameworkOpName: "AveragePool"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "strides"
    inputIntName: "sW"
    inputIntName: "strides"
    outputIntName: "sW"
    inputToOutput {
      key: "sW"
      value: "strides"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "sW"
      transformerArgs {
        name: "strides"
        int64Value: 1
        argType: INT64
        argIndex: 3
      }
      transformerArgs {
        name: "sW"
        int64Value: 1
        argType: INT64
        argIndex: 3
      }
    }
    transformerArgs {
      key: "sW"
      transformerArgs {
        name: "strides"
        int64Value: 1
        argType: INT64
        argIndex: 3
      }
      transformerArgs {
        name: "sW"
        int64Value: 1
        argType: INT64
        argIndex: 3
      }
    }
    inputFrameworkOpName: "AveragePool"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "kernel_shape"
    inputIntName: "kernel_shape"
    outputIntName: "kW"
    inputToOutput {
      key: "kW"
      value: "kernel_shape"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "kW"
      transformerArgs {
        name: "kernel_shape"
        int64Value: 1
        argType: INT64
        argIndex: 1
      }
    }
    inputFrameworkOpName: "AveragePool"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "kernel_shape"
    inputIntName: "kernel_shape"
    outputIntName: "kH"
    inputToOutput {
      key: "kH"
      value: "kernel_shape"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "kH"
      transformerArgs {
        name: "kernel_shape"
        argType: INT64
      }
    }
    inputFrameworkOpName: "AveragePool"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "SequenceConstruct"
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "SequenceLength"
}
mappings {
  frameworkName: "onnx"
  opName: "atanh"
  inputFrameworkOpName: "Atanh"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "input"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Atanh"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Atanh"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "lstmLayer"
  inputFrameworkOpName: "LSTM"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    inputTensorName: "W"
    inputTensorName: "R"
    inputTensorName: "P"
    inputTensorName: "B"
    inputTensorName: "sequence_lens"
    inputTensorName: "initial_h"
    inputTensorName: "initial_c"
    outputTensorName: "input"
    outputTensorName: "Wx"
    outputTensorName: "Wr"
    outputTensorName: "Wp"
    outputTensorName: "b"
    outputTensorName: "seqLen"
    outputTensorName: "hI"
    outputTensorName: "cI"
    inputToOutput {
      key: "Wp"
      value: "P"
    }
    inputToOutput {
      key: "Wr"
      value: "R"
    }
    inputToOutput {
      key: "Wx"
      value: "W"
    }
    inputToOutput {
      key: "b"
      value: "B"
    }
    inputToOutput {
      key: "cI"
      value: "initial_c"
    }
    inputToOutput {
      key: "hI"
      value: "initial_h"
    }
    inputToOutput {
      key: "input"
      value: "X"
    }
    inputToOutput {
      key: "seqLen"
      value: "sequence_lens"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "LSTM"
  }
  rule {
    ruleName: "valuemapping"
    functionName: "valuemapping"
    inputFloatName: "clip"
    outputDoubleName: "cellClip"
    inputToOutput {
      key: "cellClip"
      value: "clip"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "LSTM"
  }
  rule {
    ruleName: "stringtoindex"
    functionName: "stringtoindex"
    inputStringAttrName: "direction"
    outputIntName: "directionMode"
    inputFloatName: "directionMode"
    inputFloatName: "directionMode"
    inputFloatName: "directionMode"
    inputToOutput {
      key: "directionMode"
      value: "direction"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "directionMode"
      transformerArgs {
        name: "directionMode"
        argIndex: 1
        stringValue: "forward"
      }
      transformerArgs {
        name: "directionMode"
        argIndex: 1
        stringValue: "reverse"
      }
      transformerArgs {
        name: "directionMode"
        argIndex: 1
        stringValue: "bidirectional"
      }
    }
    transformerArgs {
      key: "directionMode"
      transformerArgs {
        name: "directionMode"
        argIndex: 1
        stringValue: "forward"
      }
      transformerArgs {
        name: "directionMode"
        argIndex: 1
        stringValue: "reverse"
      }
      transformerArgs {
        name: "directionMode"
        argIndex: 1
        stringValue: "bidirectional"
      }
    }
    transformerArgs {
      key: "directionMode"
      transformerArgs {
        name: "directionMode"
        argIndex: 1
        stringValue: "forward"
      }
      transformerArgs {
        name: "directionMode"
        argIndex: 1
        stringValue: "reverse"
      }
      transformerArgs {
        name: "directionMode"
        argIndex: 1
        stringValue: "bidirectional"
      }
    }
    inputFrameworkOpName: "LSTM"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputIntName: "dataFormat"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "dataFormat"
        argType: INT64
      }
    }
    inputFrameworkOpName: "LSTM"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "hasBiases"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "hasBiases"
        boolValue: true
        argType: BOOL
      }
    }
    inputFrameworkOpName: "LSTM"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "hasSeqLen"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "hasSeqLen"
        boolValue: true
        argType: BOOL
        argIndex: 1
      }
    }
    inputFrameworkOpName: "LSTM"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "hasInitH"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "hasInitH"
        boolValue: true
        argType: BOOL
        argIndex: 2
      }
    }
    inputFrameworkOpName: "LSTM"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "hasInitC"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "hasInitC"
        boolValue: true
        argType: BOOL
        argIndex: 3
      }
    }
    inputFrameworkOpName: "LSTM"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "hasPH"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "hasPH"
        boolValue: true
        argType: BOOL
        argIndex: 4
      }
    }
    inputFrameworkOpName: "LSTM"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "retFullSeq"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "retFullSeq"
        boolValue: true
        argType: BOOL
        argIndex: 5
      }
    }
    inputFrameworkOpName: "LSTM"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "retLastH"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "retLastH"
        boolValue: true
        argType: BOOL
        argIndex: 6
      }
    }
    inputFrameworkOpName: "LSTM"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "retLastC"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "retLastC"
        boolValue: true
        argType: BOOL
        argIndex: 7
      }
    }
    inputFrameworkOpName: "LSTM"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "activation_alpha"
    inputFloatName: "activation_alpha"
    outputDoubleName: "gateAlpha"
    inputToOutput {
      key: "gateAlpha"
      value: "activation_alpha"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "gateAlpha"
      transformerArgs {
        name: "activation_alpha"
        argType: INT64
        argIndex: 1
      }
    }
    inputFrameworkOpName: "LSTM"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "activation_alpha"
    inputFloatName: "activation_alpha"
    outputDoubleName: "cellAlpha"
    inputToOutput {
      key: "cellAlpha"
      value: "activation_alpha"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "cellAlpha"
      transformerArgs {
        name: "activation_alpha"
        int64Value: 1
        argType: INT64
        argIndex: 3
      }
    }
    inputFrameworkOpName: "LSTM"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "activation_alpha"
    inputFloatName: "activation_alpha"
    outputDoubleName: "outAlpha"
    inputToOutput {
      key: "outAlpha"
      value: "activation_alpha"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "outAlpha"
      transformerArgs {
        name: "activation_alpha"
        int64Value: 2
        argType: INT64
        argIndex: 5
      }
    }
    inputFrameworkOpName: "LSTM"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "activation_beta"
    inputFloatName: "activation_beta"
    outputDoubleName: "gateBeta"
    inputToOutput {
      key: "gateBeta"
      value: "activation_beta"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "gateBeta"
      transformerArgs {
        name: "activation_beta"
        argType: INT64
        argIndex: 2
      }
    }
    inputFrameworkOpName: "LSTM"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "activation_beta"
    inputFloatName: "activation_beta"
    outputDoubleName: "cellBeta"
    inputToOutput {
      key: "cellBeta"
      value: "activation_beta"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "cellBeta"
      transformerArgs {
        name: "activation_beta"
        int64Value: 1
        argType: INT64
        argIndex: 4
      }
    }
    inputFrameworkOpName: "LSTM"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "activation_beta"
    inputFloatName: "activation_beta"
    outputDoubleName: "outBeta"
    inputToOutput {
      key: "outBeta"
      value: "activation_beta"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "outBeta"
      transformerArgs {
        name: "activation_beta"
        int64Value: 2
        argType: INT64
        argIndex: 6
      }
    }
    inputFrameworkOpName: "LSTM"
  }
  rule {
    ruleName: "mapstringtoindex"
    functionName: "mapstringtoindex"
    inputStringAttrName: "activations"
    outputIntName: "gateAct"
    inputFloatName: "Relu"
    inputFloatName: "Tanh"
    inputFloatName: "Sigmoid"
    inputFloatName: "Affine"
    inputFloatName: "LeakyRelu"
    inputFloatName: "ThresholdedRelu"
    inputFloatName: "ScaledTanh"
    inputFloatName: "HardSigmoid"
    inputFloatName: "Elu"
    inputFloatName: "Softsign"
    inputFloatName: "Softplus"
    inputFloatName: "index"
    inputToOutput {
      key: "gateAct"
      value: "activations"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "gateAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 2
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 2
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 2
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 2
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 2
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 2
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 2
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 2
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 2
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 2
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 2
      }
    }
    transformerArgs {
      key: "gateAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 2
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 2
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 2
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 2
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 2
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 2
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 2
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 2
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 2
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 2
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 2
      }
    }
    transformerArgs {
      key: "gateAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 2
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 2
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 2
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 2
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 2
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 2
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 2
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 2
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 2
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 2
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 2
      }
    }
    transformerArgs {
      key: "gateAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 2
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 2
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 2
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 2
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 2
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 2
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 2
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 2
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 2
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 2
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 2
      }
    }
    transformerArgs {
      key: "gateAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 2
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 2
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 2
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 2
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 2
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 2
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 2
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 2
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 2
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 2
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 2
      }
    }
    transformerArgs {
      key: "gateAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 2
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 2
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 2
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 2
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 2
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 2
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 2
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 2
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 2
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 2
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 2
      }
    }
    transformerArgs {
      key: "gateAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 2
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 2
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 2
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 2
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 2
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 2
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 2
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 2
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 2
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 2
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 2
      }
    }
    transformerArgs {
      key: "gateAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 2
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 2
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 2
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 2
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 2
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 2
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 2
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 2
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 2
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 2
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 2
      }
    }
    transformerArgs {
      key: "gateAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 2
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 2
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 2
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 2
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 2
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 2
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 2
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 2
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 2
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 2
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 2
      }
    }
    transformerArgs {
      key: "gateAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 2
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 2
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 2
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 2
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 2
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 2
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 2
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 2
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 2
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 2
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 2
      }
    }
    transformerArgs {
      key: "gateAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 2
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 2
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 2
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 2
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 2
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 2
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 2
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 2
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 2
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 2
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 2
      }
    }
    transformerArgs {
      key: "index"
      transformerArgs {
        name: "index"
      }
    }
    inputFrameworkOpName: "LSTM"
  }
  rule {
    ruleName: "mapstringtoindex"
    functionName: "mapstringtoindex"
    inputStringAttrName: "activations"
    outputIntName: "cellAct"
    inputFloatName: "Relu"
    inputFloatName: "Tanh"
    inputFloatName: "Sigmoid"
    inputFloatName: "Affine"
    inputFloatName: "LeakyRelu"
    inputFloatName: "ThresholdedRelu"
    inputFloatName: "ScaledTanh"
    inputFloatName: "HardSigmoid"
    inputFloatName: "Elu"
    inputFloatName: "Softsign"
    inputFloatName: "Softplus"
    inputFloatName: "index"
    inputToOutput {
      key: "cellAct"
      value: "activations"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "cellAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 3
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 3
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 3
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 3
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 3
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 3
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 3
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 3
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 3
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 3
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 3
      }
    }
    transformerArgs {
      key: "cellAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 3
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 3
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 3
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 3
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 3
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 3
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 3
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 3
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 3
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 3
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 3
      }
    }
    transformerArgs {
      key: "cellAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 3
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 3
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 3
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 3
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 3
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 3
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 3
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 3
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 3
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 3
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 3
      }
    }
    transformerArgs {
      key: "cellAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 3
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 3
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 3
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 3
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 3
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 3
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 3
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 3
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 3
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 3
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 3
      }
    }
    transformerArgs {
      key: "cellAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 3
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 3
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 3
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 3
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 3
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 3
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 3
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 3
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 3
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 3
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 3
      }
    }
    transformerArgs {
      key: "cellAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 3
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 3
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 3
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 3
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 3
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 3
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 3
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 3
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 3
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 3
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 3
      }
    }
    transformerArgs {
      key: "cellAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 3
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 3
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 3
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 3
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 3
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 3
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 3
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 3
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 3
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 3
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 3
      }
    }
    transformerArgs {
      key: "cellAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 3
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 3
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 3
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 3
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 3
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 3
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 3
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 3
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 3
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 3
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 3
      }
    }
    transformerArgs {
      key: "cellAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 3
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 3
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 3
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 3
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 3
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 3
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 3
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 3
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 3
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 3
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 3
      }
    }
    transformerArgs {
      key: "cellAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 3
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 3
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 3
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 3
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 3
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 3
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 3
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 3
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 3
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 3
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 3
      }
    }
    transformerArgs {
      key: "cellAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 3
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 3
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 3
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 3
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 3
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 3
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 3
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 3
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 3
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 3
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 3
      }
    }
    transformerArgs {
      key: "index"
      transformerArgs {
        name: "index"
        int64Value: 1
      }
    }
    inputFrameworkOpName: "LSTM"
  }
  rule {
    ruleName: "mapstringtoindex"
    functionName: "mapstringtoindex"
    inputStringAttrName: "activations"
    outputIntName: "outAct"
    inputFloatName: "Relu"
    inputFloatName: "Tanh"
    inputFloatName: "Sigmoid"
    inputFloatName: "Affine"
    inputFloatName: "LeakyRelu"
    inputFloatName: "ThresholdedRelu"
    inputFloatName: "ScaledTanh"
    inputFloatName: "HardSigmoid"
    inputFloatName: "Elu"
    inputFloatName: "Softsign"
    inputFloatName: "Softplus"
    inputFloatName: "index"
    inputToOutput {
      key: "outAct"
      value: "activations"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "outAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 4
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 4
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 4
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 4
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 4
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 4
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 4
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 4
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 4
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 4
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 4
      }
    }
    transformerArgs {
      key: "outAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 4
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 4
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 4
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 4
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 4
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 4
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 4
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 4
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 4
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 4
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 4
      }
    }
    transformerArgs {
      key: "outAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 4
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 4
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 4
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 4
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 4
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 4
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 4
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 4
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 4
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 4
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 4
      }
    }
    transformerArgs {
      key: "outAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 4
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 4
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 4
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 4
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 4
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 4
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 4
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 4
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 4
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 4
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 4
      }
    }
    transformerArgs {
      key: "outAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 4
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 4
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 4
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 4
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 4
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 4
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 4
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 4
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 4
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 4
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 4
      }
    }
    transformerArgs {
      key: "outAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 4
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 4
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 4
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 4
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 4
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 4
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 4
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 4
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 4
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 4
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 4
      }
    }
    transformerArgs {
      key: "outAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 4
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 4
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 4
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 4
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 4
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 4
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 4
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 4
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 4
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 4
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 4
      }
    }
    transformerArgs {
      key: "outAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 4
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 4
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 4
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 4
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 4
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 4
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 4
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 4
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 4
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 4
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 4
      }
    }
    transformerArgs {
      key: "outAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 4
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 4
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 4
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 4
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 4
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 4
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 4
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 4
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 4
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 4
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 4
      }
    }
    transformerArgs {
      key: "outAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 4
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 4
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 4
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 4
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 4
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 4
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 4
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 4
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 4
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 4
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 4
      }
    }
    transformerArgs {
      key: "outAct"
      transformerArgs {
        name: "Relu"
        int64Value: 1
        argIndex: 4
      }
      transformerArgs {
        name: "Tanh"
        argIndex: 4
      }
      transformerArgs {
        name: "Sigmoid"
        int64Value: 2
        argIndex: 4
      }
      transformerArgs {
        name: "Affine"
        int64Value: 3
        argIndex: 4
      }
      transformerArgs {
        name: "LeakyRelu"
        int64Value: 4
        argIndex: 4
      }
      transformerArgs {
        name: "ThresholdedRelu"
        int64Value: 5
        argIndex: 4
      }
      transformerArgs {
        name: "ScaledTanh"
        int64Value: 6
        argIndex: 4
      }
      transformerArgs {
        name: "HardSigmoid"
        int64Value: 7
        argIndex: 4
      }
      transformerArgs {
        name: "Elu"
        int64Value: 8
        argIndex: 4
      }
      transformerArgs {
        name: "Softsign"
        int64Value: 9
        argIndex: 4
      }
      transformerArgs {
        name: "Softplus"
        int64Value: 10
        argIndex: 4
      }
    }
    transformerArgs {
      key: "index"
      transformerArgs {
        name: "index"
        int64Value: 2
      }
    }
    inputFrameworkOpName: "LSTM"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "Resize"
}
mappings {
  frameworkName: "onnx"
  opName: "cos"
  inputFrameworkOpName: "Cos"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "input"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Cos"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Cos"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "sqrt"
  inputFrameworkOpName: "Sqrt"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "X"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Sqrt"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Sqrt"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "greater_equal"
  inputFrameworkOpName: "GreaterOrEqual"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "A"
    inputTensorName: "B"
    outputTensorName: "input"
    outputTensorName: "y"
    inputToOutput {
      key: "input"
      value: "A"
    }
    inputToOutput {
      key: "y"
      value: "B"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "GreaterOrEqual"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "GreaterOrEqual"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "isnan"
  inputFrameworkOpName: "IsNaN"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "X"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "IsNaN"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "IsNaN"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "divide"
  inputFrameworkOpName: "Div"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "A"
    inputTensorName: "B"
    outputTensorName: "input"
    outputTensorName: "y"
    inputToOutput {
      key: "input"
      value: "A"
    }
    inputToOutput {
      key: "y"
      value: "B"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Div"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Div"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "neg"
  inputFrameworkOpName: "Neg"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "X"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Neg"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Neg"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "pad"
  inputFrameworkOpName: "Pad"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "data"
    inputTensorName: "pads"
    outputTensorName: "input"
    outputTensorName: "paddings"
    inputToOutput {
      key: "input"
      value: "data"
    }
    inputToOutput {
      key: "paddings"
      value: "pads"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Pad"
  }
  rule {
    ruleName: "stringtoindex"
    functionName: "stringtoindex"
    inputStringAttrName: "mode"
    outputIntName: "mode"
    inputFloatName: "mode"
    inputFloatName: "mode"
    inputFloatName: "mode"
    inputToOutput {
      key: "mode"
      value: "mode"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "mode"
      transformerArgs {
        name: "mode"
        stringValue: "constant"
      }
      transformerArgs {
        name: "mode"
        stringValue: "reflect"
      }
      transformerArgs {
        name: "mode"
        stringValue: "edge"
      }
    }
    transformerArgs {
      key: "mode"
      transformerArgs {
        name: "mode"
        stringValue: "constant"
      }
      transformerArgs {
        name: "mode"
        stringValue: "reflect"
      }
      transformerArgs {
        name: "mode"
        stringValue: "edge"
      }
    }
    transformerArgs {
      key: "mode"
      transformerArgs {
        name: "mode"
        stringValue: "constant"
      }
      transformerArgs {
        name: "mode"
        stringValue: "reflect"
      }
      transformerArgs {
        name: "mode"
        stringValue: "edge"
      }
    }
    inputFrameworkOpName: "Pad"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputFloatName: "padValue"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "padValue"
        argType: DOUBLE
      }
    }
    inputFrameworkOpName: "Pad"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "conv2d"
  inputFrameworkOpName: "Conv"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    inputTensorName: "W"
    inputTensorName: "B"
    outputTensorName: "input"
    outputTensorName: "weights"
    outputTensorName: "bias"
    inputToOutput {
      key: "bias"
      value: "B"
    }
    inputToOutput {
      key: "input"
      value: "X"
    }
    inputToOutput {
      key: "weights"
      value: "W"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Conv"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputIntName: "isNCHW"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "isNCHW"
        argType: INT64
        argIndex: 9
      }
    }
    inputFrameworkOpName: "Conv"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputIntName: "wFormat"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "wFormat"
        int64Value: 1
        argType: INT64
        argIndex: 10
      }
    }
    inputFrameworkOpName: "Conv"
  }
  rule {
    ruleName: "stringequals"
    functionName: "stringequals"
    inputStringAttrName: "auto_pad"
    outputIntName: "isSameMode"
    inputFloatName: "auto_pad"
    inputToOutput {
      key: "isSameMode"
      value: "auto_pad"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "isSameMode"
      transformerArgs {
        name: "auto_pad"
        argIndex: 8
        stringValue: "SAME"
      }
    }
    inputFrameworkOpName: "Conv"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "dilations"
    inputIntName: "dH"
    inputIntName: "dilations"
    outputIntName: "dH"
    inputToOutput {
      key: "dH"
      value: "dilations"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "dH"
      transformerArgs {
        name: "dilations"
        argType: INT64
        argIndex: 6
      }
      transformerArgs {
        name: "dH"
        int64Value: 1
        argType: INT64
        argIndex: 6
      }
    }
    transformerArgs {
      key: "dH"
      transformerArgs {
        name: "dilations"
        argType: INT64
        argIndex: 6
      }
      transformerArgs {
        name: "dH"
        int64Value: 1
        argType: INT64
        argIndex: 6
      }
    }
    inputFrameworkOpName: "Conv"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "dilations"
    inputIntName: "dW"
    inputIntName: "dilations"
    outputIntName: "dW"
    inputToOutput {
      key: "dW"
      value: "dilations"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "dW"
      transformerArgs {
        name: "dilations"
        int64Value: 1
        argType: INT64
        argIndex: 7
      }
      transformerArgs {
        name: "dW"
        int64Value: 1
        argType: INT64
        argIndex: 7
      }
    }
    transformerArgs {
      key: "dW"
      transformerArgs {
        name: "dilations"
        int64Value: 1
        argType: INT64
        argIndex: 7
      }
      transformerArgs {
        name: "dW"
        int64Value: 1
        argType: INT64
        argIndex: 7
      }
    }
    inputFrameworkOpName: "Conv"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "pads"
    inputIntName: "padding"
    inputIntName: "pads"
    outputIntName: "pH"
    inputToOutput {
      key: "pH"
      value: "pads"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "pH"
      transformerArgs {
        name: "pads"
        argType: INT64
        argIndex: 4
      }
      transformerArgs {
        name: "padding"
        argType: INT64
        argIndex: 4
      }
    }
    transformerArgs {
      key: "pH"
      transformerArgs {
        name: "pads"
        argType: INT64
        argIndex: 4
      }
      transformerArgs {
        name: "padding"
        argType: INT64
        argIndex: 4
      }
    }
    inputFrameworkOpName: "Conv"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "pads"
    inputIntName: "padding"
    inputIntName: "pads"
    outputIntName: "pW"
    inputToOutput {
      key: "pW"
      value: "pads"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "pW"
      transformerArgs {
        name: "pads"
        int64Value: 1
        argType: INT64
        argIndex: 5
      }
      transformerArgs {
        name: "padding"
        argType: INT64
        argIndex: 5
      }
    }
    transformerArgs {
      key: "pW"
      transformerArgs {
        name: "pads"
        int64Value: 1
        argType: INT64
        argIndex: 5
      }
      transformerArgs {
        name: "padding"
        argType: INT64
        argIndex: 5
      }
    }
    inputFrameworkOpName: "Conv"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "strides"
    inputIntName: "strides"
    inputIntName: "strides"
    outputIntName: "sH"
    inputToOutput {
      key: "sH"
      value: "strides"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "sH"
      transformerArgs {
        name: "strides"
        argType: INT64
        argIndex: 2
      }
      transformerArgs {
        name: "strides"
        int64Value: 1
        argType: INT64
        argIndex: 2
      }
    }
    transformerArgs {
      key: "sH"
      transformerArgs {
        name: "strides"
        argType: INT64
        argIndex: 2
      }
      transformerArgs {
        name: "strides"
        int64Value: 1
        argType: INT64
        argIndex: 2
      }
    }
    inputFrameworkOpName: "Conv"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "strides"
    inputIntName: "strides"
    inputIntName: "strides"
    outputIntName: "sW"
    inputToOutput {
      key: "sW"
      value: "strides"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "sW"
      transformerArgs {
        name: "strides"
        int64Value: 1
        argType: INT64
        argIndex: 3
      }
      transformerArgs {
        name: "strides"
        int64Value: 1
        argType: INT64
        argIndex: 3
      }
    }
    transformerArgs {
      key: "sW"
      transformerArgs {
        name: "strides"
        int64Value: 1
        argType: INT64
        argIndex: 3
      }
      transformerArgs {
        name: "strides"
        int64Value: 1
        argType: INT64
        argIndex: 3
      }
    }
    inputFrameworkOpName: "Conv"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "kernel_shape"
    inputIntName: "kernel_shape"
    outputIntName: "kW"
    inputToOutput {
      key: "kW"
      value: "kernel_shape"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "kW"
      transformerArgs {
        name: "kernel_shape"
        int64Value: 1
        argType: INT64
      }
    }
    inputFrameworkOpName: "Conv"
  }
  rule {
    ruleName: "listattributevaluelookuptoindex"
    functionName: "listattributevaluelookuptoindex"
    inputIntName: "kernel_shape"
    inputIntName: "kernel_shape"
    outputIntName: "kH"
    inputToOutput {
      key: "kH"
      value: "kernel_shape"
    }
    ruleType: "attribute"
    transformerArgs {
      key: "kH"
      transformerArgs {
        name: "kernel_shape"
        argType: INT64
        argIndex: 1
      }
    }
    inputFrameworkOpName: "Conv"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "softsign"
  inputFrameworkOpName: "Softsign"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "input"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Softsign"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Softsign"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "SequenceErase"
}
mappings {
  frameworkName: "onnx"
  opName: "add"
  inputFrameworkOpName: "Add"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "A"
    inputTensorName: "B"
    outputTensorName: "input"
    outputTensorName: "y"
    inputToOutput {
      key: "input"
      value: "A"
    }
    inputToOutput {
      key: "y"
      value: "B"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Add"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Add"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "tan"
  inputFrameworkOpName: "Tan"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "input"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Tan"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Tan"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "ResizeNearest"
}
mappings {
  frameworkName: "onnx"
  opName: "lrn"
  inputFrameworkOpName: "LRN"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "X"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "LRN"
  }
  rule {
    ruleName: "valuemapping"
    functionName: "valuemapping"
    inputIntName: "size"
    outputIntName: "depth"
    inputFloatName: "alpha"
    inputFloatName: "beta"
    inputFloatName: "bias"
    outputDoubleName: "alpha"
    outputDoubleName: "beta"
    outputDoubleName: "bias"
    inputToOutput {
      key: "alpha"
      value: "alpha"
    }
    inputToOutput {
      key: "beta"
      value: "beta"
    }
    inputToOutput {
      key: "bias"
      value: "bias"
    }
    inputToOutput {
      key: "depth"
      value: "size"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "LRN"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "LRN"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "BatchNormalization"
}
mappings {
  frameworkName: "onnx"
  opName: "elu"
  inputFrameworkOpName: "Elu"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "X"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Elu"
  }
  rule {
    ruleName: "valuemapping"
    functionName: "valuemapping"
    inputFloatName: "alpha"
    outputDoubleName: "alpha"
    inputToOutput {
      key: "alpha"
      value: "alpha"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "Elu"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "concat"
  inputFrameworkOpName: "Concat"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "inputs"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "inputs"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Concat"
  }
  rule {
    ruleName: "valuemapping"
    functionName: "valuemapping"
    inputIntName: "axis"
    outputIntName: "concatDimension"
    inputToOutput {
      key: "concatDimension"
      value: "axis"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "Concat"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "isDynamicAxis"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "isDynamicAxis"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Concat"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "top_k"
  inputFrameworkOpName: "TopK"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "X"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "TopK"
  }
  rule {
    ruleName: "invertbooleannumber"
    functionName: "invertbooleannumber"
    inputIntName: "sorted"
    outputBooleanName: "needSort"
    inputToOutput {
      key: "needSort"
      value: "sorted"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "TopK"
  }
  rule {
    ruleName: "ndarrayinputtonumericalattribute"
    functionName: "ndarrayinputtonumericalattribute"
    outputDoubleName: "k"
    inputToOutput {
      key: "k"
      value: "K"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "TopK"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "matmul"
  inputFrameworkOpName: "MatMul"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "A"
    inputTensorName: "B"
    outputTensorName: "input"
    outputTensorName: "y"
    inputToOutput {
      key: "input"
      value: "A"
    }
    inputToOutput {
      key: "y"
      value: "B"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "MatMul"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "transX"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "transX"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "MatMul"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "transY"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "transY"
        argType: BOOL
        argIndex: 1
      }
    }
    inputFrameworkOpName: "MatMul"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "transZ"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "transZ"
        argType: BOOL
        argIndex: 2
      }
    }
    inputFrameworkOpName: "MatMul"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "transposeX"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "transposeX"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "MatMul"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "transposeY"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "transposeY"
        argType: BOOL
        argIndex: 1
      }
    }
    inputFrameworkOpName: "MatMul"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "transposeZ"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "transposeZ"
        argType: BOOL
        argIndex: 2
      }
    }
    inputFrameworkOpName: "MatMul"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputFloatName: "alpha"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "alpha"
        argType: DOUBLE
      }
    }
    inputFrameworkOpName: "MatMul"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputFloatName: "beta"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "beta"
        doubleValue: 1.0
        argType: DOUBLE
        argIndex: 1
      }
    }
    inputFrameworkOpName: "MatMul"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "sinh"
  inputFrameworkOpName: "Sinh"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "input"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Sinh"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Sinh"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "asinh"
  inputFrameworkOpName: "Asinh"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "input"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Asinh"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Asinh"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "gather_nd"
  inputFrameworkOpName: "GatherND"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "indices"
    inputTensorName: "data"
    outputTensorName: "indices"
    outputTensorName: "input"
    inputToOutput {
      key: "indices"
      value: "indices"
    }
    inputToOutput {
      key: "input"
      value: "data"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "GatherND"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "checkIndices"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "checkIndices"
        boolValue: true
        argType: BOOL
      }
    }
    inputFrameworkOpName: "GatherND"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "AliasWithName"
}
mappings {
  frameworkName: "onnx"
  opName: "less"
  inputFrameworkOpName: "Less"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "A"
    inputTensorName: "B"
    outputTensorName: "input"
    outputTensorName: "y"
    inputToOutput {
      key: "input"
      value: "A"
    }
    inputToOutput {
      key: "y"
      value: "B"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Less"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Less"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "softplus"
  inputFrameworkOpName: "Softplus"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "X"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Softplus"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Softplus"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "reduce_prod"
  inputFrameworkOpName: "ReduceProd"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "data"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "data"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "ReduceProd"
  }
  rule {
    ruleName: "invertbooleannumber"
    functionName: "invertbooleannumber"
    inputIntName: "keepdims"
    outputBooleanName: "keepDims"
    inputToOutput {
      key: "keepDims"
      value: "keepdims"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "ReduceProd"
  }
  rule {
    ruleName: "listnumbertolistnumber"
    functionName: "listnumbertolistnumber"
    inputIntName: "axes"
    outputIntName: "dimensions"
    inputToOutput {
      key: "dimensions"
      value: "axes"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "ReduceProd"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "multiply"
  inputFrameworkOpName: "Mul"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "A"
    inputTensorName: "B"
    outputTensorName: "input"
    outputTensorName: "y"
    inputToOutput {
      key: "input"
      value: "A"
    }
    inputToOutput {
      key: "y"
      value: "B"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Mul"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Mul"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "range"
  inputFrameworkOpName: "Range"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "start"
    inputTensorName: "limit"
    inputTensorName: "delta"
    outputTensorName: "from"
    outputTensorName: "to"
    outputTensorName: "step"
    inputToOutput {
      key: "from"
      value: "start"
    }
    inputToOutput {
      key: "step"
      value: "delta"
    }
    inputToOutput {
      key: "to"
      value: "limit"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Range"
  }
  rule {
    ruleName: "ndarrayinputtonumericalattribute"
    functionName: "ndarrayinputtonumericalattribute"
    outputDoubleName: "from"
    inputToOutput {
      key: "from"
      value: "start"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "Range"
  }
  rule {
    ruleName: "ndarrayinputtonumericalattribute"
    functionName: "ndarrayinputtonumericalattribute"
    outputDoubleName: "to"
    inputToOutput {
      key: "to"
      value: "limit"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "Range"
  }
  rule {
    ruleName: "ndarrayinputtonumericalattribute"
    functionName: "ndarrayinputtonumericalattribute"
    outputDoubleName: "step"
    inputToOutput {
      key: "step"
      value: "delta"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "Range"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "gather"
  inputFrameworkOpName: "Gather"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "indices"
    inputTensorName: "data"
    outputTensorName: "indices"
    outputTensorName: "input"
    inputToOutput {
      key: "indices"
      value: "indices"
    }
    inputToOutput {
      key: "input"
      value: "data"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Gather"
  }
  rule {
    ruleName: "valuemapping"
    functionName: "valuemapping"
    inputIntName: "axis"
    outputIntName: "dimensions"
    inputToOutput {
      key: "dimensions"
      value: "axis"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "Gather"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Gather"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "not"
  inputFrameworkOpName: "Not"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "X"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Not"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputFloatName: "comparable"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "comparable"
        argType: DOUBLE
      }
    }
    inputFrameworkOpName: "Not"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "Reshape"
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "Slice"
}
mappings {
  frameworkName: "onnx"
  opName: "randomuniform"
  inputFrameworkOpName: "RandomUniform"
  rule {
    ruleName: "valuemapping"
    functionName: "valuemapping"
    inputFloatName: "low"
    inputFloatName: "high"
    outputDoubleName: "min"
    outputDoubleName: "max"
    inputToOutput {
      key: "max"
      value: "high"
    }
    inputToOutput {
      key: "min"
      value: "low"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "RandomUniform"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputIntName: "seed"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "seed"
        argType: INT64
      }
    }
    inputFrameworkOpName: "RandomUniform"
  }
  rule {
    ruleName: "listnumbertondarray"
    functionName: "listnumbertondarray"
    inputIntName: "shape"
    inputTensorName: "shape"
    inputToOutput {
      key: "shape"
      value: "shape"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "RandomUniform"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "boolean_and"
  inputFrameworkOpName: "And"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "A"
    inputTensorName: "B"
    outputTensorName: "input"
    outputTensorName: "y"
    inputToOutput {
      key: "input"
      value: "A"
    }
    inputToOutput {
      key: "y"
      value: "B"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "And"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "leakyrelu"
  inputFrameworkOpName: "LeakyRelu"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "X"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "LeakyRelu"
  }
  rule {
    ruleName: "valuemapping"
    functionName: "valuemapping"
    inputFloatName: "alpha"
    outputDoubleName: "alpha"
    inputToOutput {
      key: "alpha"
      value: "alpha"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "LeakyRelu"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "LeakyRelu"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "acos"
  inputFrameworkOpName: "Acos"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "input"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Acos"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Acos"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "sin"
  inputFrameworkOpName: "Sin"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "input"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Sin"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Sin"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "cosh"
  inputFrameworkOpName: "Cosh"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "input"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Cosh"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Cosh"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "log_softmax"
  inputFrameworkOpName: "LogSoftmax"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "input"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "LogSoftmax"
  }
  rule {
    ruleName: "valuemapping"
    functionName: "valuemapping"
    inputIntName: "axis"
    outputIntName: "dimension"
    inputToOutput {
      key: "dimension"
      value: "axis"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "LogSoftmax"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "Constant"
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "CumSum"
}
mappings {
  frameworkName: "onnx"
  opName: "scatter_update"
  inputFrameworkOpName: "ScatterElements"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "data"
    inputTensorName: "updates"
    inputTensorName: "indices"
    outputTensorName: "operand"
    outputTensorName: "updates"
    outputTensorName: "indices"
    inputToOutput {
      key: "indices"
      value: "indices"
    }
    inputToOutput {
      key: "operand"
      value: "data"
    }
    inputToOutput {
      key: "updates"
      value: "updates"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "ScatterElements"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "GRU"
}
mappings {
  frameworkName: "onnx"
  opName: "scatter_nd"
  inputFrameworkOpName: "ScatterND"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "indices"
    inputTensorName: "updates"
    inputTensorName: "data"
    outputTensorName: "indices"
    outputTensorName: "updates"
    outputTensorName: "shape"
    inputToOutput {
      key: "indices"
      value: "indices"
    }
    inputToOutput {
      key: "shape"
      value: "data"
    }
    inputToOutput {
      key: "updates"
      value: "updates"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "ScatterND"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "ConstantOfShape"
}
mappings {
  frameworkName: "onnx"
  opName: "round"
  inputFrameworkOpName: "Round"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "X"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Round"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Round"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "SequenceEmpty"
}
mappings {
  frameworkName: "onnx"
  opName: "sigmoid"
  inputFrameworkOpName: "Sigmoid"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "X"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Sigmoid"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Sigmoid"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "Dropout"
}
mappings {
  frameworkName: "onnx"
  opName: "atan"
  inputFrameworkOpName: "Atan"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "input"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Atan"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Atan"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "Loop"
}
mappings {
  frameworkName: "onnx"
  opName: "floor"
  inputFrameworkOpName: "Floor"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "X"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Floor"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Floor"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "PRelu"
}
mappings {
  frameworkName: "onnx"
  opName: "mod"
  inputFrameworkOpName: "Mod"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "A"
    inputTensorName: "B"
    outputTensorName: "input"
    outputTensorName: "y"
    inputToOutput {
      key: "input"
      value: "A"
    }
    inputToOutput {
      key: "y"
      value: "B"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Mod"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Mod"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "asin"
  inputFrameworkOpName: "Asin"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "input"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Asin"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Asin"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "space_to_depth"
  inputFrameworkOpName: "SpaceToDepth"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "input"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "SpaceToDepth"
  }
  rule {
    ruleName: "valuemapping"
    functionName: "valuemapping"
    inputIntName: "blocksize"
    outputIntName: "block_size"
    inputToOutput {
      key: "block_size"
      value: "blocksize"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "SpaceToDepth"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputIntName: "isNHWC"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "isNHWC"
        int64Value: 1
        argType: INT64
        argIndex: 1
      }
    }
    inputFrameworkOpName: "SpaceToDepth"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "tile"
  inputFrameworkOpName: "Tile"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    inputTensorName: "repeats"
    outputTensorName: "input"
    outputTensorName: "reps_vector"
    inputToOutput {
      key: "input"
      value: "input"
    }
    inputToOutput {
      key: "reps_vector"
      value: "repeats"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Tile"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "is_static_reps"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "is_static_reps"
        boolValue: true
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Tile"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputIntName: "dimensions"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "dimensions"
        argType: INT64
      }
    }
    inputFrameworkOpName: "Tile"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "depth_to_space"
  inputFrameworkOpName: "DepthToSpace"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "input"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "DepthToSpace"
  }
  rule {
    ruleName: "valuemapping"
    functionName: "valuemapping"
    inputIntName: "blocksize"
    outputIntName: "block_size"
    inputToOutput {
      key: "block_size"
      value: "blocksize"
    }
    ruleType: "attribute"
    inputFrameworkOpName: "DepthToSpace"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputIntName: "isNHWC"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "isNHWC"
        int64Value: 1
        argType: INT64
        argIndex: 1
      }
    }
    inputFrameworkOpName: "DepthToSpace"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "matrix_determinant"
  inputFrameworkOpName: "Det"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "X"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "X"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Det"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Det"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "noop"
  inputFrameworkOpName: "SequenceAt"
}
mappings {
  frameworkName: "onnx"
  opName: "greater"
  inputFrameworkOpName: "Greater"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "A"
    inputTensorName: "B"
    outputTensorName: "input"
    outputTensorName: "y"
    inputToOutput {
      key: "input"
      value: "A"
    }
    inputToOutput {
      key: "y"
      value: "B"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Greater"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Greater"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "sign"
  inputFrameworkOpName: "Sign"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "input"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Sign"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Sign"
  }
}
mappings {
  frameworkName: "onnx"
  opName: "exp"
  inputFrameworkOpName: "Exp"
  rule {
    ruleName: "ndarraymapping"
    functionName: "ndarraymapping"
    inputTensorName: "input"
    outputTensorName: "input"
    inputToOutput {
      key: "input"
      value: "input"
    }
    ruleType: "tensor"
    inputFrameworkOpName: "Exp"
  }
  rule {
    ruleName: "argdescriptorconstant"
    functionName: "argdescriptorconstant"
    inputBooleanName: "inPlace"
    ruleType: "attribute"
    transformerArgs {
      key: "value"
      transformerArgs {
        name: "inPlace"
        argType: BOOL
      }
    }
    inputFrameworkOpName: "Exp"
  }
}
