我想使用Keras为CNN提供来自不同分辨率的图像。因此,我将输入图层形状定义为(None,None,3),因为图像有3个通道。我的问题是这在TensorFlow上运行良好,但在CNTK上给出了错误(我必须使用CNTK)。
以下python代码说明了我的问题:
import numpy as np
from keras.models import Model
from keras.layers import Conv2D, Input
input_layer = Input(shape=(None,None,3),name='input')
x = Conv2D(16,3)(input_layer)
x = Conv2D(16,3)(x)
model = Model(input=input_layer,output=x)
model.compile('adam','mse')
X = np.random.random((1,32,32,3))
Y = model.predict(X)
print Y.shape
如果我使用Keras + TensorFlow运行它会很好地执行,但是将Keras后端更改为CNTK会产生错误:
ValueError: Convolution operation requires that kernel dim 3 <= input dim 1.
据我所知,通过互联网,这个问题应该是从CNTK 2.2等修复的,但是我使用的是CNTK 2.5。关于如何克服这个问题的任何想法?