Оценка различной длины последовательности - LSTM - PullRequest
0 голосов
/ 06 мая 2020

Мне нужно реализовать и обучить 8 нейронных сетей со следующей архитектурой:

  • Входной слой с последовательностями длиной L
  • Встраивание с 32 модулями
  • LSTM с 32 модулями
  • LSTM с 32 модулями
  • Полностью связанный слой с 46 модулями

Каждую из нейронных сетей необходимо обучить и оценить с помощью одного и того же набора news (см. раздел ниже о наборе данных), но с разной длиной текста. Например, мы можем использовать следующие длины: 10,20,30,50,100,150,200 и 250.

О наборе данных

import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline

num_words = 2000
(reuters_train_x, reuters_train_y), (reuters_test_x, reuters_test_y) = tf.keras.datasets.reuters.load_data(num_words=num_words)

n_labels = np.unique(reuters_train_y).shape[0]
print("labels: {}".format(n_labels))

# This is the first new
print(reuters_train_x[0])

Реализация LSTM

model2 = Sequential()
#Embedding 
model2.add(Embedding(input_dim=num_words,32,input_length=10))
#LSTM(1)
model2.add(LSTM(32))
#LSTM(2)
model2.add(LSTM(32))
#fully connected
model2.add(Dense(46,activation='softmax'))

И Теперь я должен обучить модель, но есть ли способ оценить все длины без необходимости 8 раз строить / кодировать то же самое, просто изменяя длину?

...