如何在非正方形图像上运行Keras网络?

2024-06-02 10:53:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我在tf.keras中训练了一个基于UNet的图像分割模型,该模型可以预测一个对象在给定图像中的位置和位置。我用(None, 256, 256, 1)的输入形状训练,然后输出(None, 256, 256, 3)形状的预测。你知道吗

我现在想要预测更大的图像(例如(520, 696)),并且想要使用相同的模型。我知道可以将模型的输入形状更改为大小(None, None, None, 1)。但是,现在它仍然只能预测正方形图像–对于上面提到的图像,它返回Dimensionality Error,因为形状不匹配(520!= 696). 你知道吗

有没有人知道如何避免这种情况或有一个工作功能,以缝合在一起较小的正方形输出?你知道吗

出错步骤:

img = skimage.io.imread(X)  # shaped (520, 696)
pred = model.predict(img[None,...,None])

InvalidArgumentError: _MklConcatOp : Dimensions of inputs should match: shape[0][1]= 64 vs. shape[1][1] = 65 [[{{node concatenate_4/concat}}]]


Tags: 对象模型图像功能noneunetimgtf
1条回答
网友
1楼 · 发布于 2024-06-02 10:53:23

我找到了一个解决方案——因为我训练了一个UNet(在上采样后使用级联层),它只能合并2的幂(例如256/512)。因此,我必须在预测之前添加填充,使其达到下一个2的幂,并从输出中删除填充。你知道吗

相关问题 更多 >