from keras.layers import LSTM, GRU
是的,这两模型可以同时引入。
model = Sequential()
model.add(GRU(100,dropout=0.2,recurrent_dropout=0.2,return_sequences=True,input_shape=(train_x.shape[1],train_x.shape[2])))
model.add(GRU(50,dropout=0.2,recurrent_dropout=0.2,return_sequences=True))
model.add(GRU(50,activation='relu'))
model.add(Dense(1,activation='sigmoid'))
model.compile(loss='mae',optimizer='adam')
history = model.fit(train_x,train_y,epochs=100, batch_size=50,validation_data=(test_x,test_y),verbose=2,shuffle=False)
说到这个model.fit实际上是对训练数据的回归。validation_data用来在每个epoch之后验证一次验证集,以及早发现过拟合等问题。但是也有人不主张使用validation_data这个参数,而是用validation_split参数来代替。
最后,使用RMSE对模型进行评价
print(sqrt(mean_squared_error(real_y, test_y)))