DSatishchandra commited on
Commit
b87d56f
Β·
verified Β·
1 Parent(s): 1a1c2ae

Create train_lstm_model.py

Browse files
Files changed (1) hide show
  1. train_lstm_model.py +36 -0
train_lstm_model.py ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+ import pandas as pd
3
+ from sklearn.preprocessing import MinMaxScaler
4
+ from tensorflow.keras.models import Sequential
5
+ from tensorflow.keras.layers import LSTM, Dense
6
+ from tensorflow.keras.optimizers import Adam
7
+
8
+ # Load energy generation dataset (ensure 'energy_data.csv' is in the /data folder)
9
+ data = pd.read_csv('data/energy_data.csv') # Replace with your actual filename if different
10
+ energy_data = data['energy_generation'].values.reshape(-1, 1)
11
+
12
+ # Normalize data
13
+ scaler = MinMaxScaler(feature_range=(0, 1))
14
+ energy_data = scaler.fit_transform(energy_data)
15
+
16
+ # Prepare data for LSTM
17
+ X, y = [], []
18
+ for i in range(60, len(energy_data)):
19
+ X.append(energy_data[i-60:i, 0])
20
+ y.append(energy_data[i, 0])
21
+ X, y = np.array(X), np.array(y)
22
+ X = X.reshape((X.shape[0], X.shape[1], 1))
23
+
24
+ # Define LSTM model
25
+ model = Sequential()
26
+ model.add(LSTM(units=50, return_sequences=True, input_shape=(X.shape[1], 1)))
27
+ model.add(LSTM(units=50, return_sequences=False))
28
+ model.add(Dense(units=1))
29
+
30
+ # Compile and train
31
+ model.compile(optimizer=Adam(), loss='mean_squared_error')
32
+ model.fit(X, y, epochs=10, batch_size=32)
33
+
34
+ # Save trained model
35
+ model.save('models/lstm_energy_model.h5')
36
+ print("βœ… LSTM model trained and saved to models/lstm_energy_model.h5")