| # TensorFlow Keras Layers |
| |
| Tests of `tf.keras.layers` compiled with static shapes, dynamic shapes and training enabled. |
| |
| IREE has three backend |
| [targets](https://github.com/google/iree/tree/main/iree/compiler/Dialect/HAL/Target): |
| `vmla` , `llvm-ir` 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 | vmla | vulkan-spirv | |
| |:--------------------------------------------------------------------------------------------------------------------------:|:--------------------------------------------:|:--------------------------------------------:|:--------------------------------------------:| |
| | [Activation](https://github.com/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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 | vmla | vulkan-spirv | |
| |:--------------------------------------------------------------------------------------------------------------------------:|:--------------------------------------------:|:--------------------------------------------:|:--------------------------------------------:| |
| | [Activation](https://github.com/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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 | vmla | vulkan-spirv | |
| |:----------------------------------------------------------------------------------------------------------------------:|:--------------------------------------------:|:--------------------------------------------:|:--------------------------------------------:| |
| | [AdditiveAttention](https://github.com/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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/google/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> | |