Spaces:
Running
on
Zero
Running
on
Zero
| """ | |
| Modified from https://docs.pytorch.org/tutorials/recipes/torch_export_aoti_python.html | |
| """ | |
| import os | |
| import torch | |
| import torch._inductor | |
| from torchvision.models import ResNet18_Weights, resnet18 | |
| model = resnet18(weights=ResNet18_Weights.DEFAULT) | |
| model.eval() | |
| package_path = os.path.join(os.getcwd(), "resnet18.pt2") | |
| inductor_configs = {'max_autotune': True} | |
| device = "cuda" | |
| # Compile | |
| with torch.inference_mode(): | |
| model = model.to(device=device) | |
| example_inputs = (torch.randn(2, 3, 224, 224, device=device),) | |
| exported_program = torch.export.export( | |
| model, | |
| example_inputs, | |
| ) | |
| torch._inductor.aoti_compile_and_package( | |
| exported_program, | |
| package_path=package_path, | |
| inductor_configs=inductor_configs | |
| ) | |
| # Load | |
| compiled_model = torch._inductor.aoti_load_package(package_path) | |
| example_inputs = (torch.randn(2, 3, 224, 224, device=device),) | |
| # Run | |
| with torch.inference_mode(): | |
| output = compiled_model(example_inputs) | |