Spaces:
Build error
Build error
| from tensorflow.keras.models import Sequential | |
| from tensorflow.keras.layers import GRU, Bidirectional, Dense, Dropout | |
| from tensorflow.keras.callbacks import EarlyStopping | |
| from tensorflow.keras.regularizers import L2 | |
| import tensorflow as tf | |
| def model_train (x_train, y_train): | |
| tf.random.set_seed(100) | |
| tf.keras.backend.clear_session() | |
| model = Sequential() | |
| model.add(Bidirectional(GRU(units=256, activation='relu', return_sequences=True, input_shape=(10,1)))) | |
| model.add(Dropout(0.5)) | |
| model.add(Bidirectional(GRU(units=256, activation='relu', return_sequences=False, kernel_regularizer=L2(0.01)))) | |
| model.add(Dropout(0.1)) | |
| model.add(Dense(units=1, activation='linear')) # Prediction of the next value | |
| model.compile(optimizer='adam', loss='mape', metrics='mape') | |
| model.build((None, 10, 1)) # Specify input shape | |
| # Define EarlyStopping callback | |
| early_stopping = EarlyStopping(monitor='val_loss', patience=3, restore_best_weights=True) | |
| # Train the model | |
| history = model.fit(x_train, y_train, epochs=10, batch_size=20, validation_split=0.2, callbacks=[early_stopping]) | |
| return history, model | |
| def model_predict(train,scaler,model): | |
| data_inf = train[-10:] | |
| scaled_data_inf = scaler.transform(data_inf.values.reshape(-1,1)) | |
| data_inf_final = tf.expand_dims(scaled_data_inf,0) | |
| pred_inf = model.predict(data_inf_final) | |
| return scaler.inverse_transform(pred_inf) , data_inf | |