Skip to content

Commit 0fa3540

Browse files
margaretqianMargaret Qian
andauthored
[QNN] Add nn.adaptive_avg_pool1d to FQ2I (#10541)
* add adaptive avg pool 1d * clean up * lint Co-authored-by: Margaret Qian <mqian@octoml.ai>
1 parent 060d9d2 commit 0fa3540

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

python/tvm/relay/transform/fake_quantization_to_integer.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,17 @@ def identity(expr, type_map):
108108
register_unary_identity("min")
109109

110110

111+
@register_fake_quantization_to_integer("nn.adaptive_avg_pool1d")
112+
def adaptive_avgpool1d(expr, type_map):
113+
"""Rewrite an adaptive avgpool op"""
114+
arg = expr.args[0]
115+
t = type_map[arg]
116+
arg = relay.op.cast(arg, "int32")
117+
out = relay.op.nn.adaptive_avg_pool1d(arg)
118+
out = relay.op.cast(out, t.dtype)
119+
return [out, t]
120+
121+
111122
@register_fake_quantization_to_integer("nn.avg_pool2d")
112123
def avgpool2d(expr, type_map):
113124
"""Rewrite a avgpool op"""

tests/python/relay/test_pass_fake_quantization_to_integer.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,19 @@ def test_fake_quantize_maxpool():
277277
compare_fq_to_int(op, [x_np])
278278

279279

280+
def test_fake_quantize_adaptive_avgpool1d():
281+
x = relay.var("x", shape=[1, 3, 224, 224], dtype="int8")
282+
283+
zero = relay.const(0)
284+
x = relay.qnn.op.dequantize(x, relay.const(2.0), zero)
285+
op = relay.op.nn.adaptive_avg_pool1d(x)
286+
op = relay.qnn.op.quantize(op, relay.const(2.0), zero)
287+
288+
x_np = np.random.randint(-128, 127, size=[1, 3, 224, 224], dtype="int8")
289+
290+
compare_fq_to_int(op, [x_np], True)
291+
292+
280293
def test_fake_quantize_avgpool():
281294
x = relay.var("x", shape=[1, 3, 224, 224], dtype="int8")
282295

0 commit comments

Comments
 (0)