在Keras中實現RNN,可以使用SimpleRNN
、LSTM
或GRU
等不同類型的RNN層。以下是一個使用SimpleRNN
層實現基本RNN的示例代碼:
from keras.models import Sequential
from keras.layers import SimpleRNN, Dense
model = Sequential()
model.add(SimpleRNN(units=64, input_shape=(10, 32))) # units是RNN層的神經元數量,input_shape是輸入數據的形狀
model.add(Dense(units=10, activation='softmax')) # 添加輸出層
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) # 編譯模型
model.summary() # 打印模型結構
# 訓練模型
model.fit(X_train, y_train, batch_size=32, epochs=5, validation_data=(X_val, y_val))
在上面的代碼中,首先創建了一個Sequential模型,然后添加了一個SimpleRNN
層和一個全連接輸出層Dense
。接著編譯模型,指定優化器、損失函數和評估指標。最后通過fit
方法訓練模型。
除了SimpleRNN
,還可以使用LSTM
和GRU
層來實現長短時記憶網絡和門控循環單元。只需要將SimpleRNN
替換為LSTM
或GRU
即可。