Use optimized Convolution2DTransposeBias Layer in tflite
To add more context: 

In the Netron visualizer, this is what I want it to look like:
![image](https://user-images.githubusercontent.com/18429675/232782157-7bb10a65-acbd-4091-bff1-72e398fc6d89.png)

but when executing the code from above this is what i get:
![image](https://user-images.githubusercontent.com/18429675/232782277-14529dd6-5825-49b8-846c-01e7a1b01fce.png)

 Hi @kevinpl07 

I see that `TransposeConv` is a builtin op in the TFLite. Hence while while converting the `Conv2DTranspose` , it maps to the builtin operator which is present.

https://github.com/tensorflow/tensorflow/blob/5a035e7a4ae4067d3b8c40fed6fbaef9b73a5504/tensorflow/lite/builtin_ops.h#L97

Incase the builtin op is not available, we can choose TF Select Ops or use [custom operators](https://www.tensorflow.org/lite/guide/ops_custom) for the tflite to use.

Thanks. > Hi @kevinpl07
> 
> I see that `TransposeConv` is a builtin op in the TFLite. Hence while while converting the `Conv2DTranspose` , it maps to the builtin operator which is present.
> 
> https://github.com/tensorflow/tensorflow/blob/5a035e7a4ae4067d3b8c40fed6fbaef9b73a5504/tensorflow/lite/builtin_ops.h#L97
> 
> Incase the builtin op is not available, we can choose TF Select Ops or use [custom operators](https://www.tensorflow.org/lite/guide/ops_custom) for the tflite to use.
> 
> Thanks.

I know that there is a builting op but it is not optmized for my usecase. Is there a way to make the tflite converter assign [this kernel](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/delegates/gpu/gl/kernels/transpose_conv.cc) to the operation?
 @kevinpl07 
 
Thanks for the clarification. The models are built with GPU use case as priority as [this](https://github.com/google/mediapipe/issues/245#issuecomment-555227438) comment suggests and the [transpose conv](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/delegates/gpu/gl/kernels/transpose_conv.cc) kernel is used when the model is run on GPU delegate AFAIK.

The [custom operators](https://www.tensorflow.org/lite/guide/ops_custom) is a way to allow conversion of an unsupported TensorFlow operator in TensorFlow Lite.  Will that help?

Thanks.


 > @kevinpl07
> 
> Thanks for the clarification. The models are built with GPU use case as priority as [this](https://github.com/google/mediapipe/issues/245#issuecomment-555227438) comment suggests and the [transpose conv](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/delegates/gpu/gl/kernels/transpose_conv.cc) kernel is used when the model is run on GPU delegate AFAIK.
> 
> The [custom operators](https://www.tensorflow.org/lite/guide/ops_custom) is a way to allow conversion of an unsupported TensorFlow operator in TensorFlow Lite. Will that help?
> 
> Thanks.

I ended up using [tflite2json2tflite](https://github.com/PINTO0309/tflite2json2tflite) to just edit the json. Feel free to close the issue and thanks for your help! @kevinpl07 Thanks for the work around and confirmation.

Closing this issue. Please feel free to your reopen if the issue still persists.

Thanks.
### 1. System information

- Windows 11 x64
- tensorflow==2.11.0

### 2. Code
```python
import tensorflow as tf
from tensorflow.keras.layers import (Conv2D, Conv2DTranspose, Input)
from tensorflow.keras.models import Model

input_size=(144, 256, 3)

inputs = Input(input_size, batch_size=1)
conv2d = Conv2D(16, kernel_size=(3, 3), strides=(2, 2), padding='same', use_bias=True)(inputs)

segment = Conv2DTranspose(2, kernel_size=(2, 2), strides=(2, 2), use_bias=True)(conv2d)

model = Model(inputs, segment, name="test")

converter = tf.lite.TFLiteConverter.from_keras_model(model)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
converter.target_spec.supported_types = [tf.float16]
tflite_model = converter.convert()

with open('model.tflite', 'wb') as f:
  f.write(tflite_model)
```

### 3. Failure after conversion

I want to convert a keras model to tflite while using optimized operations such as "Convolution2DTransposeBias". Those are discussed here: [Link](https://github.com/google/mediapipe/issues/245) 


### 5. (optional) Any other info / logs
How can I tell tflite to use those custom op after converting? 

Thanks in advance!
