You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tvm.apache.org by GitBox <gi...@apache.org> on 2022/09/06 03:22:12 UTC

[GitHub] [tvm] honghuichao opened a new issue, #12707: [Bug] a bug about fake quantize to intege and split op.

honghuichao opened a new issue, #12707:
URL: https://github.com/apache/tvm/issues/12707

   Thanks for participating in the TVM community! We use https://discuss.tvm.ai for any general usage questions and discussions. The issue tracker is used for actionable items such as feature proposals discussion, roadmaps, and bug tracking.  You are always welcomed to post on the forum first :smile_cat:
   
   Issues that are inactive for a period of time may get closed. We adopt this policy so that we won't lose track of actionable issues that may fall at the bottom of the pile. Feel free to reopen a new one if you feel there is an additional problem that needs attention when an old one gets closed.
   
   ### Expected behavior
   
   What you were expecting
   
   ### Actual behavior
   
   What actually happened
   
   ### Environment
   
   Any environment details, such as: Operating System, TVM version, etc
   
   ### Steps to reproduce
         affine_types_.Set(out, Downcast<AffineType>(vals[1]));
   
         if (call_node == quantize_node_) {
         	std::cout<<AsText(out,false);
         	std::cout<<vals[1].as<TensorAffineType>;
         	
           out = qnn::MakeDequantize(out, vals[1].as<TensorAffineTypeNode>()->scale,
                                     vals[1].as<TensorAffineTypeNode>()->zero_point,
                                     vals[1].as<TensorAffineTypeNode>()->axis);
         }
   I print the value of vals[1].as<TensorAffineType>,the value is equal to 0, may be it is a TupleAfineType. and "out" also a Tuple Type and split op.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@tvm.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [tvm] mbrookhart commented on issue #12707: [Bug] a bug about fake quantize to intege and split op.

Posted by GitBox <gi...@apache.org>.
mbrookhart commented on issue #12707:
URL: https://github.com/apache/tvm/issues/12707#issuecomment-1239664889

   Yes, the pass is kind of implicitly assuming scale and zero point are constant on the C++ side. I think Constant folding will get around the issue in the short term, but we should come up with a cleaner design to handle that. I'll think about it.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@tvm.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [tvm] honghuichao commented on issue #12707: [Bug] a bug about fake quantize to intege and split op.

Posted by GitBox <gi...@apache.org>.
honghuichao commented on issue #12707:
URL: https://github.com/apache/tvm/issues/12707#issuecomment-1238135390

   @mbrookhart Would you mind helping me?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@tvm.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [tvm] honghuichao commented on issue #12707: [Bug] a bug about fake quantize to intege and split op.

Posted by GitBox <gi...@apache.org>.
honghuichao commented on issue #12707:
URL: https://github.com/apache/tvm/issues/12707#issuecomment-1239636254

   thank you very much


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@tvm.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [tvm] honghuichao commented on issue #12707: [Bug] a bug about fake quantize to intege and split op.

Posted by GitBox <gi...@apache.org>.
honghuichao commented on issue #12707:
URL: https://github.com/apache/tvm/issues/12707#issuecomment-1320781146

   @mbrookhart The sum of two int8 data is greater than the data range represented by int8


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@tvm.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [tvm] honghuichao commented on issue #12707: [Bug] a bug about fake quantize to intege and split op.

Posted by GitBox <gi...@apache.org>.
honghuichao commented on issue #12707:
URL: https://github.com/apache/tvm/issues/12707#issuecomment-1238864157

   @mbrookhart 
   1. for first problem:I add some code, segement fault is disappear. but  I don't know if it's reasonable. 
   
         if (call_node == quantize_node_) {
           /*if (tvm::relay::transform::InferTypeLocal(out).as<TupleTypeNode>()) {
             Array<Expr> outs;
             for (size_t i = 0; i < Downcast<Tuple>(out)->fields.size(); i++) {
               auto tmp = Downcast<Tuple>(out)->fields[i];
               auto quantize_info = vals[1].as<TupleAffineTypeNode>()->types[i];
               auto new_out = qnn::MakeDequantize(tmp, quantize_info.as<TensorAffineTypeNode>()->scale,
                                                  quantize_info.as<TensorAffineTypeNode>()->zero_point,
                                                  quantize_info.as<TensorAffineTypeNode>()->axis);
               outs.push_back(new_out);
             }
             out = Tuple(outs);*/
           //} else {
             out = qnn::MakeDequantize(out, vals[1].as<TensorAffineTypeNode>()->scale,
                                       vals[1].as<TensorAffineTypeNode>()->zero_point,
                                       vals[1].as<TensorAffineTypeNode>()->axis);
           //}
         }
       }
   
   
   
   2.for second problem: I write a simple demo.
   import tvm
   mod = tvm.parser.parse_expr(
       '''
   fn (%x1: Tensor[(1, 3, 224, 224), float32] /* ty=Tensor[(1, 3, 224, 224), float32] */, %x2: Tensor[(1, 3, 224, 224), float32] /* ty=Tensor[(1, 3, 224, 224), float32] */) -> Tensor[(1, 6, 224, 224), float32] {
     %0 = power(2f, 1f /* ty=float32 */);
     %1 = divide(1f, %0);
     %2 = qnn.quantize(%x1, %1, 0, out_dtype="int8");
     %3 = clip(%2, a_min=-127f, a_max=127f);
     %4 = power(2f, 1f /* ty=float32 */);
     %5 = divide(1f, %4);
     %6 = qnn.quantize(%x2, %5, 0, out_dtype="int8");
     %7 = clip(%6, a_min=-127f, a_max=127f);
     %8 = qnn.dequantize(%3, %1, 0);
     %9 = qnn.dequantize(%7, %5, 0);
     %10 = (%8, %9) /* ty=(Tensor[(1, 3, 224, 224), float32], Tensor[(1, 3, 224, 224), float32]) */;
     %11 = power(2f, 1f /* ty=float32 */);
     %12 = concatenate(%10, axis=1) /* ty=Tensor[(1, 6, 224, 224), float32] */;
     %13 = divide(1f, %11);
     %14 = qnn.quantize(%12, %13, 0, out_dtype="int8");
     %15 = clip(%14, a_min=-127f, a_max=127f);
     qnn.dequantize(%15, %13, 0)
   } /* ty=fn (Tensor[(1, 3, 224, 224), float32], Tensor[(1, 3, 224, 224), float32]) -> Tensor[(1, 6, 224, 224), float32] */
       '''
   )
   mod = tvm.IRModule.from_expr(mod)
   mod = relay.transform.InferType()(mod)
   mod = tvm.relay.transform.FakeQuantizationToInteger(False, True)(mod)
   
   I think in this network, concat op will transform into qnn.concat.but, I run " mod = tvm.relay.transform.FakeQuantizationToInteger(False, True)(mod)"
    the result is :
   fn (%x1: Tensor[(1, 3, 224, 224), float32] /* ty=Tensor[(1, 3, 224, 224), float32] */, %x2: Tensor[(1, 3, 224, 224), float32] /* ty=Tensor[(1, 3, 224, 224), float32] */) -> Tensor[(1, 6, 224, 224), float32] {
     %0 = power(2f, 1f /* ty=float32 */);
     %1 = divide(1f, %0);
     %2 = qnn.quantize(%x1, %1, 0, out_dtype="int8");
     %3 = clip(%2, a_min=-127f, a_max=127f);
     %4 = power(2f, 1f /* ty=float32 */);
     %5 = divide(1f, %4);
     %6 = qnn.quantize(%x2, %5, 0, out_dtype="int8");
     %7 = clip(%6, a_min=-127f, a_max=127f);
     %8 = qnn.dequantize(%3, %1, 0);
     %9 = qnn.dequantize(%7, %5, 0);
     %10 = (%8, %9) /* ty=(Tensor[(1, 3, 224, 224), float32], Tensor[(1, 3, 224, 224), float32]) */;
     %11 = power(2f, 1f /* ty=float32 */);
     %12 = concatenate(%10, axis=1) /* ty=Tensor[(1, 6, 224, 224), float32] */;
     %13 = divide(1f, %11);
     %14 = qnn.quantize(%12, %13, 0, out_dtype="int8");
     %15 = clip(%14, a_min=-127f, a_max=127f);
     qnn.dequantize(%15, %13, 0)
   } /* ty=
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@tvm.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [tvm] honghuichao commented on issue #12707: [Bug] a bug about fake quantize to intege and split op.

Posted by GitBox <gi...@apache.org>.
honghuichao commented on issue #12707:
URL: https://github.com/apache/tvm/issues/12707#issuecomment-1320781127

   @mbrookhart The sum of two int8 data is greater than the data range represented by int8


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@tvm.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [tvm] mbrookhart commented on issue #12707: [Bug] a bug about fake quantize to intege and split op.

Posted by GitBox <gi...@apache.org>.
mbrookhart commented on issue #12707:
URL: https://github.com/apache/tvm/issues/12707#issuecomment-1239618078

   Where did you add the code?
   
   Something is going wrong with the pass because you have expressions as scales and zero points. If I run FoldConstant before FQ2I, it works:
   ```
   import tvm 
   from tvm import relay
   mod = tvm.parser.parse_expr(
   '''
   fn (%x1: Tensor[(1, 3, 224, 224), float32], %x2: Tensor[(1, 3, 224, 224), float32]){
   %0 = power(2f, 1f);
   %1 = divide(1f, %0);
   %2 = qnn.quantize(%x1, %1, 0, out_dtype="int8");
   %3 = clip(%2, a_min=-127f, a_max=127f);
   %4 = power(2f, 1f);
   %5 = divide(1f, %4);
   %6 = qnn.quantize(%x2, %5, 0, out_dtype="int8");
   %7 = clip(%6, a_min=-127f, a_max=127f);
   %8 = qnn.dequantize(%3, %1, 0);
   %9 = qnn.dequantize(%7, %5, 0);
   %10 = (%8, %9);
   %11 = power(2f, 1f);
   %12 = concatenate(%10, axis=1);
   %13 = divide(1f, %11);
   %14 = qnn.quantize(%12, %13, 0, out_dtype="int8");
   %15 = clip(%14, a_min=-127f, a_max=127f);
   qnn.dequantize(%15, %13, 0)
   }
   '''
   )
   mod = tvm.IRModule.from_expr(mod)
   mod = relay.transform.InferType()(mod)
   mod = relay.transform.FoldConstant()(mod)
   mod = tvm.relay.transform.FakeQuantizationToInteger(False, True)(mod)
   print(mod)
   ```
   
   ```
   def @main(%x1: Tensor[(1, 3, 224, 224), float32] /* ty=Tensor[(1, 3, 224, 224), float32] span=string:5:19 */, %x2: Tensor[(1, 3, 224, 224), float32] /* ty=Tensor[(1, 3, 224, 224), float32] span=string:9:19 */) -> Tensor[(1, 6, 224, 224), float32] {
     %0 = qnn.quantize(%x1, 0.5f /* ty=float32 */, 0 /* ty=int32 span=string:5:29 */, out_dtype="int8") /* ty=Tensor[(1, 3, 224, 224), int8] span=string:6:11 */;
     %1 = qnn.quantize(%x2, 0.5f /* ty=float32 */, 0 /* ty=int32 span=string:9:29 */, out_dtype="int8") /* ty=Tensor[(1, 3, 224, 224), int8] span=string:10:11 */;
     %2 = clip(%0, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 3, 224, 224), int8] span=string:11:21 */;
     %3 = clip(%1, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 3, 224, 224), int8] span=string:12:21 */;
     %4 = (%2, %3) /* ty=(Tensor[(1, 3, 224, 224), int8], Tensor[(1, 3, 224, 224), int8]) span=string:15:19 */;
     %5 = (0.5f /* ty=float32 */, 0.5f /* ty=float32 */) /* ty=(float32, float32) */;
     %6 = (0 /* ty=int32 span=string:11:30 */, 0 /* ty=int32 span=string:12:30 */) /* ty=(int32, int32) */;
     %7 = qnn.concatenate(%4, %5, %6, 0.5f /* ty=float32 */, 0 /* ty=int32 span=string:17:31 */, axis=1) /* ty=Tensor[(1, 6, 224, 224), int8] */;
     %8 = clip(%7, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 6, 224, 224), int8] span=string:19:16 */;
     qnn.dequantize(%8, 0.5f /* ty=float32 */, 0 /* ty=int32 span=string:19:27 */) /* ty=Tensor[(1, 6, 224, 224), float32] span=string:3:1 */
   }
   ```
   
   I'll try to figure out why the pass is failing with Expr scale and zero point


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@tvm.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [tvm] mbrookhart commented on issue #12707: [Bug] a bug about fake quantize to intege and split op.

Posted by GitBox <gi...@apache.org>.
mbrookhart commented on issue #12707:
URL: https://github.com/apache/tvm/issues/12707#issuecomment-1255479227

   Hi @honghuichao. I'm way behind on this, I think I see a fix.
   
   I did special handling for quantize and dequantize in the [extractor](https://github.com/apache/tvm/blob/195ae72b5c6f0df68fac41f7808d125d155a6345/src/relay/transforms/fake_quantization_to_integer.cc#L140-L161), but it seems that I forgot to handle the special case of quantize in the [mutator](https://github.com/apache/tvm/blob/195ae72b5c6f0df68fac41f7808d125d155a6345/src/relay/transforms/fake_quantization_to_integer.cc#L213-L220), so it's failing trying to rewrite the scale and zero point of the quantize, which is invalid.
   
   I've got a busy couple of days, but I'll see if I or someone else familiar with the pass can get a fix up soon. If you want to tackle it, go for it!


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@tvm.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [tvm] honghuichao commented on issue #12707: [Bug] a bug about fake quantize to intege and split op.

Posted by GitBox <gi...@apache.org>.
honghuichao commented on issue #12707:
URL: https://github.com/apache/tvm/issues/12707#issuecomment-1320804337

   and I also find a problem  I am not sure whether it a bug or not  .  
   https://discuss.tvm.apache.org/t/about-the-output-scale-and-output-zero-point-of-qnn-requantize-is-limited-to-a-scalar/13366 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@tvm.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [tvm] honghuichao commented on issue #12707: [Bug] a bug about fake quantize to intege and split op.

Posted by GitBox <gi...@apache.org>.
honghuichao commented on issue #12707:
URL: https://github.com/apache/tvm/issues/12707#issuecomment-1237615902

   core dump was happend.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@tvm.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [tvm] honghuichao commented on issue #12707: [Bug] a bug about fake quantize to intege and split op.

Posted by GitBox <gi...@apache.org>.
honghuichao commented on issue #12707:
URL: https://github.com/apache/tvm/issues/12707#issuecomment-1238083686

   and if a concat op ,it is inputs with dequantize  ,such as  data +dequantize+concat. I think fakequantize to int pass will transform it into data +qnn.concat. but in this pass.it seem doese not  work.
   
   
   
   
   
   
   def @main(%input: Tensor[(1, 3, 544, 960), float32] /* ty=Tensor[(1, 3, 544, 960), float32] */, %im_info: Tensor[(1, 3), float32] /* ty=Tensor[(1, 3), float32] */) -> Tensor[(32640, 11), float32] {
     %0 = power(2f /* ty=float32 */, -1f /* ty=float32 */) /* ty=float32 */;
     %1 = divide(1f /* ty=float32 */, %0) /* ty=float32 */;
     %2 = qnn.quantize(%input, %1, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 3, 544, 960), int8] */;
     %3 = power(2f /* ty=float32 */, 28f /* ty=float32 */) /* ty=float32 */;
     %4 = divide(1f /* ty=float32 */, %3) /* ty=float32 */;
     %5 = multiply(%4, meta[relay.Constant][1] /* ty=Tensor[(64, 1, 1, 1), float32] */) /* ty=Tensor[(64, 1, 1, 1), float32] */;
     %6 = clip(%2, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 3, 544, 960), int8] */;
     %7 = qnn.quantize(meta[relay.Constant][0] /* ty=Tensor[(64, 3, 5, 5), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(64, 3, 5, 5), int8] */;
     %8 = squeeze(%5) /* ty=Tensor[(64), float32] */;
     %9 = power(2f /* ty=float32 */, 27f /* ty=float32 */) /* ty=float32 */;
     %10 = qnn.quantize(meta[relay.Constant][2] /* ty=Tensor[(64), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(64), int32] */;
     %11 = divide(1f /* ty=float32 */, %9) /* ty=float32 */;
     %12 = qnn.conv2d(%6, %7, 0 /* ty=int32 */, 0 /* ty=int32 */, %1, %8, strides=[4, 4], padding=[2, 2, 2, 2], channels=64, kernel_size=[5, 5], out_dtype="int32") /* ty=Tensor[(1, 64, 136, 240), int32] */;
     %13 = qnn.requantize(%10, %11, 0 /* ty=int32 */, meta[relay.Constant][3] /* ty=Tensor[(64), float32] */, meta[relay.Constant][4] /* ty=Tensor[(64), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(64), int32] */;
     %14 = nn.bias_add(%12, %13) /* ty=Tensor[(1, 64, 136, 240), int32] */;
     %15 = power(2f /* ty=float32 */, 3f /* ty=float32 */) /* ty=float32 */;
     %16 = qnn.dequantize(%14, meta[relay.Constant][3] /* ty=Tensor[(64), float32] */, meta[relay.Constant][4] /* ty=Tensor[(64), int32] */, axis=1) /* ty=Tensor[(1, 64, 136, 240), float32] */;
     %17 = divide(1f /* ty=float32 */, %15) /* ty=float32 */;
     %18 = qnn.quantize(%16, %17, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 64, 136, 240), int8] */;
     %19 = clip(%18, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 64, 136, 240), int8] */;
     %20 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %21 = divide(1f /* ty=float32 */, %20) /* ty=float32 */;
     %22 = multiply(%21, meta[relay.Constant][7] /* ty=Tensor[(16, 1, 1, 1), float32] */) /* ty=Tensor[(16, 1, 1, 1), float32] */;
     %23 = maximum(%19, meta[relay.Constant][5] /* ty=int8 */) /* ty=Tensor[(1, 64, 136, 240), int8] */;
     %24 = qnn.quantize(meta[relay.Constant][6] /* ty=Tensor[(16, 64, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(16, 64, 1, 1), int8] */;
     %25 = squeeze(%22) /* ty=Tensor[(16), float32] */;
     %26 = power(2f /* ty=float32 */, 26f /* ty=float32 */) /* ty=float32 */;
     %27 = qnn.quantize(meta[relay.Constant][8] /* ty=Tensor[(16), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %28 = divide(1f /* ty=float32 */, %26) /* ty=float32 */;
     %29 = qnn.conv2d(%23, %24, 0 /* ty=int32 */, 0 /* ty=int32 */, %17, %25, padding=[0, 0, 0, 0], channels=16, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 16, 136, 240), int32] */;
     %30 = qnn.requantize(%27, %28, 0 /* ty=int32 */, meta[relay.Constant][9] /* ty=Tensor[(16), float32] */, meta[relay.Constant][10] /* ty=Tensor[(16), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %31 = nn.bias_add(%29, %30) /* ty=Tensor[(1, 16, 136, 240), int32] */;
     %32 = power(2f /* ty=float32 */, 3f /* ty=float32 */) /* ty=float32 */;
     %33 = qnn.dequantize(%31, meta[relay.Constant][9] /* ty=Tensor[(16), float32] */, meta[relay.Constant][10] /* ty=Tensor[(16), int32] */, axis=1) /* ty=Tensor[(1, 16, 136, 240), float32] */;
     %34 = divide(1f /* ty=float32 */, %32) /* ty=float32 */;
     %35 = qnn.quantize(%33, %34, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 16, 136, 240), int8] */;
     %36 = clip(%35, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 16, 136, 240), int8] */;
     %37 = power(2f /* ty=float32 */, 21f /* ty=float32 */) /* ty=float32 */;
     %38 = divide(1f /* ty=float32 */, %37) /* ty=float32 */;
     %39 = multiply(%38, meta[relay.Constant][13] /* ty=Tensor[(32, 1, 1, 1), float32] */) /* ty=Tensor[(32, 1, 1, 1), float32] */;
     %40 = maximum(%36, meta[relay.Constant][11] /* ty=int8 */) /* ty=Tensor[(1, 16, 136, 240), int8] */;
     %41 = qnn.quantize(meta[relay.Constant][12] /* ty=Tensor[(32, 16, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(32, 16, 1, 1), int8] */;
     %42 = squeeze(%39) /* ty=Tensor[(32), float32] */;
     %43 = power(2f /* ty=float32 */, 24f /* ty=float32 */) /* ty=float32 */;
     %44 = qnn.quantize(meta[relay.Constant][14] /* ty=Tensor[(32), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %45 = divide(1f /* ty=float32 */, %43) /* ty=float32 */;
     %46 = qnn.conv2d(%40, %41, 0 /* ty=int32 */, 0 /* ty=int32 */, %34, %42, padding=[0, 0, 0, 0], channels=32, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 32, 136, 240), int32] */;
     %47 = qnn.requantize(%44, %45, 0 /* ty=int32 */, meta[relay.Constant][15] /* ty=Tensor[(32), float32] */, meta[relay.Constant][16] /* ty=Tensor[(32), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %48 = nn.bias_add(%46, %47) /* ty=Tensor[(1, 32, 136, 240), int32] */;
     %49 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %50 = qnn.dequantize(%48, meta[relay.Constant][15] /* ty=Tensor[(32), float32] */, meta[relay.Constant][16] /* ty=Tensor[(32), int32] */, axis=1) /* ty=Tensor[(1, 32, 136, 240), float32] */;
     %51 = divide(1f /* ty=float32 */, %49) /* ty=float32 */;
     %52 = qnn.quantize(%50, %51, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 136, 240), int8] */;
     %53 = clip(%52, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 136, 240), int8] */;
     %54 = maximum(%53, meta[relay.Constant][17] /* ty=int8 */) /* ty=Tensor[(1, 32, 136, 240), int8] */;
     %55 = power(2f /* ty=float32 */, 22f /* ty=float32 */) /* ty=float32 */;
     %56 = divide(1f /* ty=float32 */, %55) /* ty=float32 */;
     %57 = multiply(%56, meta[relay.Constant][19] /* ty=Tensor[(32, 1, 1, 1), float32] */) /* ty=Tensor[(32, 1, 1, 1), float32] */;
     %58 = qnn.quantize(meta[relay.Constant][18] /* ty=Tensor[(32, 16, 3, 3), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(32, 16, 3, 3), int8] */;
     %59 = squeeze(%57) /* ty=Tensor[(32), float32] */;
     %60 = power(2f /* ty=float32 */, 25f /* ty=float32 */) /* ty=float32 */;
     %61 = qnn.quantize(meta[relay.Constant][20] /* ty=Tensor[(32), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %62 = divide(1f /* ty=float32 */, %60) /* ty=float32 */;
     %63 = qnn.conv2d(%40, %58, 0 /* ty=int32 */, 0 /* ty=int32 */, %34, %59, padding=[1, 1, 1, 1], channels=32, kernel_size=[3, 3], out_dtype="int32") /* ty=Tensor[(1, 32, 136, 240), int32] */;
     %64 = qnn.requantize(%61, %62, 0 /* ty=int32 */, meta[relay.Constant][21] /* ty=Tensor[(32), float32] */, meta[relay.Constant][22] /* ty=Tensor[(32), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %65 = nn.bias_add(%63, %64) /* ty=Tensor[(1, 32, 136, 240), int32] */;
     %66 = power(2f /* ty=float32 */, 3f /* ty=float32 */) /* ty=float32 */;
     %67 = qnn.dequantize(%65, meta[relay.Constant][21] /* ty=Tensor[(32), float32] */, meta[relay.Constant][22] /* ty=Tensor[(32), int32] */, axis=1) /* ty=Tensor[(1, 32, 136, 240), float32] */;
     %68 = divide(1f /* ty=float32 */, %66) /* ty=float32 */;
     %69 = qnn.quantize(%67, %68, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 136, 240), int8] */;
     %70 = clip(%69, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 136, 240), int8] */;
     %71 = maximum(%70, meta[relay.Constant][23] /* ty=int8 */) /* ty=Tensor[(1, 32, 136, 240), int8] */;
     %72 = qnn.dequantize(%54, %51, 0 /* ty=int32 */) /* ty=Tensor[(1, 32, 136, 240), float32] */;
     %73 = qnn.dequantize(%71, %68, 0 /* ty=int32 */) /* ty=Tensor[(1, 32, 136, 240), float32] */;
     %74 = (%72, %73) /* ty=(Tensor[(1, 32, 136, 240), float32], Tensor[(1, 32, 136, 240), float32]) */;
     %75 = power(2f /* ty=float32 */, 3f /* ty=float32 */) /* ty=float32 */;
     %76 = concatenate(%74, axis=1) /* ty=Tensor[(1, 64, 136, 240), float32] */;
     %77 = divide(1f /* ty=float32 */, %75) /* ty=float32 */;
     %78 = qnn.quantize(%76, %77, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 64, 136, 240), int8] */;
     %79 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %80 = divide(1f /* ty=float32 */, %79) /* ty=float32 */;
     %81 = multiply(%80, meta[relay.Constant][25] /* ty=Tensor[(16, 1, 1, 1), float32] */) /* ty=Tensor[(16, 1, 1, 1), float32] */;
     %82 = clip(%78, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 64, 136, 240), int8] */;
     %83 = qnn.quantize(meta[relay.Constant][24] /* ty=Tensor[(16, 64, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(16, 64, 1, 1), int8] */;
     %84 = squeeze(%81) /* ty=Tensor[(16), float32] */;
     %85 = power(2f /* ty=float32 */, 26f /* ty=float32 */) /* ty=float32 */;
     %86 = qnn.quantize(meta[relay.Constant][26] /* ty=Tensor[(16), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %87 = divide(1f /* ty=float32 */, %85) /* ty=float32 */;
     %88 = qnn.conv2d(%82, %83, 0 /* ty=int32 */, 0 /* ty=int32 */, %77, %84, padding=[0, 0, 0, 0], channels=16, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 16, 136, 240), int32] */;
     %89 = qnn.requantize(%86, %87, 0 /* ty=int32 */, meta[relay.Constant][27] /* ty=Tensor[(16), float32] */, meta[relay.Constant][28] /* ty=Tensor[(16), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %90 = nn.bias_add(%88, %89) /* ty=Tensor[(1, 16, 136, 240), int32] */;
     %91 = power(2f /* ty=float32 */, 3f /* ty=float32 */) /* ty=float32 */;
     %92 = qnn.dequantize(%90, meta[relay.Constant][27] /* ty=Tensor[(16), float32] */, meta[relay.Constant][28] /* ty=Tensor[(16), int32] */, axis=1) /* ty=Tensor[(1, 16, 136, 240), float32] */;
     %93 = divide(1f /* ty=float32 */, %91) /* ty=float32 */;
     %94 = qnn.quantize(%92, %93, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 16, 136, 240), int8] */;
     %95 = clip(%94, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 16, 136, 240), int8] */;
     %96 = power(2f /* ty=float32 */, 22f /* ty=float32 */) /* ty=float32 */;
     %97 = divide(1f /* ty=float32 */, %96) /* ty=float32 */;
     %98 = multiply(%97, meta[relay.Constant][31] /* ty=Tensor[(32, 1, 1, 1), float32] */) /* ty=Tensor[(32, 1, 1, 1), float32] */;
     %99 = maximum(%95, meta[relay.Constant][29] /* ty=int8 */) /* ty=Tensor[(1, 16, 136, 240), int8] */;
     %100 = qnn.quantize(meta[relay.Constant][30] /* ty=Tensor[(32, 16, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(32, 16, 1, 1), int8] */;
     %101 = squeeze(%98) /* ty=Tensor[(32), float32] */;
     %102 = power(2f /* ty=float32 */, 25f /* ty=float32 */) /* ty=float32 */;
     %103 = qnn.quantize(meta[relay.Constant][32] /* ty=Tensor[(32), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %104 = divide(1f /* ty=float32 */, %102) /* ty=float32 */;
     %105 = qnn.conv2d(%99, %100, 0 /* ty=int32 */, 0 /* ty=int32 */, %93, %101, padding=[0, 0, 0, 0], channels=32, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 32, 136, 240), int32] */;
     %106 = qnn.requantize(%103, %104, 0 /* ty=int32 */, meta[relay.Constant][33] /* ty=Tensor[(32), float32] */, meta[relay.Constant][34] /* ty=Tensor[(32), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %107 = nn.bias_add(%105, %106) /* ty=Tensor[(1, 32, 136, 240), int32] */;
     %108 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %109 = qnn.dequantize(%107, meta[relay.Constant][33] /* ty=Tensor[(32), float32] */, meta[relay.Constant][34] /* ty=Tensor[(32), int32] */, axis=1) /* ty=Tensor[(1, 32, 136, 240), float32] */;
     %110 = divide(1f /* ty=float32 */, %108) /* ty=float32 */;
     %111 = qnn.quantize(%109, %110, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 136, 240), int8] */;
     %112 = clip(%111, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 136, 240), int8] */;
     %113 = maximum(%112, meta[relay.Constant][35] /* ty=int8 */) /* ty=Tensor[(1, 32, 136, 240), int8] */;
     %114 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %115 = divide(1f /* ty=float32 */, %114) /* ty=float32 */;
     %116 = multiply(%115, meta[relay.Constant][37] /* ty=Tensor[(32, 1, 1, 1), float32] */) /* ty=Tensor[(32, 1, 1, 1), float32] */;
     %117 = qnn.quantize(meta[relay.Constant][36] /* ty=Tensor[(32, 16, 3, 3), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(32, 16, 3, 3), int8] */;
     %118 = squeeze(%116) /* ty=Tensor[(32), float32] */;
     %119 = power(2f /* ty=float32 */, 26f /* ty=float32 */) /* ty=float32 */;
     %120 = qnn.quantize(meta[relay.Constant][38] /* ty=Tensor[(32), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %121 = divide(1f /* ty=float32 */, %119) /* ty=float32 */;
     %122 = qnn.conv2d(%99, %117, 0 /* ty=int32 */, 0 /* ty=int32 */, %93, %118, padding=[1, 1, 1, 1], channels=32, kernel_size=[3, 3], out_dtype="int32") /* ty=Tensor[(1, 32, 136, 240), int32] */;
     %123 = qnn.requantize(%120, %121, 0 /* ty=int32 */, meta[relay.Constant][39] /* ty=Tensor[(32), float32] */, meta[relay.Constant][40] /* ty=Tensor[(32), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %124 = nn.bias_add(%122, %123) /* ty=Tensor[(1, 32, 136, 240), int32] */;
     %125 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %126 = qnn.dequantize(%124, meta[relay.Constant][39] /* ty=Tensor[(32), float32] */, meta[relay.Constant][40] /* ty=Tensor[(32), int32] */, axis=1) /* ty=Tensor[(1, 32, 136, 240), float32] */;
     %127 = divide(1f /* ty=float32 */, %125) /* ty=float32 */;
     %128 = qnn.quantize(%126, %127, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 136, 240), int8] */;
     %129 = clip(%128, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 136, 240), int8] */;
     %130 = maximum(%129, meta[relay.Constant][41] /* ty=int8 */) /* ty=Tensor[(1, 32, 136, 240), int8] */;
     %131 = qnn.dequantize(%113, %110, 0 /* ty=int32 */) /* ty=Tensor[(1, 32, 136, 240), float32] */;
     %132 = qnn.dequantize(%130, %127, 0 /* ty=int32 */) /* ty=Tensor[(1, 32, 136, 240), float32] */;
     %133 = (%131, %132) /* ty=(Tensor[(1, 32, 136, 240), float32], Tensor[(1, 32, 136, 240), float32]) */;
     %134 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %135 = concatenate(%133, axis=1) /* ty=Tensor[(1, 64, 136, 240), float32] */;
     %136 = divide(1f /* ty=float32 */, %134) /* ty=float32 */;
     %137 = qnn.quantize(%135, %136, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 64, 136, 240), int8] */;
     %138 = clip(%137, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 64, 136, 240), int8] */;
     %139 = power(2f /* ty=float32 */, 3f /* ty=float32 */) /* ty=float32 */;
     %140 = qnn.dequantize(%138, %136, 0 /* ty=int32 */) /* ty=Tensor[(1, 64, 136, 240), float32] */;
     %141 = divide(1f /* ty=float32 */, %139) /* ty=float32 */;
     %142 = qnn.quantize(%140, %141, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 64, 136, 240), int8] */;
     %143 = clip(%142, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 64, 136, 240), int8] */;
     %144 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %145 = divide(1f /* ty=float32 */, %144) /* ty=float32 */;
     %146 = multiply(%145, meta[relay.Constant][43] /* ty=Tensor[(32, 1, 1, 1), float32] */) /* ty=Tensor[(32, 1, 1, 1), float32] */;
     %147 = nn.max_pool2d(%143, pool_size=[3, 3], strides=[2, 2], padding=[0, 0, 0, 0], ceil_mode=True) /* ty=Tensor[(1, 64, 68, 120), int8] */;
     %148 = qnn.quantize(meta[relay.Constant][42] /* ty=Tensor[(32, 64, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(32, 64, 1, 1), int8] */;
     %149 = squeeze(%146) /* ty=Tensor[(32), float32] */;
     %150 = power(2f /* ty=float32 */, 26f /* ty=float32 */) /* ty=float32 */;
     %151 = qnn.quantize(meta[relay.Constant][44] /* ty=Tensor[(32), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %152 = divide(1f /* ty=float32 */, %150) /* ty=float32 */;
     %153 = qnn.conv2d(%147, %148, 0 /* ty=int32 */, 0 /* ty=int32 */, %141, %149, padding=[0, 0, 0, 0], channels=32, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 32, 68, 120), int32] */;
     %154 = qnn.requantize(%151, %152, 0 /* ty=int32 */, meta[relay.Constant][45] /* ty=Tensor[(32), float32] */, meta[relay.Constant][46] /* ty=Tensor[(32), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %155 = nn.bias_add(%153, %154) /* ty=Tensor[(1, 32, 68, 120), int32] */;
     %156 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %157 = qnn.dequantize(%155, meta[relay.Constant][45] /* ty=Tensor[(32), float32] */, meta[relay.Constant][46] /* ty=Tensor[(32), int32] */, axis=1) /* ty=Tensor[(1, 32, 68, 120), float32] */;
     %158 = divide(1f /* ty=float32 */, %156) /* ty=float32 */;
     %159 = qnn.quantize(%157, %158, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 68, 120), int8] */;
     %160 = clip(%159, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 68, 120), int8] */;
     %161 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %162 = divide(1f /* ty=float32 */, %161) /* ty=float32 */;
     %163 = multiply(%162, meta[relay.Constant][49] /* ty=Tensor[(64, 1, 1, 1), float32] */) /* ty=Tensor[(64, 1, 1, 1), float32] */;
     %164 = maximum(%160, meta[relay.Constant][47] /* ty=int8 */) /* ty=Tensor[(1, 32, 68, 120), int8] */;
     %165 = qnn.quantize(meta[relay.Constant][48] /* ty=Tensor[(64, 32, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(64, 32, 1, 1), int8] */;
     %166 = squeeze(%163) /* ty=Tensor[(64), float32] */;
     %167 = power(2f /* ty=float32 */, 27f /* ty=float32 */) /* ty=float32 */;
     %168 = qnn.quantize(meta[relay.Constant][50] /* ty=Tensor[(64), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(64), int32] */;
     %169 = divide(1f /* ty=float32 */, %167) /* ty=float32 */;
     %170 = qnn.conv2d(%164, %165, 0 /* ty=int32 */, 0 /* ty=int32 */, %158, %166, padding=[0, 0, 0, 0], channels=64, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 64, 68, 120), int32] */;
     %171 = qnn.requantize(%168, %169, 0 /* ty=int32 */, meta[relay.Constant][51] /* ty=Tensor[(64), float32] */, meta[relay.Constant][52] /* ty=Tensor[(64), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(64), int32] */;
     %172 = nn.bias_add(%170, %171) /* ty=Tensor[(1, 64, 68, 120), int32] */;
     %173 = power(2f /* ty=float32 */, 5f /* ty=float32 */) /* ty=float32 */;
     %174 = qnn.dequantize(%172, meta[relay.Constant][51] /* ty=Tensor[(64), float32] */, meta[relay.Constant][52] /* ty=Tensor[(64), int32] */, axis=1) /* ty=Tensor[(1, 64, 68, 120), float32] */;
     %175 = divide(1f /* ty=float32 */, %173) /* ty=float32 */;
     %176 = qnn.quantize(%174, %175, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 64, 68, 120), int8] */;
     %177 = clip(%176, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 64, 68, 120), int8] */;
     %178 = maximum(%177, meta[relay.Constant][53] /* ty=int8 */) /* ty=Tensor[(1, 64, 68, 120), int8] */;
     %179 = power(2f /* ty=float32 */, 24f /* ty=float32 */) /* ty=float32 */;
     %180 = divide(1f /* ty=float32 */, %179) /* ty=float32 */;
     %181 = multiply(%180, meta[relay.Constant][55] /* ty=Tensor[(64, 1, 1, 1), float32] */) /* ty=Tensor[(64, 1, 1, 1), float32] */;
     %182 = qnn.quantize(meta[relay.Constant][54] /* ty=Tensor[(64, 32, 3, 3), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(64, 32, 3, 3), int8] */;
     %183 = squeeze(%181) /* ty=Tensor[(64), float32] */;
     %184 = power(2f /* ty=float32 */, 28f /* ty=float32 */) /* ty=float32 */;
     %185 = qnn.quantize(meta[relay.Constant][56] /* ty=Tensor[(64), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(64), int32] */;
     %186 = divide(1f /* ty=float32 */, %184) /* ty=float32 */;
     %187 = qnn.conv2d(%164, %182, 0 /* ty=int32 */, 0 /* ty=int32 */, %158, %183, padding=[1, 1, 1, 1], channels=64, kernel_size=[3, 3], out_dtype="int32") /* ty=Tensor[(1, 64, 68, 120), int32] */;
     %188 = qnn.requantize(%185, %186, 0 /* ty=int32 */, meta[relay.Constant][57] /* ty=Tensor[(64), float32] */, meta[relay.Constant][58] /* ty=Tensor[(64), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(64), int32] */;
     %189 = nn.bias_add(%187, %188) /* ty=Tensor[(1, 64, 68, 120), int32] */;
     %190 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %191 = qnn.dequantize(%189, meta[relay.Constant][57] /* ty=Tensor[(64), float32] */, meta[relay.Constant][58] /* ty=Tensor[(64), int32] */, axis=1) /* ty=Tensor[(1, 64, 68, 120), float32] */;
     %192 = divide(1f /* ty=float32 */, %190) /* ty=float32 */;
     %193 = qnn.quantize(%191, %192, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 64, 68, 120), int8] */;
     %194 = clip(%193, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 64, 68, 120), int8] */;
     %195 = maximum(%194, meta[relay.Constant][59] /* ty=int8 */) /* ty=Tensor[(1, 64, 68, 120), int8] */;
     %196 = qnn.dequantize(%178, %175, 0 /* ty=int32 */) /* ty=Tensor[(1, 64, 68, 120), float32] */;
     %197 = qnn.dequantize(%195, %192, 0 /* ty=int32 */) /* ty=Tensor[(1, 64, 68, 120), float32] */;
     %198 = (%196, %197) /* ty=(Tensor[(1, 64, 68, 120), float32], Tensor[(1, 64, 68, 120), float32]) */;
     %199 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %200 = concatenate(%198, axis=1) /* ty=Tensor[(1, 128, 68, 120), float32] */;
     %201 = divide(1f /* ty=float32 */, %199) /* ty=float32 */;
     %202 = qnn.quantize(%200, %201, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 128, 68, 120), int8] */;
     %203 = power(2f /* ty=float32 */, 24f /* ty=float32 */) /* ty=float32 */;
     %204 = divide(1f /* ty=float32 */, %203) /* ty=float32 */;
     %205 = multiply(%204, meta[relay.Constant][61] /* ty=Tensor[(8, 1, 1, 1), float32] */) /* ty=Tensor[(8, 1, 1, 1), float32] */;
     %206 = clip(%202, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 128, 68, 120), int8] */;
     %207 = qnn.quantize(meta[relay.Constant][60] /* ty=Tensor[(8, 128, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(8, 128, 1, 1), int8] */;
     %208 = squeeze(%205) /* ty=Tensor[(8), float32] */;
     %209 = power(2f /* ty=float32 */, 28f /* ty=float32 */) /* ty=float32 */;
     %210 = qnn.quantize(meta[relay.Constant][62] /* ty=Tensor[(8), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(8), int32] */;
     %211 = divide(1f /* ty=float32 */, %209) /* ty=float32 */;
     %212 = qnn.conv2d(%206, %207, 0 /* ty=int32 */, 0 /* ty=int32 */, %201, %208, padding=[0, 0, 0, 0], channels=8, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 8, 68, 120), int32] */;
     %213 = qnn.requantize(%210, %211, 0 /* ty=int32 */, meta[relay.Constant][63] /* ty=Tensor[(8), float32] */, meta[relay.Constant][64] /* ty=Tensor[(8), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(8), int32] */;
     %214 = nn.bias_add(%212, %213) /* ty=Tensor[(1, 8, 68, 120), int32] */;
     %215 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %216 = qnn.dequantize(%214, meta[relay.Constant][63] /* ty=Tensor[(8), float32] */, meta[relay.Constant][64] /* ty=Tensor[(8), int32] */, axis=1) /* ty=Tensor[(1, 8, 68, 120), float32] */;
     %217 = divide(1f /* ty=float32 */, %215) /* ty=float32 */;
     %218 = qnn.quantize(%216, %217, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 8, 68, 120), int8] */;
     %219 = clip(%218, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 8, 68, 120), int8] */;
     %220 = power(2f /* ty=float32 */, 22f /* ty=float32 */) /* ty=float32 */;
     %221 = divide(1f /* ty=float32 */, %220) /* ty=float32 */;
     %222 = multiply(%221, meta[relay.Constant][67] /* ty=Tensor[(16, 1, 1, 1), float32] */) /* ty=Tensor[(16, 1, 1, 1), float32] */;
     %223 = maximum(%219, meta[relay.Constant][65] /* ty=int8 */) /* ty=Tensor[(1, 8, 68, 120), int8] */;
     %224 = qnn.quantize(meta[relay.Constant][66] /* ty=Tensor[(16, 8, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(16, 8, 1, 1), int8] */;
     %225 = squeeze(%222) /* ty=Tensor[(16), float32] */;
     %226 = power(2f /* ty=float32 */, 26f /* ty=float32 */) /* ty=float32 */;
     %227 = qnn.quantize(meta[relay.Constant][68] /* ty=Tensor[(16), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %228 = divide(1f /* ty=float32 */, %226) /* ty=float32 */;
     %229 = qnn.conv2d(%223, %224, 0 /* ty=int32 */, 0 /* ty=int32 */, %217, %225, padding=[0, 0, 0, 0], channels=16, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 16, 68, 120), int32] */;
     %230 = qnn.requantize(%227, %228, 0 /* ty=int32 */, meta[relay.Constant][69] /* ty=Tensor[(16), float32] */, meta[relay.Constant][70] /* ty=Tensor[(16), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %231 = nn.bias_add(%229, %230) /* ty=Tensor[(1, 16, 68, 120), int32] */;
     %232 = power(2f /* ty=float32 */, 3f /* ty=float32 */) /* ty=float32 */;
     %233 = qnn.dequantize(%231, meta[relay.Constant][69] /* ty=Tensor[(16), float32] */, meta[relay.Constant][70] /* ty=Tensor[(16), int32] */, axis=1) /* ty=Tensor[(1, 16, 68, 120), float32] */;
     %234 = divide(1f /* ty=float32 */, %232) /* ty=float32 */;
     %235 = qnn.quantize(%233, %234, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 16, 68, 120), int8] */;
     %236 = clip(%235, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 16, 68, 120), int8] */;
     %237 = maximum(%236, meta[relay.Constant][71] /* ty=int8 */) /* ty=Tensor[(1, 16, 68, 120), int8] */;
     %238 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %239 = divide(1f /* ty=float32 */, %238) /* ty=float32 */;
     %240 = multiply(%239, meta[relay.Constant][73] /* ty=Tensor[(16, 1, 1, 1), float32] */) /* ty=Tensor[(16, 1, 1, 1), float32] */;
     %241 = qnn.quantize(meta[relay.Constant][72] /* ty=Tensor[(16, 8, 3, 3), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(16, 8, 3, 3), int8] */;
     %242 = squeeze(%240) /* ty=Tensor[(16), float32] */;
     %243 = power(2f /* ty=float32 */, 27f /* ty=float32 */) /* ty=float32 */;
     %244 = qnn.quantize(meta[relay.Constant][74] /* ty=Tensor[(16), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %245 = divide(1f /* ty=float32 */, %243) /* ty=float32 */;
     %246 = qnn.conv2d(%223, %241, 0 /* ty=int32 */, 0 /* ty=int32 */, %217, %242, padding=[1, 1, 1, 1], channels=16, kernel_size=[3, 3], out_dtype="int32") /* ty=Tensor[(1, 16, 68, 120), int32] */;
     %247 = qnn.requantize(%244, %245, 0 /* ty=int32 */, meta[relay.Constant][75] /* ty=Tensor[(16), float32] */, meta[relay.Constant][76] /* ty=Tensor[(16), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %248 = nn.bias_add(%246, %247) /* ty=Tensor[(1, 16, 68, 120), int32] */;
     %249 = power(2f /* ty=float32 */, 3f /* ty=float32 */) /* ty=float32 */;
     %250 = qnn.dequantize(%248, meta[relay.Constant][75] /* ty=Tensor[(16), float32] */, meta[relay.Constant][76] /* ty=Tensor[(16), int32] */, axis=1) /* ty=Tensor[(1, 16, 68, 120), float32] */;
     %251 = divide(1f /* ty=float32 */, %249) /* ty=float32 */;
     %252 = qnn.quantize(%250, %251, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 16, 68, 120), int8] */;
     %253 = clip(%252, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 16, 68, 120), int8] */;
     %254 = maximum(%253, meta[relay.Constant][77] /* ty=int8 */) /* ty=Tensor[(1, 16, 68, 120), int8] */;
     %255 = qnn.dequantize(%237, %234, 0 /* ty=int32 */) /* ty=Tensor[(1, 16, 68, 120), float32] */;
     %256 = qnn.dequantize(%254, %251, 0 /* ty=int32 */) /* ty=Tensor[(1, 16, 68, 120), float32] */;
     %257 = (%255, %256) /* ty=(Tensor[(1, 16, 68, 120), float32], Tensor[(1, 16, 68, 120), float32]) */;
     %258 = power(2f /* ty=float32 */, 3f /* ty=float32 */) /* ty=float32 */;
     %259 = concatenate(%257, axis=1) /* ty=Tensor[(1, 32, 68, 120), float32] */;
     %260 = divide(1f /* ty=float32 */, %258) /* ty=float32 */;
     %261 = qnn.quantize(%259, %260, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 68, 120), int8] */;
     %262 = clip(%261, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 68, 120), int8] */;
     %263 = power(2f /* ty=float32 */, 3f /* ty=float32 */) /* ty=float32 */;
     %264 = qnn.dequantize(%262, %260, 0 /* ty=int32 */) /* ty=Tensor[(1, 32, 68, 120), float32] */;
     %265 = divide(1f /* ty=float32 */, %263) /* ty=float32 */;
     %266 = qnn.quantize(%264, %265, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 68, 120), int8] */;
     %267 = clip(%266, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 68, 120), int8] */;
     %268 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %269 = divide(1f /* ty=float32 */, %268) /* ty=float32 */;
     %270 = multiply(%269, meta[relay.Constant][79] /* ty=Tensor[(16, 1, 1, 1), float32] */) /* ty=Tensor[(16, 1, 1, 1), float32] */;
     %271 = nn.max_pool2d(%267, pool_size=[3, 3], strides=[2, 2], padding=[0, 0, 0, 0], ceil_mode=True) /* ty=Tensor[(1, 32, 34, 60), int8] */;
     %272 = qnn.quantize(meta[relay.Constant][78] /* ty=Tensor[(16, 32, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(16, 32, 1, 1), int8] */;
     %273 = squeeze(%270) /* ty=Tensor[(16), float32] */;
     %274 = power(2f /* ty=float32 */, 26f /* ty=float32 */) /* ty=float32 */;
     %275 = qnn.quantize(meta[relay.Constant][80] /* ty=Tensor[(16), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %276 = divide(1f /* ty=float32 */, %274) /* ty=float32 */;
     %277 = qnn.conv2d(%271, %272, 0 /* ty=int32 */, 0 /* ty=int32 */, %265, %273, padding=[0, 0, 0, 0], channels=16, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 16, 34, 60), int32] */;
     %278 = qnn.requantize(%275, %276, 0 /* ty=int32 */, meta[relay.Constant][81] /* ty=Tensor[(16), float32] */, meta[relay.Constant][82] /* ty=Tensor[(16), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %279 = nn.bias_add(%277, %278) /* ty=Tensor[(1, 16, 34, 60), int32] */;
     %280 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %281 = qnn.dequantize(%279, meta[relay.Constant][81] /* ty=Tensor[(16), float32] */, meta[relay.Constant][82] /* ty=Tensor[(16), int32] */, axis=1) /* ty=Tensor[(1, 16, 34, 60), float32] */;
     %282 = divide(1f /* ty=float32 */, %280) /* ty=float32 */;
     %283 = qnn.quantize(%281, %282, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 16, 34, 60), int8] */;
     %284 = clip(%283, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 16, 34, 60), int8] */;
     %285 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %286 = divide(1f /* ty=float32 */, %285) /* ty=float32 */;
     %287 = multiply(%286, meta[relay.Constant][85] /* ty=Tensor[(32, 1, 1, 1), float32] */) /* ty=Tensor[(32, 1, 1, 1), float32] */;
     %288 = maximum(%284, meta[relay.Constant][83] /* ty=int8 */) /* ty=Tensor[(1, 16, 34, 60), int8] */;
     %289 = qnn.quantize(meta[relay.Constant][84] /* ty=Tensor[(32, 16, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(32, 16, 1, 1), int8] */;
     %290 = squeeze(%287) /* ty=Tensor[(32), float32] */;
     %291 = power(2f /* ty=float32 */, 27f /* ty=float32 */) /* ty=float32 */;
     %292 = qnn.quantize(meta[relay.Constant][86] /* ty=Tensor[(32), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %293 = divide(1f /* ty=float32 */, %291) /* ty=float32 */;
     %294 = qnn.conv2d(%288, %289, 0 /* ty=int32 */, 0 /* ty=int32 */, %282, %290, padding=[0, 0, 0, 0], channels=32, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 32, 34, 60), int32] */;
     %295 = qnn.requantize(%292, %293, 0 /* ty=int32 */, meta[relay.Constant][87] /* ty=Tensor[(32), float32] */, meta[relay.Constant][88] /* ty=Tensor[(32), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %296 = nn.bias_add(%294, %295) /* ty=Tensor[(1, 32, 34, 60), int32] */;
     %297 = power(2f /* ty=float32 */, 5f /* ty=float32 */) /* ty=float32 */;
     %298 = qnn.dequantize(%296, meta[relay.Constant][87] /* ty=Tensor[(32), float32] */, meta[relay.Constant][88] /* ty=Tensor[(32), int32] */, axis=1) /* ty=Tensor[(1, 32, 34, 60), float32] */;
     %299 = divide(1f /* ty=float32 */, %297) /* ty=float32 */;
     %300 = qnn.quantize(%298, %299, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 34, 60), int8] */;
     %301 = clip(%300, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 34, 60), int8] */;
     %302 = maximum(%301, meta[relay.Constant][89] /* ty=int8 */) /* ty=Tensor[(1, 32, 34, 60), int8] */;
     %303 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %304 = divide(1f /* ty=float32 */, %303) /* ty=float32 */;
     %305 = multiply(%304, meta[relay.Constant][91] /* ty=Tensor[(32, 1, 1, 1), float32] */) /* ty=Tensor[(32, 1, 1, 1), float32] */;
     %306 = qnn.quantize(meta[relay.Constant][90] /* ty=Tensor[(32, 16, 3, 3), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(32, 16, 3, 3), int8] */;
     %307 = squeeze(%305) /* ty=Tensor[(32), float32] */;
     %308 = power(2f /* ty=float32 */, 27f /* ty=float32 */) /* ty=float32 */;
     %309 = qnn.quantize(meta[relay.Constant][92] /* ty=Tensor[(32), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %310 = divide(1f /* ty=float32 */, %308) /* ty=float32 */;
     %311 = qnn.conv2d(%288, %306, 0 /* ty=int32 */, 0 /* ty=int32 */, %282, %307, padding=[1, 1, 1, 1], channels=32, kernel_size=[3, 3], out_dtype="int32") /* ty=Tensor[(1, 32, 34, 60), int32] */;
     %312 = qnn.requantize(%309, %310, 0 /* ty=int32 */, meta[relay.Constant][93] /* ty=Tensor[(32), float32] */, meta[relay.Constant][94] /* ty=Tensor[(32), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %313 = nn.bias_add(%311, %312) /* ty=Tensor[(1, 32, 34, 60), int32] */;
     %314 = power(2f /* ty=float32 */, 3f /* ty=float32 */) /* ty=float32 */;
     %315 = qnn.dequantize(%313, meta[relay.Constant][93] /* ty=Tensor[(32), float32] */, meta[relay.Constant][94] /* ty=Tensor[(32), int32] */, axis=1) /* ty=Tensor[(1, 32, 34, 60), float32] */;
     %316 = divide(1f /* ty=float32 */, %314) /* ty=float32 */;
     %317 = qnn.quantize(%315, %316, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 34, 60), int8] */;
     %318 = clip(%317, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 34, 60), int8] */;
     %319 = maximum(%318, meta[relay.Constant][95] /* ty=int8 */) /* ty=Tensor[(1, 32, 34, 60), int8] */;
     %320 = qnn.dequantize(%302, %299, 0 /* ty=int32 */) /* ty=Tensor[(1, 32, 34, 60), float32] */;
     %321 = qnn.dequantize(%319, %316, 0 /* ty=int32 */) /* ty=Tensor[(1, 32, 34, 60), float32] */;
     %322 = (%320, %321) /* ty=(Tensor[(1, 32, 34, 60), float32], Tensor[(1, 32, 34, 60), float32]) */;
     %323 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %324 = concatenate(%322, axis=1) /* ty=Tensor[(1, 64, 34, 60), float32] */;
     %325 = divide(1f /* ty=float32 */, %323) /* ty=float32 */;
     %326 = qnn.quantize(%324, %325, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 64, 34, 60), int8] */;
     %327 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %328 = divide(1f /* ty=float32 */, %327) /* ty=float32 */;
     %329 = multiply(%328, meta[relay.Constant][97] /* ty=Tensor[(16, 1, 1, 1), float32] */) /* ty=Tensor[(16, 1, 1, 1), float32] */;
     %330 = clip(%326, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 64, 34, 60), int8] */;
     %331 = qnn.quantize(meta[relay.Constant][96] /* ty=Tensor[(16, 64, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(16, 64, 1, 1), int8] */;
     %332 = squeeze(%329) /* ty=Tensor[(16), float32] */;
     %333 = power(2f /* ty=float32 */, 27f /* ty=float32 */) /* ty=float32 */;
     %334 = qnn.quantize(meta[relay.Constant][98] /* ty=Tensor[(16), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %335 = divide(1f /* ty=float32 */, %333) /* ty=float32 */;
     %336 = qnn.conv2d(%330, %331, 0 /* ty=int32 */, 0 /* ty=int32 */, %325, %332, padding=[0, 0, 0, 0], channels=16, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 16, 34, 60), int32] */;
     %337 = qnn.requantize(%334, %335, 0 /* ty=int32 */, meta[relay.Constant][99] /* ty=Tensor[(16), float32] */, meta[relay.Constant][100] /* ty=Tensor[(16), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %338 = nn.bias_add(%336, %337) /* ty=Tensor[(1, 16, 34, 60), int32] */;
     %339 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %340 = qnn.dequantize(%338, meta[relay.Constant][99] /* ty=Tensor[(16), float32] */, meta[relay.Constant][100] /* ty=Tensor[(16), int32] */, axis=1) /* ty=Tensor[(1, 16, 34, 60), float32] */;
     %341 = divide(1f /* ty=float32 */, %339) /* ty=float32 */;
     %342 = qnn.quantize(%340, %341, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 16, 34, 60), int8] */;
     %343 = clip(%342, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 16, 34, 60), int8] */;
     %344 = power(2f /* ty=float32 */, 22f /* ty=float32 */) /* ty=float32 */;
     %345 = divide(1f /* ty=float32 */, %344) /* ty=float32 */;
     %346 = multiply(%345, meta[relay.Constant][103] /* ty=Tensor[(32, 1, 1, 1), float32] */) /* ty=Tensor[(32, 1, 1, 1), float32] */;
     %347 = maximum(%343, meta[relay.Constant][101] /* ty=int8 */) /* ty=Tensor[(1, 16, 34, 60), int8] */;
     %348 = qnn.quantize(meta[relay.Constant][102] /* ty=Tensor[(32, 16, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(32, 16, 1, 1), int8] */;
     %349 = squeeze(%346) /* ty=Tensor[(32), float32] */;
     %350 = power(2f /* ty=float32 */, 26f /* ty=float32 */) /* ty=float32 */;
     %351 = qnn.quantize(meta[relay.Constant][104] /* ty=Tensor[(32), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %352 = divide(1f /* ty=float32 */, %350) /* ty=float32 */;
     %353 = qnn.conv2d(%347, %348, 0 /* ty=int32 */, 0 /* ty=int32 */, %341, %349, padding=[0, 0, 0, 0], channels=32, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 32, 34, 60), int32] */;
     %354 = qnn.requantize(%351, %352, 0 /* ty=int32 */, meta[relay.Constant][105] /* ty=Tensor[(32), float32] */, meta[relay.Constant][106] /* ty=Tensor[(32), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %355 = nn.bias_add(%353, %354) /* ty=Tensor[(1, 32, 34, 60), int32] */;
     %356 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %357 = qnn.dequantize(%355, meta[relay.Constant][105] /* ty=Tensor[(32), float32] */, meta[relay.Constant][106] /* ty=Tensor[(32), int32] */, axis=1) /* ty=Tensor[(1, 32, 34, 60), float32] */;
     %358 = divide(1f /* ty=float32 */, %356) /* ty=float32 */;
     %359 = qnn.quantize(%357, %358, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 34, 60), int8] */;
     %360 = clip(%359, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 34, 60), int8] */;
     %361 = maximum(%360, meta[relay.Constant][107] /* ty=int8 */) /* ty=Tensor[(1, 32, 34, 60), int8] */;
     %362 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %363 = divide(1f /* ty=float32 */, %362) /* ty=float32 */;
     %364 = multiply(%363, meta[relay.Constant][109] /* ty=Tensor[(32, 1, 1, 1), float32] */) /* ty=Tensor[(32, 1, 1, 1), float32] */;
     %365 = qnn.quantize(meta[relay.Constant][108] /* ty=Tensor[(32, 16, 3, 3), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(32, 16, 3, 3), int8] */;
     %366 = squeeze(%364) /* ty=Tensor[(32), float32] */;
     %367 = power(2f /* ty=float32 */, 27f /* ty=float32 */) /* ty=float32 */;
     %368 = qnn.quantize(meta[relay.Constant][110] /* ty=Tensor[(32), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %369 = divide(1f /* ty=float32 */, %367) /* ty=float32 */;
     %370 = qnn.conv2d(%347, %365, 0 /* ty=int32 */, 0 /* ty=int32 */, %341, %366, padding=[1, 1, 1, 1], channels=32, kernel_size=[3, 3], out_dtype="int32") /* ty=Tensor[(1, 32, 34, 60), int32] */;
     %371 = qnn.requantize(%368, %369, 0 /* ty=int32 */, meta[relay.Constant][111] /* ty=Tensor[(32), float32] */, meta[relay.Constant][112] /* ty=Tensor[(32), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %372 = nn.bias_add(%370, %371) /* ty=Tensor[(1, 32, 34, 60), int32] */;
     %373 = power(2f /* ty=float32 */, 3f /* ty=float32 */) /* ty=float32 */;
     %374 = qnn.dequantize(%372, meta[relay.Constant][111] /* ty=Tensor[(32), float32] */, meta[relay.Constant][112] /* ty=Tensor[(32), int32] */, axis=1) /* ty=Tensor[(1, 32, 34, 60), float32] */;
     %375 = divide(1f /* ty=float32 */, %373) /* ty=float32 */;
     %376 = qnn.quantize(%374, %375, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 34, 60), int8] */;
     %377 = clip(%376, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 34, 60), int8] */;
     %378 = maximum(%377, meta[relay.Constant][113] /* ty=int8 */) /* ty=Tensor[(1, 32, 34, 60), int8] */;
     %379 = qnn.dequantize(%361, %358, 0 /* ty=int32 */) /* ty=Tensor[(1, 32, 34, 60), float32] */;
     %380 = qnn.dequantize(%378, %375, 0 /* ty=int32 */) /* ty=Tensor[(1, 32, 34, 60), float32] */;
     %381 = (%379, %380) /* ty=(Tensor[(1, 32, 34, 60), float32], Tensor[(1, 32, 34, 60), float32]) */;
     %382 = power(2f /* ty=float32 */, 3f /* ty=float32 */) /* ty=float32 */;
     %383 = concatenate(%381, axis=1) /* ty=Tensor[(1, 64, 34, 60), float32] */;
     %384 = divide(1f /* ty=float32 */, %382) /* ty=float32 */;
     %385 = qnn.quantize(%383, %384, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 64, 34, 60), int8] */;
     %386 = clip(%385, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 64, 34, 60), int8] */;
     %387 = power(2f /* ty=float32 */, 3f /* ty=float32 */) /* ty=float32 */;
     %388 = qnn.dequantize(%386, %384, 0 /* ty=int32 */) /* ty=Tensor[(1, 64, 34, 60), float32] */;
     %389 = divide(1f /* ty=float32 */, %387) /* ty=float32 */;
     %390 = qnn.quantize(%388, %389, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 64, 34, 60), int8] */;
     %391 = clip(%390, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 64, 34, 60), int8] */;
     %392 = power(2f /* ty=float32 */, 24f /* ty=float32 */) /* ty=float32 */;
     %393 = divide(1f /* ty=float32 */, %392) /* ty=float32 */;
     %394 = multiply(%393, meta[relay.Constant][115] /* ty=Tensor[(16, 1, 1, 1), float32] */) /* ty=Tensor[(16, 1, 1, 1), float32] */;
     %395 = nn.max_pool2d(%391, pool_size=[3, 3], strides=[2, 2], padding=[0, 0, 0, 0], ceil_mode=True) /* ty=Tensor[(1, 64, 17, 30), int8] */;
     %396 = qnn.quantize(meta[relay.Constant][114] /* ty=Tensor[(16, 64, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(16, 64, 1, 1), int8] */;
     %397 = squeeze(%394) /* ty=Tensor[(16), float32] */;
     %398 = power(2f /* ty=float32 */, 27f /* ty=float32 */) /* ty=float32 */;
     %399 = qnn.quantize(meta[relay.Constant][116] /* ty=Tensor[(16), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %400 = divide(1f /* ty=float32 */, %398) /* ty=float32 */;
     %401 = qnn.conv2d(%395, %396, 0 /* ty=int32 */, 0 /* ty=int32 */, %389, %397, padding=[0, 0, 0, 0], channels=16, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 16, 17, 30), int32] */;
     %402 = qnn.requantize(%399, %400, 0 /* ty=int32 */, meta[relay.Constant][117] /* ty=Tensor[(16), float32] */, meta[relay.Constant][118] /* ty=Tensor[(16), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %403 = nn.bias_add(%401, %402) /* ty=Tensor[(1, 16, 17, 30), int32] */;
     %404 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %405 = qnn.dequantize(%403, meta[relay.Constant][117] /* ty=Tensor[(16), float32] */, meta[relay.Constant][118] /* ty=Tensor[(16), int32] */, axis=1) /* ty=Tensor[(1, 16, 17, 30), float32] */;
     %406 = divide(1f /* ty=float32 */, %404) /* ty=float32 */;
     %407 = qnn.quantize(%405, %406, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 16, 17, 30), int8] */;
     %408 = clip(%407, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 16, 17, 30), int8] */;
     %409 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %410 = divide(1f /* ty=float32 */, %409) /* ty=float32 */;
     %411 = multiply(%410, meta[relay.Constant][121] /* ty=Tensor[(32, 1, 1, 1), float32] */) /* ty=Tensor[(32, 1, 1, 1), float32] */;
     %412 = maximum(%408, meta[relay.Constant][119] /* ty=int8 */) /* ty=Tensor[(1, 16, 17, 30), int8] */;
     %413 = qnn.quantize(meta[relay.Constant][120] /* ty=Tensor[(32, 16, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(32, 16, 1, 1), int8] */;
     %414 = squeeze(%411) /* ty=Tensor[(32), float32] */;
     %415 = power(2f /* ty=float32 */, 27f /* ty=float32 */) /* ty=float32 */;
     %416 = qnn.quantize(meta[relay.Constant][122] /* ty=Tensor[(32), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %417 = divide(1f /* ty=float32 */, %415) /* ty=float32 */;
     %418 = qnn.conv2d(%412, %413, 0 /* ty=int32 */, 0 /* ty=int32 */, %406, %414, padding=[0, 0, 0, 0], channels=32, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 32, 17, 30), int32] */;
     %419 = qnn.requantize(%416, %417, 0 /* ty=int32 */, meta[relay.Constant][123] /* ty=Tensor[(32), float32] */, meta[relay.Constant][124] /* ty=Tensor[(32), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %420 = nn.bias_add(%418, %419) /* ty=Tensor[(1, 32, 17, 30), int32] */;
     %421 = power(2f /* ty=float32 */, 5f /* ty=float32 */) /* ty=float32 */;
     %422 = qnn.dequantize(%420, meta[relay.Constant][123] /* ty=Tensor[(32), float32] */, meta[relay.Constant][124] /* ty=Tensor[(32), int32] */, axis=1) /* ty=Tensor[(1, 32, 17, 30), float32] */;
     %423 = divide(1f /* ty=float32 */, %421) /* ty=float32 */;
     %424 = qnn.quantize(%422, %423, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %425 = clip(%424, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %426 = maximum(%425, meta[relay.Constant][125] /* ty=int8 */) /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %427 = power(2f /* ty=float32 */, 24f /* ty=float32 */) /* ty=float32 */;
     %428 = divide(1f /* ty=float32 */, %427) /* ty=float32 */;
     %429 = multiply(%428, meta[relay.Constant][127] /* ty=Tensor[(32, 1, 1, 1), float32] */) /* ty=Tensor[(32, 1, 1, 1), float32] */;
     %430 = qnn.quantize(meta[relay.Constant][126] /* ty=Tensor[(32, 16, 3, 3), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(32, 16, 3, 3), int8] */;
     %431 = squeeze(%429) /* ty=Tensor[(32), float32] */;
     %432 = power(2f /* ty=float32 */, 28f /* ty=float32 */) /* ty=float32 */;
     %433 = qnn.quantize(meta[relay.Constant][128] /* ty=Tensor[(32), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %434 = divide(1f /* ty=float32 */, %432) /* ty=float32 */;
     %435 = qnn.conv2d(%412, %430, 0 /* ty=int32 */, 0 /* ty=int32 */, %406, %431, padding=[1, 1, 1, 1], channels=32, kernel_size=[3, 3], out_dtype="int32") /* ty=Tensor[(1, 32, 17, 30), int32] */;
     %436 = qnn.requantize(%433, %434, 0 /* ty=int32 */, meta[relay.Constant][129] /* ty=Tensor[(32), float32] */, meta[relay.Constant][130] /* ty=Tensor[(32), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %437 = nn.bias_add(%435, %436) /* ty=Tensor[(1, 32, 17, 30), int32] */;
     %438 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %439 = qnn.dequantize(%437, meta[relay.Constant][129] /* ty=Tensor[(32), float32] */, meta[relay.Constant][130] /* ty=Tensor[(32), int32] */, axis=1) /* ty=Tensor[(1, 32, 17, 30), float32] */;
     %440 = divide(1f /* ty=float32 */, %438) /* ty=float32 */;
     %441 = qnn.quantize(%439, %440, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %442 = clip(%441, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %443 = maximum(%442, meta[relay.Constant][131] /* ty=int8 */) /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %444 = qnn.dequantize(%426, %423, 0 /* ty=int32 */) /* ty=Tensor[(1, 32, 17, 30), float32] */;
     %445 = qnn.dequantize(%443, %440, 0 /* ty=int32 */) /* ty=Tensor[(1, 32, 17, 30), float32] */;
     %446 = (%444, %445) /* ty=(Tensor[(1, 32, 17, 30), float32], Tensor[(1, 32, 17, 30), float32]) */;
     %447 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %448 = concatenate(%446, axis=1) /* ty=Tensor[(1, 64, 17, 30), float32] */;
     %449 = divide(1f /* ty=float32 */, %447) /* ty=float32 */;
     %450 = qnn.quantize(%448, %449, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 64, 17, 30), int8] */;
     %451 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %452 = divide(1f /* ty=float32 */, %451) /* ty=float32 */;
     %453 = multiply(%452, meta[relay.Constant][133] /* ty=Tensor[(16, 1, 1, 1), float32] */) /* ty=Tensor[(16, 1, 1, 1), float32] */;
     %454 = clip(%450, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 64, 17, 30), int8] */;
     %455 = qnn.quantize(meta[relay.Constant][132] /* ty=Tensor[(16, 64, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(16, 64, 1, 1), int8] */;
     %456 = squeeze(%453) /* ty=Tensor[(16), float32] */;
     %457 = power(2f /* ty=float32 */, 27f /* ty=float32 */) /* ty=float32 */;
     %458 = qnn.quantize(meta[relay.Constant][134] /* ty=Tensor[(16), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %459 = divide(1f /* ty=float32 */, %457) /* ty=float32 */;
     %460 = qnn.conv2d(%454, %455, 0 /* ty=int32 */, 0 /* ty=int32 */, %449, %456, padding=[0, 0, 0, 0], channels=16, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 16, 17, 30), int32] */;
     %461 = qnn.requantize(%458, %459, 0 /* ty=int32 */, meta[relay.Constant][135] /* ty=Tensor[(16), float32] */, meta[relay.Constant][136] /* ty=Tensor[(16), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %462 = nn.bias_add(%460, %461) /* ty=Tensor[(1, 16, 17, 30), int32] */;
     %463 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %464 = qnn.dequantize(%462, meta[relay.Constant][135] /* ty=Tensor[(16), float32] */, meta[relay.Constant][136] /* ty=Tensor[(16), int32] */, axis=1) /* ty=Tensor[(1, 16, 17, 30), float32] */;
     %465 = divide(1f /* ty=float32 */, %463) /* ty=float32 */;
     %466 = qnn.quantize(%464, %465, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 16, 17, 30), int8] */;
     %467 = clip(%466, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 16, 17, 30), int8] */;
     %468 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %469 = divide(1f /* ty=float32 */, %468) /* ty=float32 */;
     %470 = multiply(%469, meta[relay.Constant][139] /* ty=Tensor[(32, 1, 1, 1), float32] */) /* ty=Tensor[(32, 1, 1, 1), float32] */;
     %471 = maximum(%467, meta[relay.Constant][137] /* ty=int8 */) /* ty=Tensor[(1, 16, 17, 30), int8] */;
     %472 = qnn.quantize(meta[relay.Constant][138] /* ty=Tensor[(32, 16, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(32, 16, 1, 1), int8] */;
     %473 = squeeze(%470) /* ty=Tensor[(32), float32] */;
     %474 = power(2f /* ty=float32 */, 27f /* ty=float32 */) /* ty=float32 */;
     %475 = qnn.quantize(meta[relay.Constant][140] /* ty=Tensor[(32), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %476 = divide(1f /* ty=float32 */, %474) /* ty=float32 */;
     %477 = qnn.conv2d(%471, %472, 0 /* ty=int32 */, 0 /* ty=int32 */, %465, %473, padding=[0, 0, 0, 0], channels=32, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 32, 17, 30), int32] */;
     %478 = qnn.requantize(%475, %476, 0 /* ty=int32 */, meta[relay.Constant][141] /* ty=Tensor[(32), float32] */, meta[relay.Constant][142] /* ty=Tensor[(32), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %479 = nn.bias_add(%477, %478) /* ty=Tensor[(1, 32, 17, 30), int32] */;
     %480 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %481 = qnn.dequantize(%479, meta[relay.Constant][141] /* ty=Tensor[(32), float32] */, meta[relay.Constant][142] /* ty=Tensor[(32), int32] */, axis=1) /* ty=Tensor[(1, 32, 17, 30), float32] */;
     %482 = divide(1f /* ty=float32 */, %480) /* ty=float32 */;
     %483 = qnn.quantize(%481, %482, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %484 = clip(%483, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %485 = maximum(%484, meta[relay.Constant][143] /* ty=int8 */) /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %486 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %487 = divide(1f /* ty=float32 */, %486) /* ty=float32 */;
     %488 = multiply(%487, meta[relay.Constant][145] /* ty=Tensor[(32, 1, 1, 1), float32] */) /* ty=Tensor[(32, 1, 1, 1), float32] */;
     %489 = qnn.quantize(meta[relay.Constant][144] /* ty=Tensor[(32, 16, 3, 3), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(32, 16, 3, 3), int8] */;
     %490 = squeeze(%488) /* ty=Tensor[(32), float32] */;
     %491 = power(2f /* ty=float32 */, 27f /* ty=float32 */) /* ty=float32 */;
     %492 = qnn.quantize(meta[relay.Constant][146] /* ty=Tensor[(32), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %493 = divide(1f /* ty=float32 */, %491) /* ty=float32 */;
     %494 = qnn.conv2d(%471, %489, 0 /* ty=int32 */, 0 /* ty=int32 */, %465, %490, padding=[1, 1, 1, 1], channels=32, kernel_size=[3, 3], out_dtype="int32") /* ty=Tensor[(1, 32, 17, 30), int32] */;
     %495 = qnn.requantize(%492, %493, 0 /* ty=int32 */, meta[relay.Constant][147] /* ty=Tensor[(32), float32] */, meta[relay.Constant][148] /* ty=Tensor[(32), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %496 = nn.bias_add(%494, %495) /* ty=Tensor[(1, 32, 17, 30), int32] */;
     %497 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %498 = qnn.dequantize(%496, meta[relay.Constant][147] /* ty=Tensor[(32), float32] */, meta[relay.Constant][148] /* ty=Tensor[(32), int32] */, axis=1) /* ty=Tensor[(1, 32, 17, 30), float32] */;
     %499 = divide(1f /* ty=float32 */, %497) /* ty=float32 */;
     %500 = qnn.quantize(%498, %499, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %501 = clip(%500, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %502 = maximum(%501, meta[relay.Constant][149] /* ty=int8 */) /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %503 = qnn.dequantize(%485, %482, 0 /* ty=int32 */) /* ty=Tensor[(1, 32, 17, 30), float32] */;
     %504 = qnn.dequantize(%502, %499, 0 /* ty=int32 */) /* ty=Tensor[(1, 32, 17, 30), float32] */;
     %505 = (%503, %504) /* ty=(Tensor[(1, 32, 17, 30), float32], Tensor[(1, 32, 17, 30), float32]) */;
     %506 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %507 = concatenate(%505, axis=1) /* ty=Tensor[(1, 64, 17, 30), float32] */;
     %508 = divide(1f /* ty=float32 */, %506) /* ty=float32 */;
     %509 = qnn.quantize(%507, %508, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 64, 17, 30), int8] */;
     %510 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %511 = divide(1f /* ty=float32 */, %510) /* ty=float32 */;
     %512 = multiply(%511, meta[relay.Constant][151] /* ty=Tensor[(16, 1, 1, 1), float32] */) /* ty=Tensor[(16, 1, 1, 1), float32] */;
     %513 = clip(%509, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 64, 17, 30), int8] */;
     %514 = qnn.quantize(meta[relay.Constant][150] /* ty=Tensor[(16, 64, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(16, 64, 1, 1), int8] */;
     %515 = squeeze(%512) /* ty=Tensor[(16), float32] */;
     %516 = power(2f /* ty=float32 */, 27f /* ty=float32 */) /* ty=float32 */;
     %517 = qnn.quantize(meta[relay.Constant][152] /* ty=Tensor[(16), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %518 = divide(1f /* ty=float32 */, %516) /* ty=float32 */;
     %519 = qnn.conv2d(%513, %514, 0 /* ty=int32 */, 0 /* ty=int32 */, %508, %515, padding=[0, 0, 0, 0], channels=16, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 16, 17, 30), int32] */;
     %520 = qnn.requantize(%517, %518, 0 /* ty=int32 */, meta[relay.Constant][153] /* ty=Tensor[(16), float32] */, meta[relay.Constant][154] /* ty=Tensor[(16), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %521 = nn.bias_add(%519, %520) /* ty=Tensor[(1, 16, 17, 30), int32] */;
     %522 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %523 = qnn.dequantize(%521, meta[relay.Constant][153] /* ty=Tensor[(16), float32] */, meta[relay.Constant][154] /* ty=Tensor[(16), int32] */, axis=1) /* ty=Tensor[(1, 16, 17, 30), float32] */;
     %524 = divide(1f /* ty=float32 */, %522) /* ty=float32 */;
     %525 = qnn.quantize(%523, %524, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 16, 17, 30), int8] */;
     %526 = clip(%525, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 16, 17, 30), int8] */;
     %527 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %528 = divide(1f /* ty=float32 */, %527) /* ty=float32 */;
     %529 = multiply(%528, meta[relay.Constant][157] /* ty=Tensor[(32, 1, 1, 1), float32] */) /* ty=Tensor[(32, 1, 1, 1), float32] */;
     %530 = maximum(%526, meta[relay.Constant][155] /* ty=int8 */) /* ty=Tensor[(1, 16, 17, 30), int8] */;
     %531 = qnn.quantize(meta[relay.Constant][156] /* ty=Tensor[(32, 16, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(32, 16, 1, 1), int8] */;
     %532 = squeeze(%529) /* ty=Tensor[(32), float32] */;
     %533 = power(2f /* ty=float32 */, 27f /* ty=float32 */) /* ty=float32 */;
     %534 = qnn.quantize(meta[relay.Constant][158] /* ty=Tensor[(32), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %535 = divide(1f /* ty=float32 */, %533) /* ty=float32 */;
     %536 = qnn.conv2d(%530, %531, 0 /* ty=int32 */, 0 /* ty=int32 */, %524, %532, padding=[0, 0, 0, 0], channels=32, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 32, 17, 30), int32] */;
     %537 = qnn.requantize(%534, %535, 0 /* ty=int32 */, meta[relay.Constant][159] /* ty=Tensor[(32), float32] */, meta[relay.Constant][160] /* ty=Tensor[(32), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %538 = nn.bias_add(%536, %537) /* ty=Tensor[(1, 32, 17, 30), int32] */;
     %539 = power(2f /* ty=float32 */, 5f /* ty=float32 */) /* ty=float32 */;
     %540 = qnn.dequantize(%538, meta[relay.Constant][159] /* ty=Tensor[(32), float32] */, meta[relay.Constant][160] /* ty=Tensor[(32), int32] */, axis=1) /* ty=Tensor[(1, 32, 17, 30), float32] */;
     %541 = divide(1f /* ty=float32 */, %539) /* ty=float32 */;
     %542 = qnn.quantize(%540, %541, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %543 = clip(%542, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %544 = maximum(%543, meta[relay.Constant][161] /* ty=int8 */) /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %545 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %546 = divide(1f /* ty=float32 */, %545) /* ty=float32 */;
     %547 = multiply(%546, meta[relay.Constant][163] /* ty=Tensor[(32, 1, 1, 1), float32] */) /* ty=Tensor[(32, 1, 1, 1), float32] */;
     %548 = qnn.quantize(meta[relay.Constant][162] /* ty=Tensor[(32, 16, 3, 3), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(32, 16, 3, 3), int8] */;
     %549 = squeeze(%547) /* ty=Tensor[(32), float32] */;
     %550 = power(2f /* ty=float32 */, 27f /* ty=float32 */) /* ty=float32 */;
     %551 = qnn.quantize(meta[relay.Constant][164] /* ty=Tensor[(32), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %552 = divide(1f /* ty=float32 */, %550) /* ty=float32 */;
     %553 = qnn.conv2d(%530, %548, 0 /* ty=int32 */, 0 /* ty=int32 */, %524, %549, padding=[1, 1, 1, 1], channels=32, kernel_size=[3, 3], out_dtype="int32") /* ty=Tensor[(1, 32, 17, 30), int32] */;
     %554 = qnn.requantize(%551, %552, 0 /* ty=int32 */, meta[relay.Constant][165] /* ty=Tensor[(32), float32] */, meta[relay.Constant][166] /* ty=Tensor[(32), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %555 = nn.bias_add(%553, %554) /* ty=Tensor[(1, 32, 17, 30), int32] */;
     %556 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %557 = qnn.dequantize(%555, meta[relay.Constant][165] /* ty=Tensor[(32), float32] */, meta[relay.Constant][166] /* ty=Tensor[(32), int32] */, axis=1) /* ty=Tensor[(1, 32, 17, 30), float32] */;
     %558 = divide(1f /* ty=float32 */, %556) /* ty=float32 */;
     %559 = qnn.quantize(%557, %558, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %560 = clip(%559, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %561 = maximum(%560, meta[relay.Constant][167] /* ty=int8 */) /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %562 = qnn.dequantize(%544, %541, 0 /* ty=int32 */) /* ty=Tensor[(1, 32, 17, 30), float32] */;
     %563 = qnn.dequantize(%561, %558, 0 /* ty=int32 */) /* ty=Tensor[(1, 32, 17, 30), float32] */;
     %564 = (%562, %563) /* ty=(Tensor[(1, 32, 17, 30), float32], Tensor[(1, 32, 17, 30), float32]) */;
     %565 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %566 = concatenate(%564, axis=1) /* ty=Tensor[(1, 64, 17, 30), float32] */;
     %567 = divide(1f /* ty=float32 */, %565) /* ty=float32 */;
     %568 = qnn.quantize(%566, %567, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 64, 17, 30), int8] */;
     %569 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %570 = divide(1f /* ty=float32 */, %569) /* ty=float32 */;
     %571 = multiply(%570, meta[relay.Constant][169] /* ty=Tensor[(16, 1, 1, 1), float32] */) /* ty=Tensor[(16, 1, 1, 1), float32] */;
     %572 = clip(%568, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 64, 17, 30), int8] */;
     %573 = qnn.quantize(meta[relay.Constant][168] /* ty=Tensor[(16, 64, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(16, 64, 1, 1), int8] */;
     %574 = squeeze(%571) /* ty=Tensor[(16), float32] */;
     %575 = power(2f /* ty=float32 */, 27f /* ty=float32 */) /* ty=float32 */;
     %576 = qnn.quantize(meta[relay.Constant][170] /* ty=Tensor[(16), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %577 = divide(1f /* ty=float32 */, %575) /* ty=float32 */;
     %578 = qnn.conv2d(%572, %573, 0 /* ty=int32 */, 0 /* ty=int32 */, %567, %574, padding=[0, 0, 0, 0], channels=16, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 16, 17, 30), int32] */;
     %579 = qnn.requantize(%576, %577, 0 /* ty=int32 */, meta[relay.Constant][171] /* ty=Tensor[(16), float32] */, meta[relay.Constant][172] /* ty=Tensor[(16), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %580 = nn.bias_add(%578, %579) /* ty=Tensor[(1, 16, 17, 30), int32] */;
     %581 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %582 = qnn.dequantize(%580, meta[relay.Constant][171] /* ty=Tensor[(16), float32] */, meta[relay.Constant][172] /* ty=Tensor[(16), int32] */, axis=1) /* ty=Tensor[(1, 16, 17, 30), float32] */;
     %583 = divide(1f /* ty=float32 */, %581) /* ty=float32 */;
     %584 = qnn.quantize(%582, %583, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 16, 17, 30), int8] */;
     %585 = clip(%584, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 16, 17, 30), int8] */;
     %586 = power(2f /* ty=float32 */, 22f /* ty=float32 */) /* ty=float32 */;
     %587 = divide(1f /* ty=float32 */, %586) /* ty=float32 */;
     %588 = multiply(%587, meta[relay.Constant][175] /* ty=Tensor[(32, 1, 1, 1), float32] */) /* ty=Tensor[(32, 1, 1, 1), float32] */;
     %589 = maximum(%585, meta[relay.Constant][173] /* ty=int8 */) /* ty=Tensor[(1, 16, 17, 30), int8] */;
     %590 = qnn.quantize(meta[relay.Constant][174] /* ty=Tensor[(32, 16, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(32, 16, 1, 1), int8] */;
     %591 = squeeze(%588) /* ty=Tensor[(32), float32] */;
     %592 = power(2f /* ty=float32 */, 26f /* ty=float32 */) /* ty=float32 */;
     %593 = qnn.quantize(meta[relay.Constant][176] /* ty=Tensor[(32), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %594 = divide(1f /* ty=float32 */, %592) /* ty=float32 */;
     %595 = qnn.conv2d(%589, %590, 0 /* ty=int32 */, 0 /* ty=int32 */, %583, %591, padding=[0, 0, 0, 0], channels=32, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 32, 17, 30), int32] */;
     %596 = qnn.requantize(%593, %594, 0 /* ty=int32 */, meta[relay.Constant][177] /* ty=Tensor[(32), float32] */, meta[relay.Constant][178] /* ty=Tensor[(32), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %597 = nn.bias_add(%595, %596) /* ty=Tensor[(1, 32, 17, 30), int32] */;
     %598 = power(2f /* ty=float32 */, 6f /* ty=float32 */) /* ty=float32 */;
     %599 = qnn.dequantize(%597, meta[relay.Constant][177] /* ty=Tensor[(32), float32] */, meta[relay.Constant][178] /* ty=Tensor[(32), int32] */, axis=1) /* ty=Tensor[(1, 32, 17, 30), float32] */;
     %600 = divide(1f /* ty=float32 */, %598) /* ty=float32 */;
     %601 = qnn.quantize(%599, %600, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %602 = clip(%601, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %603 = maximum(%602, meta[relay.Constant][179] /* ty=int8 */) /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %604 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %605 = divide(1f /* ty=float32 */, %604) /* ty=float32 */;
     %606 = multiply(%605, meta[relay.Constant][181] /* ty=Tensor[(32, 1, 1, 1), float32] */) /* ty=Tensor[(32, 1, 1, 1), float32] */;
     %607 = qnn.quantize(meta[relay.Constant][180] /* ty=Tensor[(32, 16, 3, 3), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(32, 16, 3, 3), int8] */;
     %608 = squeeze(%606) /* ty=Tensor[(32), float32] */;
     %609 = power(2f /* ty=float32 */, 27f /* ty=float32 */) /* ty=float32 */;
     %610 = qnn.quantize(meta[relay.Constant][182] /* ty=Tensor[(32), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %611 = divide(1f /* ty=float32 */, %609) /* ty=float32 */;
     %612 = qnn.conv2d(%589, %607, 0 /* ty=int32 */, 0 /* ty=int32 */, %583, %608, padding=[1, 1, 1, 1], channels=32, kernel_size=[3, 3], out_dtype="int32") /* ty=Tensor[(1, 32, 17, 30), int32] */;
     %613 = qnn.requantize(%610, %611, 0 /* ty=int32 */, meta[relay.Constant][183] /* ty=Tensor[(32), float32] */, meta[relay.Constant][184] /* ty=Tensor[(32), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %614 = nn.bias_add(%612, %613) /* ty=Tensor[(1, 32, 17, 30), int32] */;
     %615 = power(2f /* ty=float32 */, 5f /* ty=float32 */) /* ty=float32 */;
     %616 = qnn.dequantize(%614, meta[relay.Constant][183] /* ty=Tensor[(32), float32] */, meta[relay.Constant][184] /* ty=Tensor[(32), int32] */, axis=1) /* ty=Tensor[(1, 32, 17, 30), float32] */;
     %617 = divide(1f /* ty=float32 */, %615) /* ty=float32 */;
     %618 = qnn.quantize(%616, %617, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %619 = clip(%618, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %620 = maximum(%619, meta[relay.Constant][185] /* ty=int8 */) /* ty=Tensor[(1, 32, 17, 30), int8] */;
     %621 = qnn.dequantize(%603, %600, 0 /* ty=int32 */) /* ty=Tensor[(1, 32, 17, 30), float32] */;
     %622 = qnn.dequantize(%620, %617, 0 /* ty=int32 */) /* ty=Tensor[(1, 32, 17, 30), float32] */;
     %623 = (%621, %622) /* ty=(Tensor[(1, 32, 17, 30), float32], Tensor[(1, 32, 17, 30), float32]) */;
     %624 = power(2f /* ty=float32 */, 6f /* ty=float32 */) /* ty=float32 */;
     %625 = concatenate(%623, axis=1) /* ty=Tensor[(1, 64, 17, 30), float32] */;
     %626 = divide(1f /* ty=float32 */, %624) /* ty=float32 */;
     %627 = qnn.quantize(%625, %626, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 64, 17, 30), int8] */;
     %628 = power(2f /* ty=float32 */, 21f /* ty=float32 */) /* ty=float32 */;
     %629 = divide(1f /* ty=float32 */, %628) /* ty=float32 */;
     %630 = multiply(%629, meta[relay.Constant][187] /* ty=Tensor[(64, 1, 1, 1), float32] */) /* ty=Tensor[(64, 1, 1, 1), float32] */;
     %631 = clip(%627, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 64, 17, 30), int8] */;
     %632 = qnn.quantize(meta[relay.Constant][186] /* ty=Tensor[(64, 64, 4, 4), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(64, 64, 4, 4), int8] */;
     %633 = squeeze(%630) /* ty=Tensor[(64), float32] */;
     %634 = power(2f /* ty=float32 */, 27f /* ty=float32 */) /* ty=float32 */;
     %635 = qnn.quantize(meta[relay.Constant][188] /* ty=Tensor[(64), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(64), int32] */;
     %636 = divide(1f /* ty=float32 */, %634) /* ty=float32 */;
     %637 = qnn.conv2d_transpose(%631, %632, 0 /* ty=int32 */, 0 /* ty=int32 */, %626, %633, channels=64, kernel_size=[4, 4], strides=[2, 2], padding=[1, 1, 1, 1], kernel_layout="IOHW", out_dtype="int32") /* ty=Tensor[(1, 64, 34, 60), int32] */;
     %638 = qnn.requantize(%635, %636, 0 /* ty=int32 */, meta[relay.Constant][189] /* ty=Tensor[(64), float32] */, meta[relay.Constant][190] /* ty=Tensor[(64), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(64), int32] */;
     %639 = nn.bias_add(%637, %638) /* ty=Tensor[(1, 64, 34, 60), int32] */;
     %640 = power(2f /* ty=float32 */, 3f /* ty=float32 */) /* ty=float32 */;
     %641 = qnn.dequantize(%639, meta[relay.Constant][189] /* ty=Tensor[(64), float32] */, meta[relay.Constant][190] /* ty=Tensor[(64), int32] */, axis=1) /* ty=Tensor[(1, 64, 34, 60), float32] */;
     %642 = divide(1f /* ty=float32 */, %640) /* ty=float32 */;
     %643 = qnn.quantize(%641, %642, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 64, 34, 60), int8] */;
     %644 = clip(%643, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 64, 34, 60), int8] */;
     %645 = qnn.dequantize(%644, %642, 0 /* ty=int32 */) /* ty=Tensor[(1, 64, 34, 60), float32] */;
     %646 = (%645, %388) /* ty=(Tensor[(1, 64, 34, 60), float32], Tensor[(1, 64, 34, 60), float32]) */;
     %647 = power(2f /* ty=float32 */, 3f /* ty=float32 */) /* ty=float32 */;
     %648 = concatenate(%646, axis=1) /* ty=Tensor[(1, 128, 34, 60), float32] */;
     %649 = divide(1f /* ty=float32 */, %647) /* ty=float32 */;
     %650 = qnn.quantize(%648, %649, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 128, 34, 60), int8] */;
     %651 = power(2f /* ty=float32 */, 24f /* ty=float32 */) /* ty=float32 */;
     %652 = divide(1f /* ty=float32 */, %651) /* ty=float32 */;
     %653 = multiply(%652, meta[relay.Constant][192] /* ty=Tensor[(32, 1, 1, 1), float32] */) /* ty=Tensor[(32, 1, 1, 1), float32] */;
     %654 = clip(%650, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 128, 34, 60), int8] */;
     %655 = qnn.quantize(meta[relay.Constant][191] /* ty=Tensor[(32, 128, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(32, 128, 1, 1), int8] */;
     %656 = squeeze(%653) /* ty=Tensor[(32), float32] */;
     %657 = power(2f /* ty=float32 */, 27f /* ty=float32 */) /* ty=float32 */;
     %658 = qnn.quantize(meta[relay.Constant][193] /* ty=Tensor[(32), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %659 = divide(1f /* ty=float32 */, %657) /* ty=float32 */;
     %660 = qnn.conv2d(%654, %655, 0 /* ty=int32 */, 0 /* ty=int32 */, %649, %656, padding=[0, 0, 0, 0], channels=32, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 32, 34, 60), int32] */;
     %661 = qnn.requantize(%658, %659, 0 /* ty=int32 */, meta[relay.Constant][194] /* ty=Tensor[(32), float32] */, meta[relay.Constant][195] /* ty=Tensor[(32), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %662 = nn.bias_add(%660, %661) /* ty=Tensor[(1, 32, 34, 60), int32] */;
     %663 = power(2f /* ty=float32 */, 5f /* ty=float32 */) /* ty=float32 */;
     %664 = qnn.dequantize(%662, meta[relay.Constant][194] /* ty=Tensor[(32), float32] */, meta[relay.Constant][195] /* ty=Tensor[(32), int32] */, axis=1) /* ty=Tensor[(1, 32, 34, 60), float32] */;
     %665 = divide(1f /* ty=float32 */, %663) /* ty=float32 */;
     %666 = qnn.quantize(%664, %665, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 34, 60), int8] */;
     %667 = clip(%666, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 34, 60), int8] */;
     %668 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %669 = divide(1f /* ty=float32 */, %668) /* ty=float32 */;
     %670 = multiply(%669, meta[relay.Constant][198] /* ty=Tensor[(32, 1, 1, 1), float32] */) /* ty=Tensor[(32, 1, 1, 1), float32] */;
     %671 = maximum(%667, meta[relay.Constant][196] /* ty=int8 */) /* ty=Tensor[(1, 32, 34, 60), int8] */;
     %672 = qnn.quantize(meta[relay.Constant][197] /* ty=Tensor[(32, 32, 3, 3), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(32, 32, 3, 3), int8] */;
     %673 = squeeze(%670) /* ty=Tensor[(32), float32] */;
     %674 = power(2f /* ty=float32 */, 28f /* ty=float32 */) /* ty=float32 */;
     %675 = qnn.quantize(meta[relay.Constant][199] /* ty=Tensor[(32), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %676 = divide(1f /* ty=float32 */, %674) /* ty=float32 */;
     %677 = qnn.conv2d(%671, %672, 0 /* ty=int32 */, 0 /* ty=int32 */, %665, %673, padding=[1, 1, 1, 1], channels=32, kernel_size=[3, 3], out_dtype="int32") /* ty=Tensor[(1, 32, 34, 60), int32] */;
     %678 = qnn.requantize(%675, %676, 0 /* ty=int32 */, meta[relay.Constant][200] /* ty=Tensor[(32), float32] */, meta[relay.Constant][201] /* ty=Tensor[(32), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %679 = nn.bias_add(%677, %678) /* ty=Tensor[(1, 32, 34, 60), int32] */;
     %680 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %681 = qnn.dequantize(%679, meta[relay.Constant][200] /* ty=Tensor[(32), float32] */, meta[relay.Constant][201] /* ty=Tensor[(32), int32] */, axis=1) /* ty=Tensor[(1, 32, 34, 60), float32] */;
     %682 = divide(1f /* ty=float32 */, %680) /* ty=float32 */;
     %683 = qnn.quantize(%681, %682, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 34, 60), int8] */;
     %684 = clip(%683, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 34, 60), int8] */;
     %685 = power(2f /* ty=float32 */, 21f /* ty=float32 */) /* ty=float32 */;
     %686 = divide(1f /* ty=float32 */, %685) /* ty=float32 */;
     %687 = multiply(%686, meta[relay.Constant][204] /* ty=Tensor[(32, 1, 1, 1), float32] */) /* ty=Tensor[(32, 1, 1, 1), float32] */;
     %688 = maximum(%684, meta[relay.Constant][202] /* ty=int8 */) /* ty=Tensor[(1, 32, 34, 60), int8] */;
     %689 = qnn.quantize(meta[relay.Constant][203] /* ty=Tensor[(32, 32, 4, 4), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(32, 32, 4, 4), int8] */;
     %690 = squeeze(%687) /* ty=Tensor[(32), float32] */;
     %691 = power(2f /* ty=float32 */, 25f /* ty=float32 */) /* ty=float32 */;
     %692 = qnn.quantize(meta[relay.Constant][205] /* ty=Tensor[(32), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %693 = divide(1f /* ty=float32 */, %691) /* ty=float32 */;
     %694 = qnn.conv2d_transpose(%688, %689, 0 /* ty=int32 */, 0 /* ty=int32 */, %682, %690, channels=32, kernel_size=[4, 4], strides=[2, 2], padding=[1, 1, 1, 1], kernel_layout="IOHW", out_dtype="int32") /* ty=Tensor[(1, 32, 68, 120), int32] */;
     %695 = qnn.requantize(%692, %693, 0 /* ty=int32 */, meta[relay.Constant][206] /* ty=Tensor[(32), float32] */, meta[relay.Constant][207] /* ty=Tensor[(32), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %696 = nn.bias_add(%694, %695) /* ty=Tensor[(1, 32, 68, 120), int32] */;
     %697 = power(2f /* ty=float32 */, 1f /* ty=float32 */) /* ty=float32 */;
     %698 = qnn.dequantize(%696, meta[relay.Constant][206] /* ty=Tensor[(32), float32] */, meta[relay.Constant][207] /* ty=Tensor[(32), int32] */, axis=1) /* ty=Tensor[(1, 32, 68, 120), float32] */;
     %699 = divide(1f /* ty=float32 */, %697) /* ty=float32 */;
     %700 = qnn.quantize(%698, %699, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 68, 120), int8] */;
     %701 = clip(%700, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 68, 120), int8] */;
     %702 = qnn.dequantize(%701, %699, 0 /* ty=int32 */) /* ty=Tensor[(1, 32, 68, 120), float32] */;
     %703 = (%702, %264) /* ty=(Tensor[(1, 32, 68, 120), float32], Tensor[(1, 32, 68, 120), float32]) */;
     %704 = power(2f /* ty=float32 */, 1f /* ty=float32 */) /* ty=float32 */;
     %705 = concatenate(%703, axis=1) /* ty=Tensor[(1, 64, 68, 120), float32] */;
     %706 = divide(1f /* ty=float32 */, %704) /* ty=float32 */;
     %707 = qnn.quantize(%705, %706, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 64, 68, 120), int8] */;
     %708 = power(2f /* ty=float32 */, 24f /* ty=float32 */) /* ty=float32 */;
     %709 = divide(1f /* ty=float32 */, %708) /* ty=float32 */;
     %710 = multiply(%709, meta[relay.Constant][209] /* ty=Tensor[(16, 1, 1, 1), float32] */) /* ty=Tensor[(16, 1, 1, 1), float32] */;
     %711 = clip(%707, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 64, 68, 120), int8] */;
     %712 = qnn.quantize(meta[relay.Constant][208] /* ty=Tensor[(16, 64, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(16, 64, 1, 1), int8] */;
     %713 = squeeze(%710) /* ty=Tensor[(16), float32] */;
     %714 = power(2f /* ty=float32 */, 25f /* ty=float32 */) /* ty=float32 */;
     %715 = qnn.quantize(meta[relay.Constant][210] /* ty=Tensor[(16), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %716 = divide(1f /* ty=float32 */, %714) /* ty=float32 */;
     %717 = qnn.conv2d(%711, %712, 0 /* ty=int32 */, 0 /* ty=int32 */, %706, %713, padding=[0, 0, 0, 0], channels=16, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 16, 68, 120), int32] */;
     %718 = qnn.requantize(%715, %716, 0 /* ty=int32 */, meta[relay.Constant][211] /* ty=Tensor[(16), float32] */, meta[relay.Constant][212] /* ty=Tensor[(16), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %719 = nn.bias_add(%717, %718) /* ty=Tensor[(1, 16, 68, 120), int32] */;
     %720 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %721 = qnn.dequantize(%719, meta[relay.Constant][211] /* ty=Tensor[(16), float32] */, meta[relay.Constant][212] /* ty=Tensor[(16), int32] */, axis=1) /* ty=Tensor[(1, 16, 68, 120), float32] */;
     %722 = divide(1f /* ty=float32 */, %720) /* ty=float32 */;
     %723 = qnn.quantize(%721, %722, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 16, 68, 120), int8] */;
     %724 = clip(%723, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 16, 68, 120), int8] */;
     %725 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %726 = divide(1f /* ty=float32 */, %725) /* ty=float32 */;
     %727 = multiply(%726, meta[relay.Constant][215] /* ty=Tensor[(16, 1, 1, 1), float32] */) /* ty=Tensor[(16, 1, 1, 1), float32] */;
     %728 = maximum(%724, meta[relay.Constant][213] /* ty=int8 */) /* ty=Tensor[(1, 16, 68, 120), int8] */;
     %729 = qnn.quantize(meta[relay.Constant][214] /* ty=Tensor[(16, 16, 3, 3), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(16, 16, 3, 3), int8] */;
     %730 = squeeze(%727) /* ty=Tensor[(16), float32] */;
     %731 = power(2f /* ty=float32 */, 27f /* ty=float32 */) /* ty=float32 */;
     %732 = qnn.quantize(meta[relay.Constant][216] /* ty=Tensor[(16), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %733 = divide(1f /* ty=float32 */, %731) /* ty=float32 */;
     %734 = qnn.conv2d(%728, %729, 0 /* ty=int32 */, 0 /* ty=int32 */, %722, %730, padding=[1, 1, 1, 1], channels=16, kernel_size=[3, 3], out_dtype="int32") /* ty=Tensor[(1, 16, 68, 120), int32] */;
     %735 = qnn.requantize(%732, %733, 0 /* ty=int32 */, meta[relay.Constant][217] /* ty=Tensor[(16), float32] */, meta[relay.Constant][218] /* ty=Tensor[(16), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %736 = nn.bias_add(%734, %735) /* ty=Tensor[(1, 16, 68, 120), int32] */;
     %737 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %738 = qnn.dequantize(%736, meta[relay.Constant][217] /* ty=Tensor[(16), float32] */, meta[relay.Constant][218] /* ty=Tensor[(16), int32] */, axis=1) /* ty=Tensor[(1, 16, 68, 120), float32] */;
     %739 = divide(1f /* ty=float32 */, %737) /* ty=float32 */;
     %740 = qnn.quantize(%738, %739, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 16, 68, 120), int8] */;
     %741 = clip(%740, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 16, 68, 120), int8] */;
     %742 = power(2f /* ty=float32 */, 21f /* ty=float32 */) /* ty=float32 */;
     %743 = divide(1f /* ty=float32 */, %742) /* ty=float32 */;
     %744 = multiply(%743, meta[relay.Constant][221] /* ty=Tensor[(16, 1, 1, 1), float32] */) /* ty=Tensor[(16, 1, 1, 1), float32] */;
     %745 = maximum(%741, meta[relay.Constant][219] /* ty=int8 */) /* ty=Tensor[(1, 16, 68, 120), int8] */;
     %746 = qnn.quantize(meta[relay.Constant][220] /* ty=Tensor[(16, 16, 4, 4), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(16, 16, 4, 4), int8] */;
     %747 = squeeze(%744) /* ty=Tensor[(16), float32] */;
     %748 = power(2f /* ty=float32 */, 25f /* ty=float32 */) /* ty=float32 */;
     %749 = qnn.quantize(meta[relay.Constant][222] /* ty=Tensor[(16), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %750 = divide(1f /* ty=float32 */, %748) /* ty=float32 */;
     %751 = qnn.conv2d_transpose(%745, %746, 0 /* ty=int32 */, 0 /* ty=int32 */, %739, %747, channels=16, kernel_size=[4, 4], strides=[2, 2], padding=[1, 1, 1, 1], kernel_layout="IOHW", out_dtype="int32") /* ty=Tensor[(1, 16, 136, 240), int32] */;
     %752 = qnn.requantize(%749, %750, 0 /* ty=int32 */, meta[relay.Constant][223] /* ty=Tensor[(16), float32] */, meta[relay.Constant][224] /* ty=Tensor[(16), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(16), int32] */;
     %753 = nn.bias_add(%751, %752) /* ty=Tensor[(1, 16, 136, 240), int32] */;
     %754 = power(2f /* ty=float32 */, 1f /* ty=float32 */) /* ty=float32 */;
     %755 = qnn.dequantize(%753, meta[relay.Constant][223] /* ty=Tensor[(16), float32] */, meta[relay.Constant][224] /* ty=Tensor[(16), int32] */, axis=1) /* ty=Tensor[(1, 16, 136, 240), float32] */;
     %756 = divide(1f /* ty=float32 */, %754) /* ty=float32 */;
     %757 = qnn.quantize(%755, %756, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 16, 136, 240), int8] */;
     %758 = clip(%757, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 16, 136, 240), int8] */;
     %759 = qnn.dequantize(%758, %756, 0 /* ty=int32 */) /* ty=Tensor[(1, 16, 136, 240), float32] */;
     %760 = (%759, %140) /* ty=(Tensor[(1, 16, 136, 240), float32], Tensor[(1, 64, 136, 240), float32]) */;
     %761 = power(2f /* ty=float32 */, 1f /* ty=float32 */) /* ty=float32 */;
     %762 = concatenate(%760, axis=1) /* ty=Tensor[(1, 80, 136, 240), float32] */;
     %763 = divide(1f /* ty=float32 */, %761) /* ty=float32 */;
     %764 = qnn.quantize(%762, %763, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 80, 136, 240), int8] */;
     %765 = power(2f /* ty=float32 */, 24f /* ty=float32 */) /* ty=float32 */;
     %766 = divide(1f /* ty=float32 */, %765) /* ty=float32 */;
     %767 = multiply(%766, meta[relay.Constant][226] /* ty=Tensor[(32, 1, 1, 1), float32] */) /* ty=Tensor[(32, 1, 1, 1), float32] */;
     %768 = clip(%764, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 80, 136, 240), int8] */;
     %769 = qnn.quantize(meta[relay.Constant][225] /* ty=Tensor[(32, 80, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(32, 80, 1, 1), int8] */;
     %770 = squeeze(%767) /* ty=Tensor[(32), float32] */;
     %771 = power(2f /* ty=float32 */, 25f /* ty=float32 */) /* ty=float32 */;
     %772 = qnn.quantize(meta[relay.Constant][227] /* ty=Tensor[(32), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %773 = divide(1f /* ty=float32 */, %771) /* ty=float32 */;
     %774 = qnn.conv2d(%768, %769, 0 /* ty=int32 */, 0 /* ty=int32 */, %763, %770, padding=[0, 0, 0, 0], channels=32, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 32, 136, 240), int32] */;
     %775 = qnn.requantize(%772, %773, 0 /* ty=int32 */, meta[relay.Constant][228] /* ty=Tensor[(32), float32] */, meta[relay.Constant][229] /* ty=Tensor[(32), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %776 = nn.bias_add(%774, %775) /* ty=Tensor[(1, 32, 136, 240), int32] */;
     %777 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %778 = qnn.dequantize(%776, meta[relay.Constant][228] /* ty=Tensor[(32), float32] */, meta[relay.Constant][229] /* ty=Tensor[(32), int32] */, axis=1) /* ty=Tensor[(1, 32, 136, 240), float32] */;
     %779 = divide(1f /* ty=float32 */, %777) /* ty=float32 */;
     %780 = qnn.quantize(%778, %779, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 136, 240), int8] */;
     %781 = clip(%780, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 136, 240), int8] */;
     %782 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %783 = divide(1f /* ty=float32 */, %782) /* ty=float32 */;
     %784 = multiply(%783, meta[relay.Constant][232] /* ty=Tensor[(32, 1, 1, 1), float32] */) /* ty=Tensor[(32, 1, 1, 1), float32] */;
     %785 = maximum(%781, meta[relay.Constant][230] /* ty=int8 */) /* ty=Tensor[(1, 32, 136, 240), int8] */;
     %786 = qnn.quantize(meta[relay.Constant][231] /* ty=Tensor[(32, 32, 3, 3), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(32, 32, 3, 3), int8] */;
     %787 = squeeze(%784) /* ty=Tensor[(32), float32] */;
     %788 = power(2f /* ty=float32 */, 27f /* ty=float32 */) /* ty=float32 */;
     %789 = qnn.quantize(meta[relay.Constant][233] /* ty=Tensor[(32), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %790 = divide(1f /* ty=float32 */, %788) /* ty=float32 */;
     %791 = qnn.conv2d(%785, %786, 0 /* ty=int32 */, 0 /* ty=int32 */, %779, %787, padding=[1, 1, 1, 1], channels=32, kernel_size=[3, 3], out_dtype="int32") /* ty=Tensor[(1, 32, 136, 240), int32] */;
     %792 = qnn.requantize(%789, %790, 0 /* ty=int32 */, meta[relay.Constant][234] /* ty=Tensor[(32), float32] */, meta[relay.Constant][235] /* ty=Tensor[(32), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %793 = nn.bias_add(%791, %792) /* ty=Tensor[(1, 32, 136, 240), int32] */;
     %794 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %795 = qnn.dequantize(%793, meta[relay.Constant][234] /* ty=Tensor[(32), float32] */, meta[relay.Constant][235] /* ty=Tensor[(32), int32] */, axis=1) /* ty=Tensor[(1, 32, 136, 240), float32] */;
     %796 = divide(1f /* ty=float32 */, %794) /* ty=float32 */;
     %797 = qnn.quantize(%795, %796, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 136, 240), int8] */;
     %798 = clip(%797, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 136, 240), int8] */;
     %799 = power(2f /* ty=float32 */, 24f /* ty=float32 */) /* ty=float32 */;
     %800 = divide(1f /* ty=float32 */, %799) /* ty=float32 */;
     %801 = multiply(%800, meta[relay.Constant][238] /* ty=Tensor[(32, 1, 1, 1), float32] */) /* ty=Tensor[(32, 1, 1, 1), float32] */;
     %802 = maximum(%798, meta[relay.Constant][236] /* ty=int8 */) /* ty=Tensor[(1, 32, 136, 240), int8] */;
     %803 = qnn.quantize(meta[relay.Constant][237] /* ty=Tensor[(32, 32, 3, 3), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(32, 32, 3, 3), int8] */;
     %804 = squeeze(%801) /* ty=Tensor[(32), float32] */;
     %805 = power(2f /* ty=float32 */, 28f /* ty=float32 */) /* ty=float32 */;
     %806 = qnn.quantize(meta[relay.Constant][239] /* ty=Tensor[(32), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %807 = divide(1f /* ty=float32 */, %805) /* ty=float32 */;
     %808 = qnn.conv2d(%802, %803, 0 /* ty=int32 */, 0 /* ty=int32 */, %796, %804, padding=[1, 1, 1, 1], channels=32, kernel_size=[3, 3], out_dtype="int32") /* ty=Tensor[(1, 32, 136, 240), int32] */;
     %809 = qnn.requantize(%806, %807, 0 /* ty=int32 */, meta[relay.Constant][240] /* ty=Tensor[(32), float32] */, meta[relay.Constant][241] /* ty=Tensor[(32), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(32), int32] */;
     %810 = nn.bias_add(%808, %809) /* ty=Tensor[(1, 32, 136, 240), int32] */;
     %811 = power(2f /* ty=float32 */, 5f /* ty=float32 */) /* ty=float32 */;
     %812 = qnn.dequantize(%810, meta[relay.Constant][240] /* ty=Tensor[(32), float32] */, meta[relay.Constant][241] /* ty=Tensor[(32), int32] */, axis=1) /* ty=Tensor[(1, 32, 136, 240), float32] */;
     %813 = divide(1f /* ty=float32 */, %811) /* ty=float32 */;
     %814 = qnn.quantize(%812, %813, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 32, 136, 240), int8] */;
     %815 = clip(%814, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 32, 136, 240), int8] */;
     %816 = power(2f /* ty=float32 */, 21f /* ty=float32 */) /* ty=float32 */;
     %817 = divide(1f /* ty=float32 */, %816) /* ty=float32 */;
     %818 = multiply(%817, 64616f /* ty=float32 */) /* ty=float32 */;
     %819 = maximum(%815, meta[relay.Constant][242] /* ty=int8 */) /* ty=Tensor[(1, 32, 136, 240), int8] */;
     %820 = qnn.quantize(meta[relay.Constant][243] /* ty=Tensor[(1, 32, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(1, 32, 1, 1), int8] */;
     %821 = squeeze(%818) /* ty=float32 */;
     %822 = power(2f /* ty=float32 */, 26f /* ty=float32 */) /* ty=float32 */;
     %823 = qnn.quantize(meta[relay.Constant][244] /* ty=Tensor[(1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(1), int32] */;
     %824 = divide(1f /* ty=float32 */, %822) /* ty=float32 */;
     %825 = qnn.conv2d(%819, %820, 0 /* ty=int32 */, 0 /* ty=int32 */, %813, %821, padding=[0, 0, 0, 0], channels=1, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 1, 136, 240), int32] */;
     %826 = qnn.requantize(%823, %824, 0 /* ty=int32 */, 0.000962853f /* ty=float32 */, 0 /* ty=int32 */, axis=0, out_dtype="int32") /* ty=Tensor[(1), int32] */;
     %827 = nn.bias_add(%825, %826) /* ty=Tensor[(1, 1, 136, 240), int32] */;
     %828 = power(2f /* ty=float32 */, 2f /* ty=float32 */) /* ty=float32 */;
     %829 = qnn.dequantize(%827, 0.000962853f /* ty=float32 */, 0 /* ty=int32 */, axis=1) /* ty=Tensor[(1, 1, 136, 240), float32] */;
     %830 = divide(1f /* ty=float32 */, %828) /* ty=float32 */;
     %831 = qnn.quantize(%829, %830, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 1, 136, 240), int8] */;
     %832 = clip(%831, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 1, 136, 240), int8] */;
     %833 = power(2f /* ty=float32 */, 21f /* ty=float32 */) /* ty=float32 */;
     %834 = divide(1f /* ty=float32 */, %833) /* ty=float32 */;
     %835 = multiply(%834, meta[relay.Constant][246] /* ty=Tensor[(4, 1, 1, 1), float32] */) /* ty=Tensor[(4, 1, 1, 1), float32] */;
     %836 = qnn.quantize(meta[relay.Constant][245] /* ty=Tensor[(4, 32, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(4, 32, 1, 1), int8] */;
     %837 = squeeze(%835) /* ty=Tensor[(4), float32] */;
     %838 = power(2f /* ty=float32 */, 26f /* ty=float32 */) /* ty=float32 */;
     %839 = qnn.quantize(meta[relay.Constant][247] /* ty=Tensor[(4), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(4), int32] */;
     %840 = divide(1f /* ty=float32 */, %838) /* ty=float32 */;
     %841 = qnn.conv2d(%819, %836, 0 /* ty=int32 */, 0 /* ty=int32 */, %813, %837, padding=[0, 0, 0, 0], channels=4, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 4, 136, 240), int32] */;
     %842 = qnn.requantize(%839, %840, 0 /* ty=int32 */, meta[relay.Constant][248] /* ty=Tensor[(4), float32] */, meta[relay.Constant][249] /* ty=Tensor[(4), int32] */, axis=0, out_dtype="int32") /* ty=Tensor[(4), int32] */;
     %843 = nn.bias_add(%841, %842) /* ty=Tensor[(1, 4, 136, 240), int32] */;
     %844 = power(2f /* ty=float32 */, 4f /* ty=float32 */) /* ty=float32 */;
     %845 = qnn.dequantize(%843, meta[relay.Constant][248] /* ty=Tensor[(4), float32] */, meta[relay.Constant][249] /* ty=Tensor[(4), int32] */, axis=1) /* ty=Tensor[(1, 4, 136, 240), float32] */;
     %846 = divide(1f /* ty=float32 */, %844) /* ty=float32 */;
     %847 = qnn.quantize(%845, %846, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 4, 136, 240), int8] */;
     %848 = clip(%847, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 4, 136, 240), int8] */;
     %849 = qnn.dequantize(%848, %846, 0 /* ty=int32 */) /* ty=Tensor[(1, 4, 136, 240), float32] */;
     %850 = power(2f /* ty=float32 */, 7f /* ty=float32 */) /* ty=float32 */;
     %851 = sigmoid(%849) /* ty=Tensor[(1, 4, 136, 240), float32] */;
     %852 = divide(1f /* ty=float32 */, %850) /* ty=float32 */;
     %853 = qnn.quantize(%851, %852, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 4, 136, 240), int8] */;
     %854 = clip(%853, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 4, 136, 240), int8] */;
     %855 = qnn.dequantize(%854, %852, 0 /* ty=int32 */) /* ty=Tensor[(1, 4, 136, 240), float32] */;
     %856 = multiply(512f /* ty=float32 */, %855) /* ty=Tensor[(1, 4, 136, 240), float32] */;
     %857 = add(0f /* ty=float32 */, %856) /* ty=Tensor[(1, 4, 136, 240), float32] */;
     %858 = power(2f /* ty=float32 */, 23f /* ty=float32 */) /* ty=float32 */;
     %859 = divide(1f /* ty=float32 */, %858) /* ty=float32 */;
     %860 = multiply(%859, 51089f /* ty=float32 */) /* ty=float32 */;
     %861 = qnn.quantize(meta[relay.Constant][250] /* ty=Tensor[(1, 32, 1, 1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int8", axis=0) /* ty=Tensor[(1, 32, 1, 1), int8] */;
     %862 = squeeze(%860) /* ty=float32 */;
     %863 = power(2f /* ty=float32 */, 28f /* ty=float32 */) /* ty=float32 */;
     %864 = qnn.quantize(meta[relay.Constant][251] /* ty=Tensor[(1), float32] */, 1f /* ty=float32 */, 0 /* ty=int32 */, out_dtype="int32") /* ty=Tensor[(1), int32] */;
     %865 = divide(1f /* ty=float32 */, %863) /* ty=float32 */;
     %866 = qnn.conv2d(%819, %861, 0 /* ty=int32 */, 0 /* ty=int32 */, %813, %862, padding=[0, 0, 0, 0], channels=1, kernel_size=[1, 1], out_dtype="int32") /* ty=Tensor[(1, 1, 136, 240), int32] */;
     %867 = qnn.requantize(%864, %865, 0 /* ty=int32 */, 0.000190321f /* ty=float32 */, 0 /* ty=int32 */, axis=0, out_dtype="int32") /* ty=Tensor[(1), int32] */;
     %868 = nn.bias_add(%866, %867) /* ty=Tensor[(1, 1, 136, 240), int32] */;
     %869 = power(2f /* ty=float32 */, 6f /* ty=float32 */) /* ty=float32 */;
     %870 = qnn.dequantize(%868, 0.000190321f /* ty=float32 */, 0 /* ty=int32 */, axis=1) /* ty=Tensor[(1, 1, 136, 240), float32] */;
     %871 = divide(1f /* ty=float32 */, %869) /* ty=float32 */;
     %872 = qnn.quantize(%870, %871, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 1, 136, 240), int8] */;
     %873 = clip(%872, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 1, 136, 240), int8] */;
     %874 = qnn.dequantize(%873, %871, 0 /* ty=int32 */) /* ty=Tensor[(1, 1, 136, 240), float32] */;
     %875 = power(2f /* ty=float32 */, 7f /* ty=float32 */) /* ty=float32 */;
     %876 = sigmoid(%874) /* ty=Tensor[(1, 1, 136, 240), float32] */;
     %877 = divide(1f /* ty=float32 */, %875) /* ty=float32 */;
     %878 = qnn.quantize(%876, %877, 0 /* ty=int32 */, out_dtype="int8") /* ty=Tensor[(1, 1, 136, 240), int8] */;
     %879 = clip(%878, a_min=-127f, a_max=127f) /* ty=Tensor[(1, 1, 136, 240), int8] */;
     %880 = qnn.dequantize(%879, %877, 0 /* ty=int32 */) /* ty=Tensor[(1, 1, 136, 240), float32] */;
     %881 = multiply(1.5708f /* ty=float32 */, %880) /* ty=Tensor[(1, 1, 136, 240), float32] */;
     %882 = add(-0.785398f /* ty=float32 */, %881) /* ty=Tensor[(1, 1, 136, 240), float32] */;
     %883 = power(%857, 1f /* ty=float32 */) /* ty=Tensor[(1, 4, 136, 240), float32] */;
     %884 = power(%882, 1f /* ty=float32 */) /* ty=Tensor[(1, 1, 136, 240), float32] */;
     %885 = (%883, %884) /* ty=(Tensor[(1, 4, 136, 240), float32], Tensor[(1, 1, 136, 240), float32]) */;
     %886 = qnn.dequantize(%832, %830, 0 /* ty=int32 */) /* ty=Tensor[(1, 1, 136, 240), float32] */;
     %887 = concatenate(%885, axis=1) /* ty=Tensor[(1, 5, 136, 240), float32] */;
     %888 = (%886, %887, %im_info) /* ty=(Tensor[(1, 1, 136, 240), float32], Tensor[(1, 5, 136, 240), float32], Tensor[(1, 3), float32]) */;
     %889 = vision.east_proposal(%888, score_thre=0.8f, nms_thre=0.2f) /* ty=(Tensor[(32640, 11), float32], Tensor[(1), int32]) */;
     %889.0 /* ty=Tensor[(32640, 11), float32] */
   }
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@tvm.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [tvm] mbrookhart commented on issue #12707: [Bug] a bug about fake quantize to intege and split op.

Posted by GitBox <gi...@apache.org>.
mbrookhart commented on issue #12707:
URL: https://github.com/apache/tvm/issues/12707#issuecomment-1238326469

   @honghuichao Would it be possible to get instructions to reproduce the error? I'm not sure I can do that from the relay graph.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@tvm.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [tvm] honghuichao commented on issue #12707: [Bug] a bug about fake quantize to intege and split op.

Posted by GitBox <gi...@apache.org>.
honghuichao commented on issue #12707:
URL: https://github.com/apache/tvm/issues/12707#issuecomment-1320778719

   @mbrookhart Sorry to trouble you,I've got a question to consult you. why the output type of  qnn.add must be int8 when the input type  of qnn.add is int8. I thik the output type of qnn.add / qnn.mul/..  can set by user via api.
   because I met such case:
   quantize+dequantize+add+add+quantize:
   I run FQ2i Pass. it will transform to quantize+qnn.add(out_type="int8")+qnn.add.
   but I think the right expr is quantize+qnn.add(output_type="int32")+qnn.add


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@tvm.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [tvm] honghuichao commented on issue #12707: [Bug] a bug about fake quantize to intege and split op.

Posted by GitBox <gi...@apache.org>.
honghuichao commented on issue #12707:
URL: https://github.com/apache/tvm/issues/12707#issuecomment-1238182918

   I setting use_qat to true


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@tvm.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [tvm] honghuichao commented on issue #12707: [Bug] a bug about fake quantize to intege and split op.

Posted by GitBox <gi...@apache.org>.
honghuichao commented on issue #12707:
URL: https://github.com/apache/tvm/issues/12707#issuecomment-1239634333

   I add the code at tvm/src/relay/transforms/fake_quantization_to_integer.cc 469


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@tvm.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [tvm] honghuichao commented on issue #12707: [Bug] a bug about fake quantize to intege and split op.

Posted by GitBox <gi...@apache.org>.
honghuichao commented on issue #12707:
URL: https://github.com/apache/tvm/issues/12707#issuecomment-1240169764

   @mbrookhart It is true, but the reason why I do this instead of constant folding is to maintain some quantitative semantics to facilitate adaptation to the underlying hardware,such as power 2


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@tvm.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [tvm] honghuichao commented on issue #12707: [Bug] a bug about fake quantize to intege and split op.

Posted by GitBox <gi...@apache.org>.
honghuichao commented on issue #12707:
URL: https://github.com/apache/tvm/issues/12707#issuecomment-1241451747

   @mbrookhart 
   Do you have a plan to modify this pass? If not, I may change another plan to support my schedule. Thanks


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@tvm.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org