jikechao opened a new pull request, #15060:
URL: https://github.com/apache/tvm/pull/15060

   This PR fixed two bugs in Conv2DTranspose and Conv3DTranspose. Both of them 
are caused by lacking the parsing of the `output_padding` attribute.
   In addition, corresponding test cases were added to capture the bug.
   
   ### Steps to reproduce
   ```
   import tvm
   import tvm.relay as relay
   import numpy as np
   from tensorflow import keras
   from tensorflow.keras import layers, models
   input_shape = (2, 33,33,128)
   input_data = np.random.random(size=input_shape)
   x = layers.Input(shape=input_shape[1:], dtype='float32')
   
   kwargs={'filters':2,'kernel_size':[3, 3],'strides':[2, 
2],'output_padding':[1, 1],}# 'data_format':"channels_last"} 
   # output_padding lead to this bug
   layer = keras.layers.Conv2DTranspose(**kwargs)
   layer.set_weights(layer.get_weights())
   
   y = layer(x)
   model = models.Model(x, y)
   model.summary()
   res_keras = model(input_data)
   
   shape_dict = {'input_1': input_shape}
   mod, params = relay.frontend.from_keras(model, shape_dict,layout='NHWC')
   with tvm.transform.PassContext(opt_level=3):
       model = relay.build_module.create_executor("graph", mod, tvm.cpu(0), 
'llvm', params).evaluate()
   
   test_x_tvm = input_data
   res_tvm = model(tvm.nd.array(test_x_tvm.astype('float32'))).numpy()
   
   np.testing.assert_allclose(res_keras, res_tvm, atol=1e-3, rtol=1e-3)
   ```
   
![image](https://github.com/apache/tvm/assets/29506758/4820cc33-98b5-4453-8667-6333153eaee4)
   
   BTW, The Conv3DTranspose has a similar bug. The following keras layer can 
trigger it:
   ```
   keras_mod.layers.Conv3DTranspose(
                   filters=2, kernel_size=(3, 3, 3), strides=(2, 2, 2), 
output_padding=(1, 1, 1)
               ),
   ```
   
   cc @echuraev @Hzfengsy @masahi 
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to