Introducere în RNN în Keras

Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

David Cecchini

Data Scientist

Ce este keras?

  • API de nivel înalt

  • Rulează pe TensorFlow 2

  • Ușor de instalat și utilizat

$pip install tensorflow

Experimentare rapidă:

from tensorflow import keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense
Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

keras.models

keras.models.Sequential

Reprezentare a clasei Sequential din keras. Straturile sunt adăugate în secvență, de la intrare la ieșire.

keras.models.Model

Reprezentare a clasei Model din keras. Această clasă acceptă intrări și ieșiri multiple, permițând arhitecturi mai complexe.

Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

keras.layers

  1. LSTM
  2. GRU
  3. Dense
  4. Dropout
  5. Embedding
  6. Bidirectional
Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

keras.preprocessing

keras.preprocessing.sequence.pad_sequences(texts, maxlen=3)

Exemplu de padding al textelor. Dacă textul are mai puține cuvinte decât dimensiunea de padding, un token "0" este adăugat la începutul textului; dacă are mai multe cuvinte, ultimele sunt excluse.

Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

keras.datasets

Multe seturi de date utile

  • Recenzii de filme IMDB
  • Știri Reuters

Și altele!

Pentru o listă completă și exemple de utilizare, consultați documentația keras

Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

Crearea unui model

# Import required modules
from tensorflow import keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
# Instantiate the model class
model = Sequential()
# Add the layers
model.add(Dense(64, activation='relu', input_dim=100))
model.add(Dense(1, activation='sigmoid'))
# Compile the model
model.compile(optimizer='adam', loss='mean_squared_error', metrics=['accuracy'])
Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

Antrenarea modelului

Metoda .fit() antrenează modelul pe setul de antrenament

model.fit(X_train, y_train, epochs=10, batch_size=32)
  1. epochs determină câte actualizări ale ponderilor vor fi efectuate
  2. batch_size dimensiunea datelor la fiecare pas
Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

Evaluarea și utilizarea modelului

Evaluarea modelului:

model.evaluate(X_test, y_test)
[0.3916562925338745, 0.89324]

Predicții pe date noi:

model.predict(new_data)
array([[0.91483957],[0.47130653]], dtype=float32)
Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

Exemplu complet: Clasificarea sentimentelor IMDB

# Build and compile the model
model = Sequential()

model.add(Embedding(10000, 128)) model.add(LSTM(128, dropout=0.2)) model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# Training
model.fit(x_train, y_train, epochs=5)
# Evaluation
score, acc = model.evaluate(x_test, y_test)
Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

Timp de practică!

Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

Preparing Video For Download...