A GRU layer helps a model remember important information from sequences, like sentences or time series, so it can make better predictions.
GRU layer in TensorFlow
tf.keras.layers.GRU(units, activation='tanh', return_sequences=False, return_state=False, dropout=0.0, recurrent_dropout=0.0)
units is the number of memory cells in the GRU layer.
return_sequences=True makes the layer output the full sequence, not just the last step.
gru = tf.keras.layers.GRU(32)gru = tf.keras.layers.GRU(64, return_sequences=True)
gru = tf.keras.layers.GRU(16, dropout=0.2, recurrent_dropout=0.2)
This code creates a small dataset with 2 samples, each having 5 time steps and 3 features. It builds a model with a GRU layer of 4 units followed by a dense layer for binary classification. The model trains for 3 epochs and then makes predictions on the same data.
import tensorflow as tf import numpy as np # Create sample sequential data: batch_size=2, time_steps=5, features=3 x = np.random.random((2, 5, 3)).astype(np.float32) # Build a simple model with one GRU layer model = tf.keras.Sequential([ tf.keras.layers.GRU(4, return_sequences=False, input_shape=(5, 3)), tf.keras.layers.Dense(1, activation='sigmoid') ]) model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) # Sample labels for 2 samples labels = np.array([0, 1]) # Train the model for 3 epochs history = model.fit(x, labels, epochs=3, verbose=2) # Make predictions predictions = model.predict(x) print('Predictions:', predictions.flatten())
GRU layers are simpler and faster than LSTM layers but still good at remembering sequence information.
Use return_sequences=True if you want to stack multiple recurrent layers.
Dropout helps prevent overfitting but slows training a bit.
GRU layers help models remember important parts of sequences.
They are easy to use with tf.keras.layers.GRU and have options like units and return_sequences.
Good for text, time series, and any ordered data.