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([ tfl.RandomFlip(), tfl.RandomRotation(0.2) ]) 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