ai-edge-torch-nightly 0.3.0.dev20240905__py3-none-any.whl → 0.3.0.dev20240908__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.
- ai_edge_torch/_convert/fx_passes/optimize_layout_transposes_pass/layout_check.py +2 -0
- ai_edge_torch/_convert/fx_passes/optimize_layout_transposes_pass/layout_rewrite.py +2 -1
- ai_edge_torch/generative/layers/unet/blocks_2d.py +17 -15
- ai_edge_torch/generative/test/test_model_conversion.py +10 -12
- ai_edge_torch/generative/test/test_model_conversion_large.py +17 -17
- ai_edge_torch/odml_torch/export.py +3 -6
- ai_edge_torch/odml_torch/jax_bridge/_wrap.py +5 -7
- ai_edge_torch/odml_torch/lowerings/registry.py +8 -0
- ai_edge_torch/version.py +1 -1
- {ai_edge_torch_nightly-0.3.0.dev20240905.dist-info → ai_edge_torch_nightly-0.3.0.dev20240908.dist-info}/METADATA +1 -1
- {ai_edge_torch_nightly-0.3.0.dev20240905.dist-info → ai_edge_torch_nightly-0.3.0.dev20240908.dist-info}/RECORD +14 -14
- {ai_edge_torch_nightly-0.3.0.dev20240905.dist-info → ai_edge_torch_nightly-0.3.0.dev20240908.dist-info}/LICENSE +0 -0
- {ai_edge_torch_nightly-0.3.0.dev20240905.dist-info → ai_edge_torch_nightly-0.3.0.dev20240908.dist-info}/WHEEL +0 -0
- {ai_edge_torch_nightly-0.3.0.dev20240905.dist-info → ai_edge_torch_nightly-0.3.0.dev20240908.dist-info}/top_level.txt +0 -0
@@ -150,6 +150,7 @@ def _qdq_layout_sensitive_inputs_getter(node: Node):
|
|
150
150
|
# ==== Ops must be NHWC if possible
|
151
151
|
|
152
152
|
|
153
|
+
@layout_sensitive_inputs_getters.register(aten.conv2d)
|
153
154
|
@layout_sensitive_inputs_getters.register(aten.convolution)
|
154
155
|
@layout_sensitive_inputs_getters.register(
|
155
156
|
aten._native_batch_norm_legit_no_training
|
@@ -168,6 +169,7 @@ def _first_arg_getter(node):
|
|
168
169
|
@nhwcable_node_checkers.register(aten.upsample_bilinear2d)
|
169
170
|
@nhwcable_node_checkers.register(aten.upsample_nearest2d)
|
170
171
|
@nhwcable_node_checkers.register(aten._adaptive_avg_pool2d)
|
172
|
+
@nhwcable_node_checkers.register(aten.conv2d)
|
171
173
|
@nhwcable_node_checkers.register(aten.convolution)
|
172
174
|
def _all_layout_sensitive_inputs_are_4d_checker(node: Node):
|
173
175
|
can_be = all_layout_sensitive_inputs_are_4d(node)
|
@@ -229,11 +229,12 @@ def transpose_first_arg_rewriter(node: torch.fx.Node):
|
|
229
229
|
node.target = nhwc_op
|
230
230
|
|
231
231
|
|
232
|
+
@rewriters.register(aten.conv2d)
|
232
233
|
@rewriters.register(aten.convolution)
|
233
234
|
def _aten_convolution_rewriter(node: torch.fx.Node):
|
234
235
|
op = node.target
|
235
236
|
|
236
|
-
def conv_nhwc(input, weight, bias, *args, **kwargs):
|
237
|
+
def conv_nhwc(input, weight, bias=None, *args, **kwargs):
|
237
238
|
nonlocal op
|
238
239
|
nhwc_bias = None
|
239
240
|
if bias is not None and len(bias.shape) == 1:
|
@@ -145,14 +145,15 @@ class AttentionBlock2D(nn.Module):
|
|
145
145
|
x = x.view(B, C, H * W)
|
146
146
|
x = x.transpose(-1, -2)
|
147
147
|
else:
|
148
|
-
x =
|
149
|
-
x = x.transpose(-1, -2)
|
148
|
+
x = torch.permute(input_tensor, (0, 2, 3, 1))
|
150
149
|
x = self.norm(x)
|
150
|
+
x = x.view(B, H * W, C)
|
151
151
|
x = x.contiguous() # Prevent BATCH_MATMUL op in converted tflite.
|
152
152
|
x = self.attention(x)
|
153
|
-
x = x.
|
154
|
-
|
153
|
+
x = x.view(B, H, W, C)
|
154
|
+
residual = torch.permute(residual, (0, 2, 3, 1))
|
155
155
|
x = x + residual
|
156
|
+
x = torch.permute(x, (0, 3, 1, 2))
|
156
157
|
return x
|
157
158
|
|
158
159
|
|
@@ -206,13 +207,14 @@ class CrossAttentionBlock2D(nn.Module):
|
|
206
207
|
x = x.view(B, C, H * W)
|
207
208
|
x = x.transpose(-1, -2)
|
208
209
|
else:
|
209
|
-
x =
|
210
|
-
x = x.transpose(-1, -2)
|
210
|
+
x = torch.permute(input_tensor, (0, 2, 3, 1))
|
211
211
|
x = self.norm(x)
|
212
|
+
x = x.view(B, H * W, C)
|
212
213
|
x = self.attention(x, context_tensor)
|
213
|
-
x = x.
|
214
|
-
|
214
|
+
x = x.view(B, H, W, C)
|
215
|
+
residual = torch.permute(residual, (0, 2, 3, 1))
|
215
216
|
x = x + residual
|
217
|
+
x = torch.permute(x, (0, 3, 1, 2))
|
216
218
|
return x
|
217
219
|
|
218
220
|
|
@@ -250,17 +252,17 @@ class FeedForwardBlock2D(nn.Module):
|
|
250
252
|
x = x.view(B, C, H * W)
|
251
253
|
x = x.transpose(-1, -2)
|
252
254
|
else:
|
253
|
-
x =
|
254
|
-
x = x.transpose(-1, -2)
|
255
|
+
x = torch.permute(input_tensor, (0, 2, 3, 1))
|
255
256
|
x = self.norm(x)
|
257
|
+
x = x.view(B, H * W, C)
|
256
258
|
x = self.w1(x)
|
257
259
|
x = self.act(x)
|
258
260
|
x = self.w2(x)
|
259
|
-
|
260
|
-
|
261
|
-
x = x
|
262
|
-
|
263
|
-
return x
|
261
|
+
x = x.view(B, H, W, C)
|
262
|
+
residual = torch.permute(residual, (0, 2, 3, 1))
|
263
|
+
x = x + residual
|
264
|
+
x = torch.permute(x, (0, 3, 1, 2))
|
265
|
+
return x
|
264
266
|
|
265
267
|
|
266
268
|
class TransformerBlock2D(nn.Module):
|
@@ -129,6 +129,7 @@ class TestModelConversion(googletest.TestCase):
|
|
129
129
|
)
|
130
130
|
|
131
131
|
copied_model = copy.deepcopy(pytorch_model)
|
132
|
+
copied_edge = copy.deepcopy(edge_model)
|
132
133
|
|
133
134
|
self.assertTrue(
|
134
135
|
model_coverage.compare_tflite_torch(
|
@@ -140,18 +141,15 @@ class TestModelConversion(googletest.TestCase):
|
|
140
141
|
)
|
141
142
|
)
|
142
143
|
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
num_valid_inputs=1,
|
153
|
-
)
|
154
|
-
)
|
144
|
+
self.assertTrue(
|
145
|
+
model_coverage.compare_tflite_torch(
|
146
|
+
copied_edge,
|
147
|
+
copied_model,
|
148
|
+
(decode_token, decode_input_pos),
|
149
|
+
signature_name="decode",
|
150
|
+
num_valid_inputs=1,
|
151
|
+
)
|
152
|
+
)
|
155
153
|
|
156
154
|
|
157
155
|
if __name__ == "__main__":
|
@@ -82,28 +82,28 @@ class TestModelConversion(googletest.TestCase):
|
|
82
82
|
model.eval()
|
83
83
|
|
84
84
|
idx = torch.from_numpy(np.array([[1, 2, 3, 4]]))
|
85
|
-
|
86
|
-
|
87
|
-
|
85
|
+
prefill_tokens = torch.full((1, 10), 0, dtype=torch.long, device="cpu")
|
86
|
+
prefill_tokens[0, :4] = idx
|
87
|
+
prefill_input_pos = torch.arange(0, 10)
|
88
88
|
|
89
|
-
edge_model = ai_edge_torch.
|
89
|
+
edge_model = ai_edge_torch.signature(
|
90
|
+
"prefill", model, (prefill_tokens, prefill_input_pos)
|
91
|
+
).convert()
|
90
92
|
edge_model.set_interpreter_builder(
|
91
93
|
self._interpreter_builder(edge_model.tflite_model())
|
92
94
|
)
|
93
95
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
)
|
106
|
-
)
|
96
|
+
self.assertTrue(
|
97
|
+
model_coverage.compare_tflite_torch(
|
98
|
+
edge_model,
|
99
|
+
model,
|
100
|
+
(prefill_tokens, prefill_input_pos),
|
101
|
+
signature_name="prefill",
|
102
|
+
num_valid_inputs=1,
|
103
|
+
atol=1e-2,
|
104
|
+
rtol=1e-5,
|
105
|
+
)
|
106
|
+
)
|
107
107
|
|
108
108
|
@googletest.skipIf(
|
109
109
|
ai_edge_config.Config.use_torch_xla,
|
@@ -227,12 +227,9 @@ def exported_program_to_mlir(
|
|
227
227
|
exported_program: torch.export.ExportedProgram,
|
228
228
|
) -> MlirLowered:
|
229
229
|
"""Lower the exported program to MLIR."""
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
exported_program = exported_program.run_decompositions(
|
234
|
-
lowerings.decompositions()
|
235
|
-
)
|
230
|
+
exported_program = exported_program.run_decompositions(
|
231
|
+
lowerings.decompositions()
|
232
|
+
)
|
236
233
|
|
237
234
|
with export_utils.create_ir_context() as context, ir.Location.unknown():
|
238
235
|
|
@@ -35,7 +35,7 @@ jax.config.update("jax_enable_x64", True)
|
|
35
35
|
|
36
36
|
def _lower_to_ir_text(
|
37
37
|
jaxfn, args, kwargs, ir_input_names: list[str] = None
|
38
|
-
) -> str:
|
38
|
+
) -> tuple[str, list[ir.Value]]:
|
39
39
|
args = utils.tree_map_list_to_tuple(args)
|
40
40
|
kwargs = utils.tree_map_list_to_tuple(kwargs)
|
41
41
|
|
@@ -74,7 +74,9 @@ def _lower_to_ir_text(
|
|
74
74
|
x for x in pytree.tree_flatten(arg)[0] if isinstance(x, ir.Value)
|
75
75
|
]
|
76
76
|
|
77
|
-
def
|
77
|
+
def lower_wrapper(*args):
|
78
|
+
nonlocal jax_lower_static_kwargs
|
79
|
+
|
78
80
|
jaxfn_args = []
|
79
81
|
jaxfn_kwargs = jax_lower_static_kwargs.copy()
|
80
82
|
for name, arg in zip(jax_lower_argnames, args):
|
@@ -85,11 +87,7 @@ def _lower_to_ir_text(
|
|
85
87
|
|
86
88
|
return jaxfn(*jaxfn_args, **jaxfn_kwargs)
|
87
89
|
|
88
|
-
return (
|
89
|
-
jax.jit(new_lowering, static_argnames=static_argnames)
|
90
|
-
.lower(*jax_lower_args, **jax_lower_static_kwargs)
|
91
|
-
.as_text()
|
92
|
-
), ir_inputs
|
90
|
+
return jax.jit(lower_wrapper).lower(*jax_lower_args).as_text(), ir_inputs
|
93
91
|
|
94
92
|
|
95
93
|
def wrap(jaxfn: Callable[Any, Any], ir_input_names: list[str] = None):
|
@@ -52,6 +52,7 @@ class LoweringRegistry:
|
|
52
52
|
|
53
53
|
|
54
54
|
global_registry = LoweringRegistry()
|
55
|
+
global_registry.decompositions.update(torch._decomp.core_aten_decompositions())
|
55
56
|
global_registry.decompositions.update(
|
56
57
|
torch._decomp.get_decompositions([
|
57
58
|
torch.ops.aten.upsample_nearest2d,
|
@@ -70,6 +71,13 @@ global_registry.decompositions.update(
|
|
70
71
|
])
|
71
72
|
)
|
72
73
|
|
74
|
+
torch._decomp.remove_decompositions(
|
75
|
+
global_registry.decompositions,
|
76
|
+
[
|
77
|
+
torch.ops.aten.roll,
|
78
|
+
],
|
79
|
+
)
|
80
|
+
|
73
81
|
|
74
82
|
def lookup(op):
|
75
83
|
return global_registry.lookup(op)
|
ai_edge_torch/version.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ai-edge-torch-nightly
|
3
|
-
Version: 0.3.0.
|
3
|
+
Version: 0.3.0.dev20240908
|
4
4
|
Summary: Supporting PyTorch models with the Google AI Edge TFLite runtime.
|
5
5
|
Home-page: https://github.com/google-ai-edge/ai-edge-torch
|
6
6
|
Keywords: On-Device ML,AI,Google,TFLite,PyTorch,LLMs,GenAI
|
@@ -2,7 +2,7 @@ ai_edge_torch/__init__.py,sha256=48qP37uHT90YPs4eIUQxCiWVwqGEX3idCUs6mQKvX1U,116
|
|
2
2
|
ai_edge_torch/config.py,sha256=PCd9PVrbUNeVIUDFUCnW4goDWU4bjouK28yMYU6VOi0,877
|
3
3
|
ai_edge_torch/conftest.py,sha256=r0GTrhMRhlmOGrrkvumHN8hkmyug6WvF60vWq8wRIBI,758
|
4
4
|
ai_edge_torch/model.py,sha256=NYV6Mkaje_ditIEI_s_7nLP_-8i4kbGM8nRzieVkbUI,5397
|
5
|
-
ai_edge_torch/version.py,sha256
|
5
|
+
ai_edge_torch/version.py,sha256=gyyuDD-i83EGkYIzPuqIjPUIC8huFW09RDInbOSOx1c,706
|
6
6
|
ai_edge_torch/_convert/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
|
7
7
|
ai_edge_torch/_convert/conversion.py,sha256=kcv_QgNgeyDmrqwdzHicGNP68w6zF7GJg7YkMEIXp4Q,3759
|
8
8
|
ai_edge_torch/_convert/conversion_utils.py,sha256=Sr8qXVcTwc-ZnZmK7yxVrIOOp1S_vNrwzC0zUvLTI2o,2160
|
@@ -16,9 +16,9 @@ ai_edge_torch/_convert/fx_passes/build_interpolate_composite_pass.py,sha256=izep
|
|
16
16
|
ai_edge_torch/_convert/fx_passes/canonicalize_pass.py,sha256=8jcKqWzG7p5r3Cu7DXNP-4o4X2bqLaoXY7N6W8QsZXo,1582
|
17
17
|
ai_edge_torch/_convert/fx_passes/inject_mlir_debuginfo_pass.py,sha256=WKI8V9-V50agkiNVpBFWWp0BEpUfemdENuN1cEaGD-g,2370
|
18
18
|
ai_edge_torch/_convert/fx_passes/optimize_layout_transposes_pass/__init__.py,sha256=lxnoH-WGLeiQIF8XjMGodjiZEFTxucl7g05N7MR9OPk,796
|
19
|
-
ai_edge_torch/_convert/fx_passes/optimize_layout_transposes_pass/layout_check.py,sha256=
|
19
|
+
ai_edge_torch/_convert/fx_passes/optimize_layout_transposes_pass/layout_check.py,sha256=hDsl9AHzmyuSWsdHOSO114l4nBUgUdAOUWafMTipMgA,7629
|
20
20
|
ai_edge_torch/_convert/fx_passes/optimize_layout_transposes_pass/layout_mark.py,sha256=4RyGUwR22bZqkn_TnptenFJodc_Q43f4_SBG7gmTbos,1621
|
21
|
-
ai_edge_torch/_convert/fx_passes/optimize_layout_transposes_pass/layout_rewrite.py,sha256=
|
21
|
+
ai_edge_torch/_convert/fx_passes/optimize_layout_transposes_pass/layout_rewrite.py,sha256=NW37V6QYdPOZOVhqLcmssVk-VAeO4ECk_CrbEBh4B0E,12740
|
22
22
|
ai_edge_torch/_convert/fx_passes/optimize_layout_transposes_pass/op_func_registry.py,sha256=bsYnudRlXp1PJlu4GF25KSogSkBGQPSaecBrUTONKaw,1031
|
23
23
|
ai_edge_torch/_convert/fx_passes/optimize_layout_transposes_pass/pass_body.py,sha256=HXTDEP6_Z0I0s58H6I0yHz9qrkOxptIjKhxywfe8F80,10637
|
24
24
|
ai_edge_torch/_convert/fx_passes/optimize_layout_transposes_pass/utils.py,sha256=YLMttMg5PdvXTtQ8lxpKb434UGVvYVALV1-xeuH4UGc,2131
|
@@ -96,7 +96,7 @@ ai_edge_torch/generative/layers/normalization.py,sha256=u8lv0p-ktKcRqCDlOqZQa9WQ
|
|
96
96
|
ai_edge_torch/generative/layers/rotary_position_embedding.py,sha256=CZqOoibLcHvUgrgaIIWAlmk3XgE2inzx340MN-npLoU,1347
|
97
97
|
ai_edge_torch/generative/layers/scaled_dot_product_attention.py,sha256=VW-VP8e7FTSPCdu-6DVxpwNrIdgX0R_kq6F6MSEiyXE,3848
|
98
98
|
ai_edge_torch/generative/layers/unet/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
|
99
|
-
ai_edge_torch/generative/layers/unet/blocks_2d.py,sha256=
|
99
|
+
ai_edge_torch/generative/layers/unet/blocks_2d.py,sha256=V4zUAqjWeBseMPG9B-93LDv1LM3Dds6Q-H0NxY0koSA,27212
|
100
100
|
ai_edge_torch/generative/layers/unet/builder.py,sha256=zAqWXdimmMrQRhmE_t9XkS68mh6PSrzwb-2NZZXrR5I,1901
|
101
101
|
ai_edge_torch/generative/layers/unet/model_config.py,sha256=NvBJj09a7ZC-ChGE_ex-_kLnE_fjzrY6txbLSh1pMKA,9208
|
102
102
|
ai_edge_torch/generative/quantize/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
|
@@ -109,8 +109,8 @@ ai_edge_torch/generative/quantize/supported_schemes.py,sha256=FjdycEOvxRgBmQdZVu
|
|
109
109
|
ai_edge_torch/generative/test/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
|
110
110
|
ai_edge_torch/generative/test/test_experimental_ekv.py,sha256=8qv_eVtJW9GPvBEf2hPQe3tpdJ33XShya6MCX1FqrZM,4355
|
111
111
|
ai_edge_torch/generative/test/test_loader.py,sha256=_y5EHGgoNOmCuYonsB81UJScHVsTAQXUVd44czMAw6k,3379
|
112
|
-
ai_edge_torch/generative/test/test_model_conversion.py,sha256=
|
113
|
-
ai_edge_torch/generative/test/test_model_conversion_large.py,sha256=
|
112
|
+
ai_edge_torch/generative/test/test_model_conversion.py,sha256=b3InJ8Rx03YtHpE9h-j0pSXAY1cCf-dLlx4Y5LSJnRQ,5174
|
113
|
+
ai_edge_torch/generative/test/test_model_conversion_large.py,sha256=9JXcd-rX8MpsYeEWUFEXf783GOwYOLY64KzDfFdmRJ8,4484
|
114
114
|
ai_edge_torch/generative/test/test_quantize.py,sha256=kY_NRpF-v1i4clqI1CFFWEagJv-5PzBDkeJ2fInl9_w,5913
|
115
115
|
ai_edge_torch/generative/utilities/__init__.py,sha256=-_jxnnFnCgnTU4oTm4MnRsvL5lqhomBNdFBbqfmfHPo,720
|
116
116
|
ai_edge_torch/generative/utilities/loader.py,sha256=6J0aAP6-6LySeqeYIHKcchr5T9cVtSO34aoDr3V9gxY,12726
|
@@ -133,7 +133,7 @@ ai_edge_torch/lowertools/translate_recipe.py,sha256=DNzD0VD35YZDqiZjAF1IyIPSzUGP
|
|
133
133
|
ai_edge_torch/odml_torch/__init__.py,sha256=S8jOzE9nLof-6es3XDiGJRN-9H_XTxsVm9dE7lD3RWo,812
|
134
134
|
ai_edge_torch/odml_torch/_torch_future.py,sha256=jSYHf1CMTJzMizPMbu2b39hAt0ZTR6gQLq67GMe9KTo,2336
|
135
135
|
ai_edge_torch/odml_torch/_torch_library.py,sha256=Lw1gqL2HWNRspdTwNhIkYAHDyafHedHtkXyKKxn-Wss,805
|
136
|
-
ai_edge_torch/odml_torch/export.py,sha256=
|
136
|
+
ai_edge_torch/odml_torch/export.py,sha256=_n43AlaTLvAK6r1szs47gSBqp-x19ZNCNtyFIWzuE4Q,10322
|
137
137
|
ai_edge_torch/odml_torch/export_utils.py,sha256=q84U69ZQ82hLXw-xncJ8IW-K71Xux-NWlzZTs7hdZWA,5127
|
138
138
|
ai_edge_torch/odml_torch/tf_integration.py,sha256=lTFJPPEijLPFmn6qq2jbpVTQOo0YaOTK36kK6rCiyIE,5956
|
139
139
|
ai_edge_torch/odml_torch/composite/__init__.py,sha256=71GM_gDZxJyo38ZSoYSwhZX3xKA9rknO93JS9kw9w_c,778
|
@@ -143,7 +143,7 @@ ai_edge_torch/odml_torch/debuginfo/__init__.py,sha256=9ag6-WWRG50rPCtIV7OpIokEKu
|
|
143
143
|
ai_edge_torch/odml_torch/debuginfo/_build.py,sha256=1xCXOs3-9UcsOyLFH0uyQwLu7c06iYFTo0NQ7Ckbl2I,1465
|
144
144
|
ai_edge_torch/odml_torch/debuginfo/_op_polyfill.py,sha256=IvOBQyROI9WHS3umHRxsDW-1YElU9BPWzKtJA2eKWOI,1739
|
145
145
|
ai_edge_torch/odml_torch/jax_bridge/__init__.py,sha256=Jco5zvejxuyl9xHQxZICAKbkgH7x38qPlwUUpD7S15Q,730
|
146
|
-
ai_edge_torch/odml_torch/jax_bridge/_wrap.py,sha256=
|
146
|
+
ai_edge_torch/odml_torch/jax_bridge/_wrap.py,sha256=drN3L0uTsSjkluKgt6Ngq7b5HLReE_7iAitHpZ9PKqE,5428
|
147
147
|
ai_edge_torch/odml_torch/jax_bridge/utils.py,sha256=T8isGc896VrHZ6c_L5pYmLpolQ7ibcOlgWfPuVFPzIg,2264
|
148
148
|
ai_edge_torch/odml_torch/lowerings/__init__.py,sha256=GqYk6oBJw7KWeG4_6gxSu_OvYhjJcC2FpGzWPPEdH6w,933
|
149
149
|
ai_edge_torch/odml_torch/lowerings/_basic.py,sha256=wV8AUK8dvjLUy3qjqw_IxpiYVDWUMPNZRfi3XYE_hDs,6972
|
@@ -151,7 +151,7 @@ ai_edge_torch/odml_torch/lowerings/_batch_norm.py,sha256=PaLI0BB6pdBW1VyfW8VTOT_
|
|
151
151
|
ai_edge_torch/odml_torch/lowerings/_convolution.py,sha256=B6BILeu-UlwGB1O6g7111X1TaIFznsfxXrB72ygBsBA,3885
|
152
152
|
ai_edge_torch/odml_torch/lowerings/_jax_lowerings.py,sha256=I0Y4IK7Zap8m6xfxMw7DfQ9Mg4htKOoypdHVAMHqx9c,10669
|
153
153
|
ai_edge_torch/odml_torch/lowerings/context.py,sha256=jslcCv7r_HtImSRTxJwHAUV_QCu9Jub51lovmoBkmFA,1295
|
154
|
-
ai_edge_torch/odml_torch/lowerings/registry.py,sha256=
|
154
|
+
ai_edge_torch/odml_torch/lowerings/registry.py,sha256=ES3x_RJ22T5rlmMrlomex2DdcZbhlyVJ7_HS3rjz3Uk,2851
|
155
155
|
ai_edge_torch/odml_torch/lowerings/utils.py,sha256=NczqpsSd3Fn7yVcPC3qllemiZxxDAZgcW1T5l8-W9fE,5593
|
156
156
|
ai_edge_torch/odml_torch/passes/__init__.py,sha256=AVwIwUTMx7rXacKjGy4kwrtMd3XB2v_ncdc40KOjUqQ,1245
|
157
157
|
ai_edge_torch/quantize/__init__.py,sha256=aB5dXot04bqyUhpsDFvxt9CIi15QAC4euvqOndJ0XLU,714
|
@@ -161,8 +161,8 @@ ai_edge_torch/quantize/quant_config.py,sha256=U0KisSW-uZkoMJcy-ZP9W57p3tsa594fr9
|
|
161
161
|
ai_edge_torch/testing/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
|
162
162
|
ai_edge_torch/testing/model_coverage/__init__.py,sha256=5P8J6Zk5YYtDvTBucFvB9NGSRI7Gw_24WnrbhXgycEE,765
|
163
163
|
ai_edge_torch/testing/model_coverage/model_coverage.py,sha256=UPB448aMDUyC0HNYVqio2rcJPnDN0tBQMP08J6vPYew,4718
|
164
|
-
ai_edge_torch_nightly-0.3.0.
|
165
|
-
ai_edge_torch_nightly-0.3.0.
|
166
|
-
ai_edge_torch_nightly-0.3.0.
|
167
|
-
ai_edge_torch_nightly-0.3.0.
|
168
|
-
ai_edge_torch_nightly-0.3.0.
|
164
|
+
ai_edge_torch_nightly-0.3.0.dev20240908.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
165
|
+
ai_edge_torch_nightly-0.3.0.dev20240908.dist-info/METADATA,sha256=kDesFhNNQZ4QCG572z3cDo3eyiSnnFTUMwzKOmdsrGo,1859
|
166
|
+
ai_edge_torch_nightly-0.3.0.dev20240908.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
|
167
|
+
ai_edge_torch_nightly-0.3.0.dev20240908.dist-info/top_level.txt,sha256=5KXRaF2hwkApYxf7Y8y_tVb9aulGTlbOoNdbx1aKRkE,14
|
168
|
+
ai_edge_torch_nightly-0.3.0.dev20240908.dist-info/RECORD,,
|
File without changes
|
File without changes
|