FastAI:从学习器中获取图像预测



我希望能够预测来自学习者的单个图像的类别,但我总是得到索引超出界限异常。下面是代码

data = ImageDataLoader.from_folder(path, train="Train", valid ="Valid",
ds_tfms=get_transforms(), size=(256,256), bs=32, num_workers=4)
//Model is a Sequential One 
learn = Learner(data, model, loss_func = nn.CrossEntropyLoss(), metrics=accuracy)// The Model
learn.fit_one_cycle(100, lr_max=3e-3)
Img = //PIL Image Path
learn.predict(img)

该模型能够预测ImageDataLoader,但不能预测单个图像。如果有人有任何线索,将不胜感激这是FastAi的链接,但没有解决这个问题https://forums.fast.ai/t/how-to-use-learner-predict-list-index-out-of-range/81998/7

编辑注意:我已经尝试将图像转换为张量流,但给出了另一个错误。错误的照片

我认为问题是data是4阶张量而Img是3阶张量。换句话说,它遗漏了#points或批处理维度。在TF中,可以使用tf.expand_dims来修复,如

img = tf.expand_dims(img, axis=0)

或者在传递给模型

时修复它
learn.predict(tf.expand_dims(img, axis=0))

您还可以查看tf.newaxis(参见这里的第二个代码示例)。

相关内容

  • 没有找到相关文章

最新更新