Solar_Panels / train_lstm_model.py
DSatishchandra's picture
Create train_lstm_model.py
b87d56f verified
raw
history blame
1.25 kB
import numpy as np
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense
from tensorflow.keras.optimizers import Adam
# Load energy generation dataset (ensure 'energy_data.csv' is in the /data folder)
data = pd.read_csv('data/energy_data.csv') # Replace with your actual filename if different
energy_data = data['energy_generation'].values.reshape(-1, 1)
# Normalize data
scaler = MinMaxScaler(feature_range=(0, 1))
energy_data = scaler.fit_transform(energy_data)
# Prepare data for LSTM
X, y = [], []
for i in range(60, len(energy_data)):
X.append(energy_data[i-60:i, 0])
y.append(energy_data[i, 0])
X, y = np.array(X), np.array(y)
X = X.reshape((X.shape[0], X.shape[1], 1))
# Define LSTM model
model = Sequential()
model.add(LSTM(units=50, return_sequences=True, input_shape=(X.shape[1], 1)))
model.add(LSTM(units=50, return_sequences=False))
model.add(Dense(units=1))
# Compile and train
model.compile(optimizer=Adam(), loss='mean_squared_error')
model.fit(X, y, epochs=10, batch_size=32)
# Save trained model
model.save('models/lstm_energy_model.h5')
print("βœ… LSTM model trained and saved to models/lstm_energy_model.h5")