blob: babf7a8680364a446e75ba916518d4ac2198b48b [file] [log] [blame] [view]
# TensorFlow Keras Layers
Tests of `tf.keras.layers` compiled with static shapes, dynamic shapes and training enabled.
IREE has three main backend
[targets](https://github.com/iree-org/iree/tree/main/iree/compiler/Dialect/HAL/Target):
`vmvx` , `llvm` and `vulkan-spirv`. We also test TFLite in our infrastructure
for benchmarking purposes.
*Last Updated: 2020/12/8*
## End to end tests of tf.keras layers (with default configuration and static dimensions in inference mode)
**Note:** Layers like `Dropout` are listed as passing in this table, but they
function similar to identity layers in these tests. **See the third table for
the coverage of these layers during training.**
These tests also only modify required `tf.keras.layers` arguments. See the full
API tests below for coverage on of non-default layer configurations.
| target | tflite | vmvx | vulkan-spirv |
|:--------------------------------------------------------------------------------------------------------------------------:|:--------------------------------------------:|:--------------------------------------------:|:--------------------------------------------:|
| [Activation](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [ActivityRegularization](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [Add](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [AdditiveAttention](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [AlphaDropout](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [Attention](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [Average](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [AveragePooling1D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [AveragePooling2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [AveragePooling3D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [BatchNormalization](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [Concatenate](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [Conv1D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [Conv1DTranspose](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [Conv2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [Conv2DTranspose](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [Conv3D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> |
| [Conv3DTranspose](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> |
| [Cropping1D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [Cropping2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [Cropping3D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [Dense](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [DepthwiseConv2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [Dot](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [Dropout](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [ELU](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [Embedding](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [Flatten](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [GRU](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [GaussianDropout](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [GaussianNoise](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [GlobalAveragePooling1D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [GlobalAveragePooling2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [GlobalAveragePooling3D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [GlobalMaxPool1D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [GlobalMaxPool2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [GlobalMaxPool3D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [InputLayer](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [LSTM](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Lambda](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [LayerNormalization](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [LeakyReLU](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [LocallyConnected1D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [LocallyConnected2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Masking](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [MaxPool1D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [MaxPool2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [MaxPool3D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [Maximum](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [Minimum](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [MultiHeadAttention](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Multiply](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [PReLU](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [Permute](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [ReLU](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [RepeatVector](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [Reshape](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [SeparableConv1D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [SeparableConv2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [Softmax](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [SpatialDropout1D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [SpatialDropout2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [SpatialDropout3D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [Subtract](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [ThresholdedReLU](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [UpSampling1D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [UpSampling2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [UpSampling3D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [ZeroPadding1D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [ZeroPadding2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [ZeroPadding3D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
## End to end tests of tf.keras layers with dynamic dimensions (with default configuration in inference mode)
| target | tflite | vmvx | vulkan-spirv |
|:--------------------------------------------------------------------------------------------------------------------------:|:--------------------------------------------:|:--------------------------------------------:|:--------------------------------------------:|
| [Activation](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [ActivityRegularization](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [Add](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [AdditiveAttention](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [AlphaDropout](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [Attention](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [Average](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [AveragePooling1D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [AveragePooling2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [AveragePooling3D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [BatchNormalization](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Concatenate](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Conv1D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Conv1DTranspose](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Conv2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Conv2DTranspose](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Conv3D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Conv3DTranspose](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Cropping1D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Cropping2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Cropping3D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Dense](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [DepthwiseConv2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Dot](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Dropout](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [ELU](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Embedding](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [Flatten](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [GRU](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [GaussianDropout](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [GaussianNoise](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [GlobalAveragePooling1D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [GlobalAveragePooling2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [GlobalAveragePooling3D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [GlobalMaxPool1D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [GlobalMaxPool2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [GlobalMaxPool3D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [InputLayer](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [LSTM](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Lambda](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [LayerNormalization](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [LeakyReLU](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [LocallyConnected1D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [LocallyConnected2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Masking](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [MaxPool1D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [MaxPool2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [MaxPool3D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Maximum](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [Minimum](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [MultiHeadAttention](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Multiply](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [PReLU](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [Permute](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [ReLU](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [RepeatVector](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Reshape](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [SeparableConv1D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [SeparableConv2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Softmax](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [SpatialDropout1D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [SpatialDropout2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [SpatialDropout3D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| [Subtract](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| [ThresholdedReLU](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [UpSampling1D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [UpSampling2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [UpSampling3D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [ZeroPadding1D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [ZeroPadding2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [ZeroPadding3D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
## End to end tests of tf.keras layers in training mode (with default configuration and static dimensions)
| target | tflite | vmvx | vulkan-spirv |
|:----------------------------------------------------------------------------------------------------------------------:|:--------------------------------------------:|:--------------------------------------------:|:--------------------------------------------:|
| [AdditiveAttention](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [AlphaDropout](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Attention](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [BatchNormalization](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [Dropout](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [GRU](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [GaussianDropout](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [GaussianNoise](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [LSTM](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [MultiHeadAttention](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [SpatialDropout1D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [SpatialDropout2D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| [SpatialDropout3D](https://github.com/iree-org/iree/tree/main/integrations/tensorflow/e2e/keras/layers/layers_test.py) | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |