I am trying to predict the AQI using LSTM, while training I am getting val_loss as nan at evrystep. What is the problem, or what changes hsould i make in code?
df= final_df.copy()
df['Datetime'] = pd.to_datetime(df['Datetime'])
df = df.sort_values('Datetime')
df.set_index('Datetime', inplace=True)
scaler = MinMaxScaler()
aqi_scaled = scaler.fit_transform(df[['AQI']])
def create_sequences(data, seq_length):
sequences = []
targets = []
for i in range(len(data) - seq_length):
seq = data[i:i+seq_length]
target = data[i+seq_length]
sequences.append(seq)
targets.append(target)
return np.array(sequences), np.array(targets)
sequence_length = 24
X, y = create_sequences(aqi_scaled, sequence_length)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = Sequential([
LSTM(64, activation='relu', input_shape=(sequence_length, 1), return_sequences=True),
Dropout(0.2),
LSTM(32, activation='relu'),
Dropout(0.2),
Dense(1)
])
model.compile(optimizer=Adam(learning_rate=0.001), loss='mse')
history = model.fit(X_train, y_train, epochs=100, batch_size=32, validation_split=0.2, verbose=1)
loss = model.evaluate(X_test, y_test)
print(f"Test Loss: {loss}")
Deepak Kumar Dk is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.