|
from tensorflow.keras.models import Sequential |
|
from tensorflow.keras.layers import GRU, LSTM, Dense, Dropout |
|
|
|
from warnings import filterwarnings |
|
filterwarnings('ignore') |
|
|
|
|
|
""" GRU (Gated Recurrent Units) Model """ |
|
def gru_model(input_shape): |
|
cdef object model = Sequential([ |
|
GRU(50, return_sequences = True, input_shape = input_shape), |
|
Dropout(0.2), |
|
|
|
GRU(50, return_sequences = True), |
|
Dropout(0.2), |
|
|
|
GRU(50, return_sequences = True), |
|
Dropout(0.2), |
|
|
|
GRU(50, return_sequences = False), |
|
Dropout(0.2), |
|
|
|
Dense(units = 1) |
|
]) |
|
|
|
model.compile(optimizer = 'nadam', loss = 'mean_squared_error') |
|
return model |
|
|
|
|
|
""" LSTM (Long Short-Term Memory) Model """ |
|
def lstm_model(input_shape): |
|
cdef object model = Sequential([ |
|
LSTM(50, return_sequences = True, input_shape = input_shape), |
|
Dropout(0.2), |
|
|
|
LSTM(50, return_sequences = True), |
|
Dropout(0.2), |
|
|
|
LSTM(50, return_sequences = True), |
|
Dropout(0.2), |
|
|
|
LSTM(50, return_sequences = False), |
|
Dropout(0.2), |
|
|
|
Dense(units = 1) |
|
]) |
|
|
|
model.compile(optimizer = 'nadam', loss = 'mean_squared_error') |
|
return model |
|
|
|
|
|
""" |
|
LSTM (Long Short-Term Memory) and |
|
GRU (Gated Recurrent Units) Model |
|
""" |
|
def lstm_gru_model(input_shape): |
|
cdef object model = Sequential([ |
|
LSTM(50, return_sequences = True, input_shape = input_shape), |
|
Dropout(0.2), |
|
|
|
GRU(50, return_sequences = True), |
|
Dropout(0.2), |
|
|
|
LSTM(50, return_sequences = True), |
|
Dropout(0.2), |
|
|
|
GRU(50, return_sequences = False), |
|
Dropout(0.2), |
|
|
|
Dense(units = 1) |
|
]) |
|
|
|
model.compile(optimizer = 'nadam', loss = 'mean_squared_error') |
|
return model |
|
|