Keras içinde RNN’ye giriş

Keras ile Dil Modellemesi için Yinelenen Sinir Ağları (RNN)

David Cecchini

Data Scientist

Keras nedir?

  • Yüksek seviyeli API

  • TensorFlow 2 üzerinde çalışır

  • Kurulumu ve kullanımı kolay

$pip install tensorflow

Hızlı denemeler:

from tensorflow import keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense
Keras ile Dil Modellemesi için Yinelenen Sinir Ağları (RNN)

keras.models

keras.models.Sequential

Keras’ın Sequential sınıfının makro gösterimi. Katmanlar girişten çıkışa sırayla eklenir.

keras.models.Model

Keras’ın Model sınıfının makro gösterimi. Bu sınıf birden çok girdi ve çıktıya sahip olabilir; daha karmaşık mimarilere izin verir.

Keras ile Dil Modellemesi için Yinelenen Sinir Ağları (RNN)

keras.layers

  1. LSTM
  2. GRU
  3. Dense
  4. Dropout
  5. Embedding
  6. Bidirectional
Keras ile Dil Modellemesi için Yinelenen Sinir Ağları (RNN)

keras.preprocessing

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

Bazı metinlerde padding örneği. Metin, dolgu boyutundan kısaysa başına "0" belirteci eklenir; uzunsa son sözcükler çıkarılır.

Keras ile Dil Modellemesi için Yinelenen Sinir Ağları (RNN)

keras.datasets

Birçok yararlı veri kümesi

  • IMDB film yorumları
  • Reuters haber bülteni

Ve daha fazlası!

Tam liste ve kullanım örnekleri için keras belgeleri bölümüne bakın

Keras ile Dil Modellemesi için Yinelenen Sinir Ağları (RNN)

Model oluşturma

# 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'])
Keras ile Dil Modellemesi için Yinelenen Sinir Ağları (RNN)

Modeli eğitme

.fit() yöntemi modeli eğitim kümesi üzerinde eğitir

model.fit(X_train, y_train, epochs=10, batch_size=32)
  1. epochs: modelde kaç ağırlık güncellemesi yapılacağı
  2. batch_size: her adımda kullanılan veri boyutu
Keras ile Dil Modellemesi için Yinelenen Sinir Ağları (RNN)

Model değerlendirme ve kullanım

Modeli değerlendir:

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

Yeni veride tahmin yap:

model.predict(new_data)
array([[0.91483957],[0.47130653]], dtype=float32)
Keras ile Dil Modellemesi için Yinelenen Sinir Ağları (RNN)

Tam örnek: IMDB Duygu Sınıflandırma

# 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)
Keras ile Dil Modellemesi için Yinelenen Sinir Ağları (RNN)

Haydi pratik yapalım!

Keras ile Dil Modellemesi için Yinelenen Sinir Ağları (RNN)

Preparing Video For Download...