Я хочу кормить CNN изображениями с разным разрешением, используя Keras. Таким образом, я определил форму входного слоя как (Нет, Нет, 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. Любые идеи о том, как я могу преодолеть эту проблему?