在Keras中實(shí)現(xiàn)RNN,可以使用SimpleRNN
、LSTM
或GRU
等不同類型的RNN層。以下是一個(gè)使用SimpleRNN
層實(shí)現(xiàn)基本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層的神經(jīng)元數(shù)量,input_shape是輸入數(shù)據(jù)的形狀
model.add(Dense(units=10, activation='softmax')) # 添加輸出層
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) # 編譯模型
model.summary() # 打印模型結(jié)構(gòu)
# 訓(xùn)練模型
model.fit(X_train, y_train, batch_size=32, epochs=5, validation_data=(X_val, y_val))
在上面的代碼中,首先創(chuàng)建了一個(gè)Sequential模型,然后添加了一個(gè)SimpleRNN
層和一個(gè)全連接輸出層Dense
。接著編譯模型,指定優(yōu)化器、損失函數(shù)和評(píng)估指標(biāo)。最后通過fit
方法訓(xùn)練模型。
除了SimpleRNN
,還可以使用LSTM
和GRU
層來實(shí)現(xiàn)長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)和門控循環(huán)單元。只需要將SimpleRNN
替換為LSTM
或GRU
即可。