I already posted this issue on Github (Conv3D in MXNet: error with Tensor shape · Issue #240 · awslabs/keras-apache-mxnet · GitHub), however without response. I hope someone here can help me.
Suppose I want to implement a very simple inception-like network with channels_first
, consisting of a Conv3D and MaxPooling layer in parallel which are then concatenated:
def simple_inception_network(input_shape=(1,64,64,64)):
inputs = Input(input_shape)
A = Conv3D(8, 3, padding='same')(inputs)
# A.shape = (None, 8, 64, 64, 64)
B = MaxPooling3D(pool_size=(2,2,2), strides=(1,1,1), padding='same')(inputs)
# B.shape = (None, 1, 64, 64, 64)
C = concatenate([A, B], axis=1)
# C.shape = (None, 9, 64, 64, 64)
D = Conv3D(4, 3, padding='same')(C)
Then I get the following error:
mxnet.base.MXNetError: Error in operator concat0: [15:28:28] C:\Jenkins\workspace\mxnet-tag\mxnet\src\operator\nn\concat.cc:66: Check failed: shape_assign(&(*in_shape)[i], dshape) Incompatible input shape: expected [0,0,64,64,64], got [0,1,64,65,65]
This is not the case with the TensorFlow backend in Keras.
How can this issue be resolved?