【问题标题】:Inference code for prediction in multi-class image classification多类图像分类中预测的推理代码
【发布时间】:2019-01-04 11:57:05
【问题描述】:

我正在尝试获取单个输入图像并预测其标签。训练数据图像被转换为​​数组,标签为 int,并在输入分类器之前使用 DatasetMixin 制作成单个数据集。所以我已经将图像转换为数组。

当我尝试使用给定的代码时..这是错误... 期望:in_types[0].shape[1] == in_types[1].shape[1] * 1 实际:240 != 3

img = cv2.imread('C:/Users/Dell/Desktop/TEST IMAGES/MONOCYTE.jpeg')
plt.imshow(img)
plt.show()

img=np.array((img), dtype = np.float32)
img=img/255.0

x = Variable(np.asarray([img]))
y = model(x)
prediction = y.data.argmax(axis=1)

【问题讨论】:

    标签: python-3.x image-processing chainer


    【解决方案1】:

    模型的细节对于准确的答案是必要的......

    但我猜该模型需要一个形状为 (batch, channel, width, height) 的数组,但是您提供给模型的数组的形状似乎是 (width, height, channel)。

    这可能是错误消息的原因。

    【讨论】:

    • 数组的形状是 9957, 3,60,80,其中 9957 是总数。的图像。我们可以将 9957 视为批量大小吗?如果不是,我们如何将 batchsize 引入数组?
    • 不,不可能(如果您运行此问题中给出的脚本),因为它只提供一个图像。确实,如果数组的大小是(9957, 3, 60, 80),“9957”可以解释为batch size,但通常batch size小于它(通常使用128)。跨度>
    • 我无法将形状更改为批量大小、通道、高度、宽度。如何删除 9957 并将 batchsize 放在它的位置?我试过使用 np.newaxis 但这让我输入 shape = 1, 9957, 3, 60, 80。
    猜你喜欢
    • 2020-08-04
    • 2019-01-24
    • 1970-01-01
    • 2018-09-29
    • 2020-05-10
    • 2023-03-10
    • 2020-03-20
    • 2021-07-23
    • 2018-06-30
    相关资源
    最近更新 更多