我正在尝试将keras.backend.conv2d
函数用于我自己的内核,我收到以下错误。
img = data[0,:,0]
img = img.reshape(240, 320)
kernelX = np.array([[-1, 1],
[-1, 1]])
img = K.constant(img)
kernelX = K.constant(kernelX)
I_x = K.conv2d(img, kernelX)
ValueError:输入通道数与对应的不匹配 过滤器尺寸,320!= 2
有人可以请我朝正确的方向努力吗?
答案 0 :(得分:0)
虽然您没有指定使用哪个后端,但由于您的重新整形操作而引发错误。在这种情况下,keras将形状的最后一个元素解释为通道数。这意味着,它假设您的图像有240个像素,320个通道,而您的内核有两个通道。对于卷积,这些必须是相同的大小。
因此,您应该以某种方式创建图像和内核,以便您的图像具有形状(240,320,1)和形状内核(2,2,1)。