Difference between Experimental Preprocessing layers and normal preprocessing layers in Tensorflow


import tensorflow as tf
import keras
import tensorflow.keras.layers as tfl
from tensorflow.keras.layers.experimental.preprocessing import RandomFlip, RandomRotation

I am trying to figure out which I should use for Data Augmentation. In the documentation, there is:

tf.keras.layers.RandomFlip and RandomRotation

Then we have in tf.keras.layers.experimental.preprocessing the same things, randomFlip and RandomRotation.

Which should I use? I’ve seen guides that use both.

This is my current code:

def data_augmenter():
data_augmentation = tf.keras.Sequential([
return data_augmentation

and this is a part of my model:

def ResNet50(image_shape = IMG_SIZE, data_augmentation=data_augmenter()):

input_shape = image_shape + (3,)

# Remove top layer in order to put mine with the correct classification labels, get weights for imageNet
base_model = tf.keras.applications.resnet_v2.ResNet50V2(input_shape=input_shape, include_top=False, weights='imagenet')

# Freeze base model
base_model.trainable = False

# Define input layer
inputs = tf.keras.Input(shape=input_shape)

# Apply Data Augmentation
x = data_augmentation(inputs)

I am a bit confused here..


If you find something in an experimental module and something in the same package by the same name, these will typically be aliases of one another. For the sake of backwards compatibility, they don’t remove the experimental one (at least not for a few iterations.)

You should generally use the non-experimental one if it exists, since this is considered stable and should not be removed or changed later.

The following page shows Keras preprocessing exerimental. If it redirects to the preprocessing module, it’s an alias. https://www.tensorflow.org/api_docs/python/tf/keras/layers/experimental/preprocessing

Answered By – philosofool

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published