Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
suyashi29
GitHub Repository: suyashi29/python-su
Path: blob/master/Generative AI for Intelligent Data Handling/ LSTM (Long Short-Term Memory) network using TensorFlow and Keras.ipynb
3074 views
Kernel: Python 3 (ipykernel)

LSTM (Long Short-Term Memory) is a type of recurrent neural network (RNN) designed to address the problem of capturing long-term dependencies in sequential data.

  • It consists of a memory cell that can maintain information over long sequences, controlled by three gates: forget gate, input gate, and output gate.

  • The forget gate decides what information to discard from the cell state.

  • The input gate decides what new information to store in the cell state.

  • The output gate decides what information to output from the cell state.

  • LSTM's ability to retain and forget information over long periods makes it effective for tasks involving sequential data with long-term dependencies.

import numpy as np import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import LSTM, Dense # Generate some random data for demonstration # Input sequence: [0.1, 0.2, 0.3, 0.4, 0.5] # Output sequence: [0.6, 0.7, 0.8, 0.9, 1.0] # Define input sequence X = np.array([[[0.1], [0.2], [0.3], [0.4], [0.5]]]) # Define output sequence y = np.array([[0.6, 0.7, 0.8, 0.9, 1.0]]) # Define and build the LSTM model model = Sequential([ LSTM(50, input_shape=(5, 1)), # 50 units in LSTM layer Dense(5) # Output layer ]) # Compile the model model.compile(optimizer='adam', loss='mse') # Print model summary model.summary() # Train the model model.fit(X, y, epochs=100, verbose=1) # Make predictions predictions = model.predict(X) # Print predictions print("Predictions:") print(predictions)
Model: "sequential" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= lstm (LSTM) (None, 50) 10400 dense (Dense) (None, 5) 255 ================================================================= Total params: 10,655 Trainable params: 10,655 Non-trainable params: 0 _________________________________________________________________ Epoch 1/100 1/1 [==============================] - 3s 3s/step - loss: 0.6420 Epoch 2/100 1/1 [==============================] - 0s 14ms/step - loss: 0.6311 Epoch 3/100 1/1 [==============================] - 0s 20ms/step - loss: 0.6201 Epoch 4/100 1/1 [==============================] - 0s 28ms/step - loss: 0.6091 Epoch 5/100 1/1 [==============================] - 0s 20ms/step - loss: 0.5982 Epoch 6/100 1/1 [==============================] - 0s 18ms/step - loss: 0.5872 Epoch 7/100 1/1 [==============================] - 0s 18ms/step - loss: 0.5761 Epoch 8/100 1/1 [==============================] - 0s 19ms/step - loss: 0.5650 Epoch 9/100 1/1 [==============================] - 0s 21ms/step - loss: 0.5539 Epoch 10/100 1/1 [==============================] - 0s 18ms/step - loss: 0.5426 Epoch 11/100 1/1 [==============================] - 0s 21ms/step - loss: 0.5312 Epoch 12/100 1/1 [==============================] - 0s 18ms/step - loss: 0.5196 Epoch 13/100 1/1 [==============================] - 0s 20ms/step - loss: 0.5079 Epoch 14/100 1/1 [==============================] - 0s 20ms/step - loss: 0.4959 Epoch 15/100 1/1 [==============================] - 0s 22ms/step - loss: 0.4837 Epoch 16/100 1/1 [==============================] - 0s 22ms/step - loss: 0.4711 Epoch 17/100 1/1 [==============================] - 0s 19ms/step - loss: 0.4582 Epoch 18/100 1/1 [==============================] - 0s 21ms/step - loss: 0.4449 Epoch 19/100 1/1 [==============================] - 0s 23ms/step - loss: 0.4313 Epoch 20/100 1/1 [==============================] - 0s 19ms/step - loss: 0.4171 Epoch 21/100 1/1 [==============================] - 0s 20ms/step - loss: 0.4025 Epoch 22/100 1/1 [==============================] - 0s 19ms/step - loss: 0.3874 Epoch 23/100 1/1 [==============================] - 0s 19ms/step - loss: 0.3718 Epoch 24/100 1/1 [==============================] - 0s 21ms/step - loss: 0.3555 Epoch 25/100 1/1 [==============================] - 0s 22ms/step - loss: 0.3387 Epoch 26/100 1/1 [==============================] - 0s 16ms/step - loss: 0.3214 Epoch 27/100 1/1 [==============================] - 0s 16ms/step - loss: 0.3034 Epoch 28/100 1/1 [==============================] - 0s 20ms/step - loss: 0.2848 Epoch 29/100 1/1 [==============================] - 0s 20ms/step - loss: 0.2657 Epoch 30/100 1/1 [==============================] - 0s 21ms/step - loss: 0.2461 Epoch 31/100 1/1 [==============================] - 0s 18ms/step - loss: 0.2260 Epoch 32/100 1/1 [==============================] - 0s 18ms/step - loss: 0.2056 Epoch 33/100 1/1 [==============================] - 0s 16ms/step - loss: 0.1850 Epoch 34/100 1/1 [==============================] - 0s 19ms/step - loss: 0.1643 Epoch 35/100 1/1 [==============================] - 0s 23ms/step - loss: 0.1439 Epoch 36/100 1/1 [==============================] - 0s 19ms/step - loss: 0.1239 Epoch 37/100 1/1 [==============================] - 0s 12ms/step - loss: 0.1048 Epoch 38/100 1/1 [==============================] - 0s 21ms/step - loss: 0.0868 Epoch 39/100 1/1 [==============================] - 0s 22ms/step - loss: 0.0705 Epoch 40/100 1/1 [==============================] - 0s 17ms/step - loss: 0.0562 Epoch 41/100 1/1 [==============================] - 0s 17ms/step - loss: 0.0444 Epoch 42/100 1/1 [==============================] - 0s 14ms/step - loss: 0.0353 Epoch 43/100 1/1 [==============================] - 0s 10ms/step - loss: 0.0290 Epoch 44/100 1/1 [==============================] - 0s 16ms/step - loss: 0.0255 Epoch 45/100 1/1 [==============================] - 0s 19ms/step - loss: 0.0241 Epoch 46/100 1/1 [==============================] - 0s 12ms/step - loss: 0.0243 Epoch 47/100 1/1 [==============================] - 0s 9ms/step - loss: 0.0249 Epoch 48/100 1/1 [==============================] - 0s 16ms/step - loss: 0.0253 Epoch 49/100 1/1 [==============================] - 0s 15ms/step - loss: 0.0248 Epoch 50/100 1/1 [==============================] - 0s 10ms/step - loss: 0.0232 Epoch 51/100 1/1 [==============================] - 0s 14ms/step - loss: 0.0204 Epoch 52/100 1/1 [==============================] - 0s 9ms/step - loss: 0.0168 Epoch 53/100 1/1 [==============================] - 0s 14ms/step - loss: 0.0129 Epoch 54/100 1/1 [==============================] - 0s 18ms/step - loss: 0.0091 Epoch 55/100 1/1 [==============================] - 0s 21ms/step - loss: 0.0058 Epoch 56/100 1/1 [==============================] - 0s 20ms/step - loss: 0.0032 Epoch 57/100 1/1 [==============================] - 0s 19ms/step - loss: 0.0015 Epoch 58/100 1/1 [==============================] - 0s 17ms/step - loss: 5.7073e-04 Epoch 59/100 1/1 [==============================] - 0s 21ms/step - loss: 3.4960e-04 Epoch 60/100 1/1 [==============================] - 0s 16ms/step - loss: 6.5761e-04 Epoch 61/100 1/1 [==============================] - 0s 15ms/step - loss: 0.0013 Epoch 62/100 1/1 [==============================] - 0s 18ms/step - loss: 0.0021 Epoch 63/100 1/1 [==============================] - 0s 18ms/step - loss: 0.0030 Epoch 64/100 1/1 [==============================] - 0s 39ms/step - loss: 0.0037 Epoch 65/100 1/1 [==============================] - 0s 27ms/step - loss: 0.0042 Epoch 66/100 1/1 [==============================] - 0s 21ms/step - loss: 0.0046 Epoch 67/100 1/1 [==============================] - 0s 19ms/step - loss: 0.0047 Epoch 68/100 1/1 [==============================] - 0s 13ms/step - loss: 0.0045 Epoch 69/100 1/1 [==============================] - 0s 19ms/step - loss: 0.0042 Epoch 70/100 1/1 [==============================] - 0s 32ms/step - loss: 0.0038 Epoch 71/100 1/1 [==============================] - 0s 37ms/step - loss: 0.0033 Epoch 72/100 1/1 [==============================] - 0s 16ms/step - loss: 0.0027 Epoch 73/100 1/1 [==============================] - 0s 15ms/step - loss: 0.0022 Epoch 74/100 1/1 [==============================] - 0s 15ms/step - loss: 0.0017 Epoch 75/100 1/1 [==============================] - 0s 44ms/step - loss: 0.0014 Epoch 76/100 1/1 [==============================] - 0s 14ms/step - loss: 0.0011 Epoch 77/100 1/1 [==============================] - 0s 14ms/step - loss: 8.4289e-04 Epoch 78/100 1/1 [==============================] - 0s 16ms/step - loss: 7.1271e-04 Epoch 79/100 1/1 [==============================] - 0s 19ms/step - loss: 6.4226e-04 Epoch 80/100 1/1 [==============================] - 0s 17ms/step - loss: 6.0877e-04 Epoch 81/100 1/1 [==============================] - 0s 19ms/step - loss: 5.9024e-04 Epoch 82/100 1/1 [==============================] - 0s 12ms/step - loss: 5.6884e-04 Epoch 83/100 1/1 [==============================] - 0s 13ms/step - loss: 5.3316e-04 Epoch 84/100 1/1 [==============================] - 0s 16ms/step - loss: 4.7896e-04 Epoch 85/100 1/1 [==============================] - 0s 19ms/step - loss: 4.0839e-04 Epoch 86/100 1/1 [==============================] - 0s 11ms/step - loss: 3.2830e-04 Epoch 87/100 1/1 [==============================] - 0s 15ms/step - loss: 2.4785e-04 Epoch 88/100 1/1 [==============================] - 0s 16ms/step - loss: 1.7621e-04 Epoch 89/100 1/1 [==============================] - 0s 18ms/step - loss: 1.2069e-04 Epoch 90/100 1/1 [==============================] - 0s 16ms/step - loss: 8.5577e-05 Epoch 91/100 1/1 [==============================] - 0s 15ms/step - loss: 7.1696e-05 Epoch 92/100 1/1 [==============================] - 0s 15ms/step - loss: 7.6747e-05 Epoch 93/100 1/1 [==============================] - 0s 17ms/step - loss: 9.6050e-05 Epoch 94/100 1/1 [==============================] - 0s 13ms/step - loss: 1.2359e-04 Epoch 95/100 1/1 [==============================] - 0s 14ms/step - loss: 1.5309e-04 Epoch 96/100 1/1 [==============================] - 0s 9ms/step - loss: 1.7895e-04 Epoch 97/100 1/1 [==============================] - 0s 17ms/step - loss: 1.9691e-04 Epoch 98/100 1/1 [==============================] - 0s 16ms/step - loss: 2.0448e-04 Epoch 99/100 1/1 [==============================] - 0s 16ms/step - loss: 2.0096e-04 Epoch 100/100 1/1 [==============================] - 0s 14ms/step - loss: 1.8731e-04 1/1 [==============================] - 1s 1s/step Predictions: [[0.60965604 0.6877619 0.77881706 0.8914886 0.99196804]]