tree: a97ce44af08e72537f3fd4f6cd38b7fae3e7f078 [path history] [tgz]
  1. convert_image.py
  2. mnist_test.png
  3. README.md
samples/vision_inference/README.md

Vision Inference Sample

This sample demonstrates how to run a MNIST handwritten digit detection vision model on an image using IREE's command line tools.

A similar sample is implemented in C code over in the iree-experimental repository at https://github.com/iree-org/iree-experimental/tree/main/cpp/vision_inference

  • This version of the sample uses a Python script to convert an image into the expected format then runs the compiled MNIST program through IREE's command line tools
  • The other version uses a C library to decode and pre-process an image then uses IREE's C API to load the compiled program and run it on the image

Instructions

From this directory:

# Compile the MNIST program.
iree-compile \
    ../models/mnist.mlir \
    --iree-input-type=stablehlo \
    --iree-hal-target-backends=llvm-cpu \
    -o /tmp/mnist_cpu.vmfb

# Convert the test image to the 1x28x28x1xf32 buffer format the program expects.
cat mnist_test.png | python3 convert_image.py > /tmp/mnist_test.bin

# Run the program, passing the path to the binary file as a function input.
iree-run-module \
  --module=/tmp/mnist_cpu.vmfb \
  --function=predict \
  --input=1x28x28x1xf32=@/tmp/mnist_test.bin

# Observe the results - a list of prediction confidence scores for each digit.