Upscale an image with Swin2SR and Arm VGF
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
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.
Frequently asked questions
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.
executorch directory, run source .venv/bin/activate and then source examples/arm/arm-scratch/setup_path.sh before building or running the model.--quantization-mode none, so you don’t need calibration images..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.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.