Spaces:
Runtime error
Runtime error
Load constants
Browse files
app.py
CHANGED
|
@@ -15,6 +15,8 @@ import gradio as gr
|
|
| 15 |
import spaces
|
| 16 |
import torch
|
| 17 |
import torch._inductor
|
|
|
|
|
|
|
| 18 |
from torchvision.models import ResNet18_Weights, resnet18
|
| 19 |
|
| 20 |
|
|
@@ -33,24 +35,29 @@ def compile_model():
|
|
| 33 |
model,
|
| 34 |
example_inputs,
|
| 35 |
)
|
| 36 |
-
torch._inductor.
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
|
| 43 |
@spaces.GPU
|
| 44 |
def run_model():
|
| 45 |
-
compiled_model = torch._inductor.aoti_load_package(package_path)
|
|
|
|
| 46 |
with torch.inference_mode():
|
| 47 |
return str(compiled_model(example_inputs))
|
| 48 |
|
| 49 |
|
| 50 |
-
gr.
|
| 51 |
-
gr.Interface(compile_model, [], "text", clear_btn=None, flagging_mode='never'),
|
| 52 |
-
gr.Interface(run_model, [], "text", clear_btn=None, flagging_mode='never'),
|
| 53 |
-
], [
|
| 54 |
-
"Compile",
|
| 55 |
-
"Run"
|
| 56 |
-
]).launch(show_error=True)
|
|
|
|
| 15 |
import spaces
|
| 16 |
import torch
|
| 17 |
import torch._inductor
|
| 18 |
+
from torch.export.pt2_archive._package import AOTICompiledModel
|
| 19 |
+
from torch.export.pt2_archive._package_weights import Weights
|
| 20 |
from torchvision.models import ResNet18_Weights, resnet18
|
| 21 |
|
| 22 |
|
|
|
|
| 35 |
model,
|
| 36 |
example_inputs,
|
| 37 |
)
|
| 38 |
+
artifacts = torch._inductor.aot_compile(exported_program.module(), *exported_program.example_inputs, options={
|
| 39 |
+
'aot_inductor.package_constants_in_so': False,
|
| 40 |
+
'aot_inductor.package_constants_on_disk': True,
|
| 41 |
+
'aot_inductor.package': True,
|
| 42 |
+
'max_autotune': True,
|
| 43 |
+
})
|
| 44 |
+
weights, = (artifact for artifact in artifacts if isinstance(artifact, Weights))
|
| 45 |
+
weights_: dict[str, torch.Tensor] = {}
|
| 46 |
+
for name in weights:
|
| 47 |
+
tensor, _properties = weights.get_weight(name)
|
| 48 |
+
tensor_ = torch.empty_like(tensor, device='cpu').pin_memory()
|
| 49 |
+
weights_[name] = tensor_.copy_(tensor).share_memory_()
|
| 50 |
+
return weights_
|
| 51 |
+
|
| 52 |
+
weights = compile_model()
|
| 53 |
+
del model
|
| 54 |
|
| 55 |
@spaces.GPU
|
| 56 |
def run_model():
|
| 57 |
+
compiled_model: AOTICompiledModel = torch._inductor.aoti_load_package(package_path)
|
| 58 |
+
compiled_model.load_constants(weights, check_full_update=True, user_managed=True)
|
| 59 |
with torch.inference_mode():
|
| 60 |
return str(compiled_model(example_inputs))
|
| 61 |
|
| 62 |
|
| 63 |
+
gr.Interface(run_model, [], 'text').launch(show_error=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|