class_docstr: QNN tanh test class
docstr: Test qnn.tanh
docstr_tok: ["Test","qnn.tanh"]
code: def test_qnn_tanh(self, hexagon_session: Session):
      """Test qnn.tanh"""
      data_shape = [256]
      data = relay.var("data", shape=data_shape, dtype="uint8")
  
      op = relay.qnn.tanh(
          data,
          scale=relay.const(0.518),
          zero_point=relay.const(137),
          output_scale=relay.const(0.207),
          output_zero_point=relay.const(128),
      )
      relay_mod = tvm.IRModule.from_expr(op)
  
      inputs = {"data": np.arange(0, 256, 1, dtype="uint8")}
  
      run_and_compare(
          hexagon_session, relay_mod, inputs, rtol=0, atol=0
      )
  
imports: import numpy
  import tvm.testing
  import tvm.topi.testing
  from tvm import relay
  from tvm.contrib.hexagon.session import Session
  from tvm.contrib.hexagon.pytest_plugin import HEXAGON_AOT_LLVM_TARGET
  from tvm.relay.backend import Executor
  from tvm.relay.testing import run_opt_pass, run_infer_type
  from .infrastructure import quantize_np
label_desc: Use image node_id 1 for calling the TestQnnTanh obj's underlying member method code with example usage: obj.test_qnn_tanh(hexagon_session) without return types