Spaces:
Runtime error
Runtime error
Create train_lstm_model.py
Browse files- 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")
|