Relay module does not match with Keras module

I have a ResNet50 model and after loaded the summary is Model: “model_1” __________________________________________________________________________________________________ *Layer (type) Output Shape Param # Connected to * ================================================================================================== *input_2 (InputLayer) (None, 512, 512, 3) 0 * __________________________________________________________________________________________________ *bn_data (BatchNormalization) (None, 512, 512, 3) 12 input_2[0][0] * __________________________________________________________________________________________________ *zero_padding2d_1 (ZeroPadding2D (None, 518, 518, 3) 0 bn_data[0][0] * __________________________________________________________________________________________________ *conv0 (Conv2D) (None, 256, 256, 64) 9472 zero_padding2d_1[0][0] * …

After translateed Keras model into Relay module by mod, params = relay.frontend.from_keras(keras_resnet50, shape_dict) print(mod.astext())

The output is def @main(%input_2: Tensor[(1, 3, 512, 512), float32], …

  • %0 = nn.batch_norm(%input_2, %v_param_1, %v_param_2, %v_param_3, %v_param_4, epsilon=2e-05f) /* ty=(Tensor[(1, 3, 512, 512), float32], Tensor[(3), float32], Tensor[(3), float32]) /;
  • %1 = %0.0;*
  • %2 = nn.pad(%1, pad_width=[[0, 0], [0, 0], [3, 3], [3, 3]]) /* ty=Tensor[(1, 3, 518, 518), float32] /;
  • %3 = nn.conv2d(%2, %v_param_5, strides=[2, 2], channels=64, kernel_size=[7, 7]) /* ty=Tensor[(1, 64, 256, 256), float32] /;

I was wondering what is the reason that the shape does not match (input shape is (512, 512, 3) in Keras and (3, 512, 512) in Relay). Should I set up something in Relay? Thanks!