ai-edge-quantizer-nightly 0.4.0.dev20251001__py3-none-any.whl → 0.4.0.dev20251002__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -131,6 +131,7 @@ MIN_MAX_OP_NAME_MATERIALIZE_FUNC_DICT = {
131
131
  _TFLOpName.REDUCE_MIN: common_quantize.materialize_reduce_min,
132
132
  _TFLOpName.EQUAL: common_quantize.materialize_equal,
133
133
  _TFLOpName.NOT_EQUAL: common_quantize.materialize_not_equal,
134
+ _TFLOpName.MIRROR_PAD: common_quantize.materialize_mirror_pad,
134
135
  }
135
136
  for op_name, materialize_func in MIN_MAX_OP_NAME_MATERIALIZE_FUNC_DICT.items():
136
137
  register_quantized_op(
@@ -284,6 +285,7 @@ _OCTAV_OP_NAME_MATERIALIZE_FUNC_DICT = immutabledict({
284
285
  _TFLOpName.REDUCE_MIN: common_quantize.materialize_reduce_min,
285
286
  _TFLOpName.EQUAL: common_quantize.materialize_equal,
286
287
  _TFLOpName.NOT_EQUAL: common_quantize.materialize_not_equal,
288
+ _TFLOpName.MIRROR_PAD: common_quantize.materialize_mirror_pad,
287
289
  })
288
290
 
289
291
  for op_name, materialize_func in _OCTAV_OP_NAME_MATERIALIZE_FUNC_DICT.items():
@@ -748,6 +748,34 @@ def materialize_padv2(
748
748
  )
749
749
 
750
750
 
751
+ def materialize_mirror_pad(
752
+ get_tensor_quant_params_fn: qtyping.GetTensorQuantParamsFuncSignature,
753
+ op_info: qtyping.OpInfo,
754
+ graph_info: qtyping.GraphInfo,
755
+ tensor_name_to_qsv: dict[str, Any],
756
+ ) -> list[qtyping.TensorTransformationParams]:
757
+ """Materialize tensors in tfl.mirror_pad.
758
+
759
+ Args:
760
+ get_tensor_quant_params_fn: Function to get quantization parameters for the
761
+ tensor.
762
+ op_info: Aggregated information about the op (e.g., quantization config).
763
+ graph_info: Graph information needed to perform quantization for the op.
764
+ tensor_name_to_qsv: A map of tensor name to quantization parameters.
765
+
766
+ Returns:
767
+ A list of `qtyping.TensorTransformationParams` for the tensors in the op.
768
+ """
769
+ return common_utils.materialize_standard_op(
770
+ op_info,
771
+ graph_info,
772
+ tensor_name_to_qsv,
773
+ get_tensor_quant_params_fn,
774
+ constraint=_OpQuantConstraint.SAME_AS_INPUT_SCALE,
775
+ inputs_to_ignore=[1], # Paddings tensor does not need to be quantized.
776
+ )
777
+
778
+
751
779
  def materialize_squared_difference(
752
780
  get_tensor_quant_params_fn: qtyping.GetTensorQuantParamsFuncSignature,
753
781
  op_info: qtyping.OpInfo,
@@ -199,7 +199,8 @@ DEFAULT_JSON_POLICY = """
199
199
  "PADV2",
200
200
  "REDUCE_MIN",
201
201
  "EQUAL",
202
- "NOT_EQUAL"
202
+ "NOT_EQUAL",
203
+ "MIRROR_PAD"
203
204
  ],
204
205
  "static_wi8_ai8": [
205
206
  "ADD",
@@ -248,7 +249,8 @@ DEFAULT_JSON_POLICY = """
248
249
  "PADV2",
249
250
  "REDUCE_MIN",
250
251
  "EQUAL",
251
- "NOT_EQUAL"
252
+ "NOT_EQUAL",
253
+ "MIRROR_PAD"
252
254
  ],
253
255
  "static_wi4_ai8": ["FULLY_CONNECTED", "CONV_2D", "INPUT", "OUTPUT", "EMBEDDING_LOOKUP"],
254
256
  "static_wi4_ai16": ["FULLY_CONNECTED", "CONV_2D", "INPUT", "OUTPUT", "EMBEDDING_LOOKUP"],
@@ -80,6 +80,7 @@ class TFLOperationName(str, enum.Enum):
80
80
  REDUCE_MIN = 'REDUCE_MIN'
81
81
  EQUAL = 'EQUAL'
82
82
  NOT_EQUAL = 'NOT_EQUAL'
83
+ MIRROR_PAD = 'MIRROR_PAD'
83
84
 
84
85
 
85
86
  class QuantizeMode(enum.Enum):
@@ -28,7 +28,7 @@ class ConstrainedOpsUtilsTest(parameterized.TestCase):
28
28
  dict(
29
29
  testcase_name="same_as_input_scale",
30
30
  constraint=_OpQuantConstraint.SAME_AS_INPUT_SCALE,
31
- expected_num_ops=15,
31
+ expected_num_ops=16,
32
32
  ),
33
33
  dict(
34
34
  testcase_name="same_as_output_scale",
@@ -74,6 +74,7 @@ TFL_OP_NAME_TO_CODE = immutabledict.immutabledict({
74
74
  _TFLOpName.REDUCE_MIN: schema.BuiltinOperator.REDUCE_MIN,
75
75
  _TFLOpName.EQUAL: schema.BuiltinOperator.EQUAL,
76
76
  _TFLOpName.NOT_EQUAL: schema.BuiltinOperator.NOT_EQUAL,
77
+ _TFLOpName.MIRROR_PAD: schema.BuiltinOperator.MIRROR_PAD,
77
78
  })
78
79
 
79
80
  TFL_OP_CODE_TO_NAME = immutabledict.immutabledict(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ai-edge-quantizer-nightly
3
- Version: 0.4.0.dev20251001
3
+ Version: 0.4.0.dev20251002
4
4
  Summary: A quantizer for advanced developers to quantize converted AI Edge models.
5
5
  Home-page: https://github.com/google-ai-edge/ai-edge-quantizer
6
6
  Keywords: On-Device ML,AI,Google,TFLite,Quantization,LLMs,GenAI
@@ -1,18 +1,18 @@
1
1
  ai_edge_quantizer/__init__.py,sha256=4pFSkukSwahYyzwqia0yPRyz8TnFQfGRthVJhYpMWas,793
2
- ai_edge_quantizer/algorithm_manager.py,sha256=6-kM-pV6N7vCY7c043fWXuGTNHWdXqvI3ezDxjBdrx0,16022
2
+ ai_edge_quantizer/algorithm_manager.py,sha256=Ri4bNqbSTmtlsYZiJYHtkjNEsl8h5tZ_1uV_stJ3HUY,16156
3
3
  ai_edge_quantizer/algorithm_manager_api.py,sha256=u903TG0s1uIDhJqfeJne3CFl8A93phZrwgV2-hwdcXU,9247
4
4
  ai_edge_quantizer/algorithm_manager_api_test.py,sha256=w6bSONvXkX6bzXAGc0-7b6gNDt9oz9ieq97KP8Sg_JU,7666
5
5
  ai_edge_quantizer/calibrator.py,sha256=Sms7_AIHPH9G5xFaz5Ef3a5gPhxuIWQI8d2LUM8C96I,12071
6
6
  ai_edge_quantizer/calibrator_test.py,sha256=ZLzIMWB2FSFU4TOatDioYuwp_kLh8iSCefZ5_Q9FU7s,11900
7
7
  ai_edge_quantizer/conftest.py,sha256=SxCz-5LlRD_lQm4hQc4c6IGG7DS8d7IyEWY9gnscPN0,794
8
- ai_edge_quantizer/default_policy.py,sha256=wiwBENR6uwZjFmIdDFwzzuciC_tyy9hXtHNndHmDiBY,11730
8
+ ai_edge_quantizer/default_policy.py,sha256=6eJA0eX5Npv8lw_0EDS5iPldInoURQKEDhDZ272VG1Q,11770
9
9
  ai_edge_quantizer/model_modifier.py,sha256=teGa8I6kGvn6TQY6Xv53YFIc_pQEhNvM9Zb4bvhezyw,7110
10
10
  ai_edge_quantizer/model_modifier_test.py,sha256=cJd04SLOG-fQZZNZPcisoBLx3cLtWEwGqUBbLb-pif4,4751
11
11
  ai_edge_quantizer/model_validator.py,sha256=Hj0_5o-Oa3dSlJ3ryVjRhvsyelHNyek1GrtG9buMczg,13153
12
12
  ai_edge_quantizer/model_validator_test.py,sha256=EeqOP_mrZsnZ3rug756s0ryDDqd2KgIDld5Lm_gDuWY,13020
13
13
  ai_edge_quantizer/params_generator.py,sha256=0w-sDGk84sVNkXoduon1wDqq30sGOHVgBVbdg44QVF4,20153
14
14
  ai_edge_quantizer/params_generator_test.py,sha256=RDYoRZDJfEZRtjlTAU2kZ_4t3JHOqEHxfJX9V4ETAhg,40597
15
- ai_edge_quantizer/qtyping.py,sha256=gBNBPuh488IujrpCTIoNrPKRXJXdsuzbzl7oi7MPZpc,17121
15
+ ai_edge_quantizer/qtyping.py,sha256=7aEMPA4qr4CGD3NXtZgG2fDoQX5NzK9jwSv1yWNqQV4,17149
16
16
  ai_edge_quantizer/quantizer.py,sha256=ckAEOnnBxuCKZuvlzdChevCKPuE-IeDPHCNtFTWr250,17857
17
17
  ai_edge_quantizer/quantizer_test.py,sha256=m6f4ayyaF3yQb9i4V0aFAbmGw0OKZ2Zam1RoTPh-u24,22917
18
18
  ai_edge_quantizer/recipe.py,sha256=MEkfQ2Sg3KAE9LAORHWcbjYNPg06EUbwc1d-VspQA2U,6461
@@ -28,7 +28,7 @@ ai_edge_quantizer/algorithms/nonlinear_quantize/__init__.py,sha256=lpq1g2ayg3lCP
28
28
  ai_edge_quantizer/algorithms/nonlinear_quantize/float_casting.py,sha256=Bs9CK7wZAw6jNaZ8xEtbwO2vM34VYXNZSMVWvxJo9nw,9297
29
29
  ai_edge_quantizer/algorithms/nonlinear_quantize/float_casting_test.py,sha256=EqIHGEZ1LgUrTN7zf880RuAzEv3Qy7kgh5ivObJGHSo,22646
30
30
  ai_edge_quantizer/algorithms/uniform_quantize/__init__.py,sha256=lpq1g2ayg3lCPLy79t2VicYcnGKw64FfYIj1V7J-4m8,676
31
- ai_edge_quantizer/algorithms/uniform_quantize/common_quantize.py,sha256=E17cSR-MoUoAgAVIKLMfrjONmqibwOPRLsD521h1Gh0,37946
31
+ ai_edge_quantizer/algorithms/uniform_quantize/common_quantize.py,sha256=rUHraqNi0iJ0AyUQfAiYkyXG2rSy7GlhnqmwJeoLStg,38952
32
32
  ai_edge_quantizer/algorithms/uniform_quantize/common_quantize_test.py,sha256=GGf_n3wIeg3GB_eGsmyNJ0fTcxgpeMMbugTMRONK6TQ,3553
33
33
  ai_edge_quantizer/algorithms/uniform_quantize/dequantized_weight_recovery.py,sha256=BDdn_uBZakfHyzdMJPKadsOqxqyC-s6W2ZzFH99L4fE,8652
34
34
  ai_edge_quantizer/algorithms/uniform_quantize/dequantized_weight_recovery_test.py,sha256=sT5eX5TLZEHTtPfnSkCPDlS0sQxlTFWbCsbvOuj--yY,8889
@@ -66,16 +66,16 @@ ai_edge_quantizer/utils/__init__.py,sha256=lpq1g2ayg3lCPLy79t2VicYcnGKw64FfYIj1V
66
66
  ai_edge_quantizer/utils/calibration_utils.py,sha256=iMf_bSCf-O86MzDt5D9hLKqbTydqLwirluaC6BJ9yHo,11553
67
67
  ai_edge_quantizer/utils/calibration_utils_test.py,sha256=4BlksXl7b4yptL8xPR67hmJCnjhN9V10a2PunzfHrUE,9372
68
68
  ai_edge_quantizer/utils/constrained_ops_utils.py,sha256=EAITCf7Ku_PFZcw3K-wd-8hGbyuRd5W5UtNdGvalwAE,4478
69
- ai_edge_quantizer/utils/constrained_ops_utils_test.py,sha256=5vWIzWRI-uPi7OBppc8rMXNX32Ph4d5IvXGstOHMV3Y,1756
69
+ ai_edge_quantizer/utils/constrained_ops_utils_test.py,sha256=HNZstSm6-7xgSmM-7ilHRjuOKsq6tivpxayphm9Oghs,1756
70
70
  ai_edge_quantizer/utils/test_utils.py,sha256=a4Nk-wbeB09dFjTDZiA0K67d26j5DD0UDH_GIVmVG_4,8685
71
- ai_edge_quantizer/utils/tfl_flatbuffer_utils.py,sha256=anbxbIKS7t8iIkJZJH7AkAR18xYWLtKTzVJ6tVD4DXQ,11944
71
+ ai_edge_quantizer/utils/tfl_flatbuffer_utils.py,sha256=LN-WonrcJLP9bB4lULd5VIg_8YLTcp891ZuDZ5nDGe8,12006
72
72
  ai_edge_quantizer/utils/tfl_flatbuffer_utils_test.py,sha256=K1SbK8q92qYVtiVj0I0GtugsPTkpIpEKv9zakvFV_Sc,8555
73
73
  ai_edge_quantizer/utils/tfl_interpreter_utils.py,sha256=EoVjI_hplX_Rml3hfRsGmQOihexmizeJqt4SQcET9aA,14925
74
74
  ai_edge_quantizer/utils/tfl_interpreter_utils_test.py,sha256=6fjkM-rycZ95L4yfvlr0TN6RlrhfPzxNUYrZaYO_F0A,12013
75
75
  ai_edge_quantizer/utils/validation_utils.py,sha256=yJH9Cvepr_XWn-3Hsh91j7HuC5iLQHAyskyQ48bGNoc,4797
76
76
  ai_edge_quantizer/utils/validation_utils_test.py,sha256=1sblJWHLTYTbn1Qi9rwnrREOSXRy5KwHAWSwgI1e_aU,3697
77
- ai_edge_quantizer_nightly-0.4.0.dev20251001.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
78
- ai_edge_quantizer_nightly-0.4.0.dev20251001.dist-info/METADATA,sha256=Lz_ZDdMl2fFALbGbeUJwv3sP8ZrgOsYLLgdlD5p5G-I,1508
79
- ai_edge_quantizer_nightly-0.4.0.dev20251001.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
80
- ai_edge_quantizer_nightly-0.4.0.dev20251001.dist-info/top_level.txt,sha256=8QTfPnFXNVUhScFLaa-NWZMFWMn72M50DVPubpwWB1g,18
81
- ai_edge_quantizer_nightly-0.4.0.dev20251001.dist-info/RECORD,,
77
+ ai_edge_quantizer_nightly-0.4.0.dev20251002.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
78
+ ai_edge_quantizer_nightly-0.4.0.dev20251002.dist-info/METADATA,sha256=gx_gBIYVh7XDUrBl-uDmPRRRrawHIroH_14pjZmhL4w,1508
79
+ ai_edge_quantizer_nightly-0.4.0.dev20251002.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
80
+ ai_edge_quantizer_nightly-0.4.0.dev20251002.dist-info/top_level.txt,sha256=8QTfPnFXNVUhScFLaa-NWZMFWMn72M50DVPubpwWB1g,18
81
+ ai_edge_quantizer_nightly-0.4.0.dev20251002.dist-info/RECORD,,