Who is this for?

This Learning Path is for machine learning and graphics developers getting started with image super-resolution using ExecuTorch and Arm Vulkan Graph Format (VGF).

What will you learn?

Upon completion of this Learning Path, you will be able to:

  • Prepare ExecuTorch, the Arm ML SDK for Vulkan, and a sample image.
  • Export a pretrained Swin2SR model as a VGF-backed ExecuTorch program.
  • Build the host runner and upscale a 64 × 64 image to 128 × 128.
  • Check the output dimensions and compare the result with the high-resolution reference.

Prerequisites

Before starting, you will need the following:

  • A 64-bit Linux host (AArch64 or x86_64) with a Vulkan 1.3 GPU and driver that support shaderFloat64, as required by the packaged ML SDK emulation layer
  • Python 3.12 with development headers and venv support, Git, curl, xz-utils, and a C++17 compiler
  • An internet connection to download ExecuTorch, model weights, and the Arm ML SDK dependencies
  • Basic familiarity with Python and command-line tools

Summary

AI-assisted

This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
You’ll set up a Linux host and sample image, export a pretrained Swin2SR ×2 model as an ExecuTorch program, and build a host runner for Arm VGF. Then, you’ll upscale a 64 × 64 image to 128 × 128. Finally, you’ll check the output dimensions and compare its reconstructed detail with the high-resolution reference.

Frequently asked questions

AI-assisted

These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
How do I restore the environment if I open a new terminal?
From your executorch directory, run source .venv/bin/activate and then source examples/arm/arm-scratch/setup_path.sh before building or running the model.
Do I need to train Swin2SR or prepare calibration images?
No. You’ll export a pretrained ×2 checkpoint pinned to a specific revision. The export uses --quantization-mode none, so you don’t need calibration images.
Why do I need both Swin2SR PTE and JSON files?
The .pte file contains your executable model, while the .json file tells the image helper how to read the input and reconstruct the output. Keep them in the same directory with the same base name.
Can I use my own image with the exported program?
Yes, if your image is 64 × 64 pixels and RGB. For a different input size, export a matching program first. The helper doesn’t resize or tile images automatically.
How do I know that the image run succeeded?
Look for Saved super-resolved image to in the terminal output. Check that your generated image is 128 × 128 and shows the same scene without obvious corruption. You can compare it with the high-resolution reference, but the visual check isn’t a quality benchmark or performance result.
Next