如何在 Flux.jl 中加载图像进行推理?

How to load an image for inference in Flux.jl?

我有一个使用特定数据集训练的模型。我最初并没有将设置分解为训练集和测试集(我应该这样做)。话虽如此,我想做一些临时测试,看看当我给它特定图像时模型的表现如何。我尝试执行 Images.load("/Users/logankilpatrick/Desktop/train/dog.10697.jpg") 之类的操作来加载图像,然后将其直接传递给模型,但出现输入输出大小不匹配错误。加载图片的正确方法是什么?

要使用图像进行推理,您需要执行如下所示的几个步骤:

x = Images.load("/Users/logankilpatrick/Desktop/train/dog.10697.jpg")
x = Images.imresize(x, (224,224)...) # 224x224 depends on the model size
x = permutedims(channelview(x), (3,2,1))
# Channelview returns a view of A, splitting out (if necessary) the color channels of A into a new first dimension.

x = reshape(x, size(x)..., 1) # Add an extra dim to show we only have 1 image
float32.(x) # Convert to float32 instead of float64

model(x)

请注意,其中一些可能会根据您使用的模型和其他因素而改变,但这是您需要做的事情的总体思路。编写一个简单的函数来为您执行此操作可能会奏效。