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 2020/03/05 12:18:40 UTC

[GitHub] [incubator-tvm] FrozenGene commented on issue #4828: [QNN][TFLite] TFLite rounding mode support

FrozenGene commented on issue #4828: [QNN][TFLite] TFLite rounding mode support
URL: https://github.com/apache/incubator-tvm/pull/4828#issuecomment-595200848
 
 
   > The problem is located and solved. The discrepancy comes from average pooling calculation when input is integral type. tflite does a UPWARD rounding after the division in avg_pool but current topi implementation of avg_pool does of FLOOR after the division.
   > 
   > The fix is added and tested locally on cpu. Now the qnn tests in tflite test_forward has rtol and atol set to 0, which should meet the bit-exact exectution requirement.
   > 
   > @FrozenGene @anijain2305 @tqchen @u99127 Please have another look, thanks!
   
   Thanks @LiangHao151941 !
   
   Maybe we have to handle it a bit more. Please see: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/kernels/internal/optimized/integer_ops/pooling.h#L300
   
   The default behaviour of TFLite is `optimize`, so TFLite will run `optimzed` of `kernel` directory. For average pool, it has two conditions. The type of `acc` will be `uint16` if `params.filter_height * params.filter_width <= 16 * 16` , otherwise, the type of `acc` will be `int32` as our implementation. If we want to keep bit-exact result, we should handle it here too. You remind me this situation, I met this bug before if we don't handle it.
   
   > Another way is we provide rounding args for qnn.add / qnn.mul / qnn.conconcate, because they use requantize in fact too, so they need rounding.
   
   We should handle these ops too.

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services