Generating and Training Random Time Series Data with LSTM

  • Share this:

Code introduction


This function uses the Sequential model and LSTM layer from the Keras library to generate random time series data and trains a simple LSTM model.


Technology Stack : Keras, Sequential, LSTM, Dense, Numpy

Code Type : The type of code

Code Difficulty : Intermediate


                
                    
def generate_random_sequence(data, num_samples=10):
    import numpy as np
    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import LSTM, Dense
    
    # Create a Sequential model
    model = Sequential()
    # Add an LSTM layer with 50 units
    model.add(LSTM(50, input_shape=(data.shape[1], data.shape[2])))
    # Add a Dense layer with 1 unit
    model.add(Dense(1))
    # Compile the model
    model.compile(optimizer='adam', loss='mse')
    
    # Generate random sequences
    random_sequences = []
    for _ in range(num_samples):
        start_index = np.random.randint(0, len(data) - 100)
        end_index = start_index + 100
        random_sequences.append(data[start_index:end_index])
    
    # Reshape the data for the LSTM layer
    reshaped_data = np.reshape(random_sequences, (len(random_sequences), random_sequences[0].shape[0], random_sequences[0].shape[1]))
    
    # Train the model
    model.fit(reshaped_data, np.zeros(num_samples), epochs=1, verbose=0)
    
    return model