class_docstr: The input value (threshold) at which the output of a a ternary activation
  changes is configurable. This pass extracts that threshold point, inserting
  a BatchNormalization layer to execute the scaling. That BatchNormalization
  layer is then expected to be fused into a BatchNormalizationQuantizedTanh
  layer configured with the correct threshold.
class_docstr_tok: ["The","input","value","(","threshold",")","at","which","the","output","of","a","a","ternary","activation","changes","is","configurable",".","This","pass","extracts","that","threshold","point",",","inserting","a","BatchNormalization","layer","to","execute","the","scaling",".","That","BatchNormalization","layer","is","then","expected","to","be","fused","into","a","BatchNormalizationQuantizedTanh","layer","configured","with","the","correct","threshold","."]
code: def match(self, node):
      return (
          node.class_name == "TernaryTanh"
          and node.get_attr("threshold", None) != 0.5
      )
  
imports: import numpy
  import tensorflow
  from hls4ml.model.layers import BatchNormalization, register_layer
  from hls4ml.model.optimizer import ConfigurableOptimizerPass, OptimizerPass, register_pass
  from hls4ml.model.types import FixedPrecisionType, IntegerPrecisionType, NamedType, QKerasPO2Quantizer
label_desc: Use image node_id 1 for calling the ExtractTernaryThreshold obj's underlying member method code with example usage: obj.match(node) and returns: unknown