我想將下面的 RNN 轉換為雙向 RNN,我該怎么做?
RNN 的代碼
def RNN():
inputs = Input(name='inputs',shape=[max_len])
layer = Embedding(max_words,100,input_length=max_len, weights=[embedding_matrix_vocab])(inputs)
layer = LSTM(64)(layer)
layer = Dense(356,name='FC1')(layer)
layer = Activation('relu')(layer)
layer = Dense(356,name='FC2')(layer)
layer = Activation('relu')(layer)
layer = Dropout(0.5)(layer)
layer = Dense(6,name='out_layer')(layer)
layer = Activation('softmax')(layer)
model = Model(inputs=inputs,outputs=layer)
return model
#Call the function and compile the model.
model = RNN()
model.summary()
model.compile(loss='categorical_crossentropy',optimizer=RMSprop(),metrics=['accuracy'])
model.fit(X_train,Y_train,batch_size=10,epochs=20,
validation_split=0.1)
uj5u.com熱心網友回復:
您可以使用雙向層:
def RNN():
inputs = Input(name='inputs',shape=[max_len])
layer = Embedding(max_words, 100, input_length=max_len,
weights=[embedding_matrix_vocab])(inputs)
layer = Bidirectional(LSTM(64))(layer)
layer = Dense(356,name='FC1')(layer)
layer = Activation('relu')(layer)
layer = Dense(356,name='FC2')(layer)
layer = Activation('relu')(layer)
layer = Dropout(0.5)(layer)
layer = Dense(6,name='out_layer')(layer)
layer = Activation('softmax')(layer)
model = Model(inputs=inputs,outputs=layer)
return model
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/467678.html
