= activatedgeek/LeNet-5 use ONNX for inference
Now let's try and use the trained <ONNX> file for inference on some manually drawn images on <GIMP>:
\Image[https://raw.githubusercontent.com/cirosantilli/media/master/Digit_9_hand_drawn_by_Ciro_Santilli_on_GIMP_with_mouse_white_on_black.png]
{title=Number 9 drawn with mouse on <GIMP> by <Ciro Santilli> (2023)}
Note that:
* the images must be drawn with white on black. If you use black on white, it the accuracy becomes terrible. This is a good very example of <brittleness in AI> systems!
* images must be converted to 32x32 for `lenet.onnx`, as that is what training was done on. The training step converted the 28x28 images to 32x32 as the first thing it does before training even starts
We can try the code adapted from https://thenewstack.io/tutorial-using-a-pre-trained-onnx-model-for-inferencing/[] at \a[lenet/infer.py]:
``
cd lenet
cp ~/git/LeNet-5/lenet.onnx .
wget -O 9.png https://raw.githubusercontent.com/cirosantilli/media/master/Digit_9_hand_drawn_by_Ciro_Santilli_on_GIMP_with_mouse_white_on_black.png
./infer.py 9.png
``
and it works pretty well! The program outputs:
``
9
``
as desired.
We can also try with images directly from <Extract MNIST images>.
``
infer_mnist.py lenet.onnx mnist_png/out/testing/1/*.png
``
and the accuracy is great as expected.
Back to article page