Learn.predict working with uint8 and not float32 or images

I’m not sure I can explain why exactly this is happening, but could you try

fname = "..."
learn.predict(fname)

That way the entire data-loading process is handled the same way as when training your model.

An easier way to load such images would be to do:

fname = "..."
PIL.Image.open(fname).convert("RGB")

which gives you a 3-channeled image and is safe to do (stacking the image may lead to some unexpected behavior)