VDSR β€” LiteRT (TFLite) GPU, FP16

On-device LiteRT (.tflite) conversion of VDSR (Very Deep Super-Resolution, CVPR'16) for single-image super-resolution. VDSR is a 20-layer CNN that refines the luminance (Y) of an image and adds a global residual.

The model runs fully on the LiteRT CompiledModel GPU accelerator (ML Drift): every op is GPU-native, no CPU fallback, no Flex/Custom ops. Converted with litert-torch with no patches β€” VDSR has no in-network upsampling, so the graph is just conv + ReLU + residual add (no PixelShuffle, no PReLU), unlike most SR models.

Files

File Precision Size
vdsr_256_fp16.tflite fp16 weights ~1.35 MB
vdsr_256.tflite fp32 ~2.68 MB

I/O

  • Input: [1, 256, 256, 1] float32, NHWC, the luminance (Y) of a bicubic-upscaled image, range [0, 1].
  • Output: [1, 256, 256, 1] float32, NHWC, the refined (sharper) Y, range [0, 1].

To super-resolve a color image: convert to YCbCr, run Y through the model, recombine the refined Y with the original Cb/Cr, convert back to RGB.

Ops

CONV_2D x19, DEPTHWISE_CONV_2D x1, ADD x1

No GATHER_ND, no Flex/Custom, no PixelShuffle/PReLU.

Fidelity

  • Converted fp32 vs original PyTorch: corr 1.0000.
  • fp16 vs fp32: corr 1.0000.

On-device (Pixel 8a, verified)

The fp16 model compiles to 41 / 41 nodes on the LiteRT GPU delegate (LITERT_CL) β€” full GPU residency, no CPU fallback.

Usage (Android, LiteRT CompiledModel)

val model = CompiledModel.create(
    context.assets, "vdsr_256_fp16.tflite",
    CompiledModel.Options(Accelerator.GPU), null
)
val inputs = model.createInputBuffers()
val outputs = model.createOutputBuffers()
inputs[0].writeFloat(yChannel)   // [1,256,256,1] luminance in [0,1]
model.run(inputs, outputs)
val refinedY = outputs[0].readFloat()  // [1,256,256,1] in [0,1]

A complete Android sample (camera + gallery super-resolution) is available in google-ai-edge/litert-samples.

License & attribution

  • License: MIT. Weights from twtygqyy/pytorch-vdsr. Original work: Kim et al., "Accurate Image Super-Resolution Using Very Deep Convolutional Networks", CVPR 2016. This is a format conversion of the weights (no architectural changes); all credit to the original authors.
Downloads last month
23
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support