Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)
David Cecchini
Data Scientist
हमारे शुरुआती मॉडल के नतीजे खराब थे.
model = Sequential() model.add(SimpleRNN(units=16, input_shape=(None, 1))) model.add(Dense(1, activation='sigmoid')) model.compile(loss='binary_crossentropy', optimizer='sgd', metrics=['accuracy'])model.evaluate(x_test, y_test)
$[0.6991182165145874, 0.495]
मॉडल का प्रदर्शन सुधारने के लिए आप कर सकते हैं:
RNN मॉडल overfit कर सकते हैं
Dropout लेयर जोड़ें.dropout और recurrent_dropout पैरामीटर जोड़ें.# शोर जोड़ने के लिए 20% इनपुट हटाता है model.add(Dropout(rate=0.2))# क्रमशः 10% इनपुट और मेमोरी सेल्स हटाता है model.add(LSTM(128, dropout=0.1, recurrent_dropout=0.1))
इस दायरे में नहीं:
model.add(Embedding(vocabulary_size, wordvec_dim, ...))
model.add(Conv1D(num_filters=32, kernel_size=3, padding='same'))
model.add(MaxPooling1D(pool_size=2))
model = Sequential() model.add(Embedding( vocabulary_size, wordvec_dim, trainable=True, embeddings_initializer=Constant(glove_matrix), input_length=max_text_len, name="Embedding"))model.add(Dense(wordvec_dim, activation='relu', name="Dense1"))model.add(Dropout(rate=0.25)) model.add(LSTM(64, return_sequences=True, dropout=0.15, name="LSTM"))model.add(GRU(64, return_sequences=False, dropout=0.15, name="GRU"))model.add(Dense(64, name="Dense2")) model.add(Dropout(rate=0.25)) model.add(Dense(32, name="Dense3"))model.add(Dense(1, activation='sigmoid', name="Output"))
Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)