Я очень старался искать везде, но не смог найти, что такое num_units
в TensorFlow на самом деле. Я попытался связать свой вопрос с этим вопросом, но не смог т получить четкое объяснение там.
В TensorFlow при создании RNN на основе LSTM мы используем следующую команду
cell = rnn.BasicLSTMCell(num_units=5, state_is_tuple=True)
Как говорится в блоге Колаха, это базовая ячейка LSTM:
Теперь предположим, что мои данные:
idx2char = ['h', 'i', 'e', 'l', 'o']
# Teach hello: hihell -> ihello
x_data = [[0, 1, 0, 2, 3, 3]] # hihell
x_one_hot = [[[1, 0, 0, 0, 0], # h 0
[0, 1, 0, 0, 0], # i 1
[1, 0, 0, 0, 0], # h 0
[0, 0, 1, 0, 0], # e 2
[0, 0, 0, 1, 0], # l 3
[0, 0, 0, 1, 0]]] # l 3
y_data = [[1, 0, 2, 3, 3, 4]] # ihello
Мой ввод:
x_one_hot = [[[1, 0, 0, 0, 0], # h 0
[0, 1, 0, 0, 0], # i 1
[1, 0, 0, 0, 0], # h 0
[0, 0, 1, 0, 0], # e 2
[0, 0, 0, 1, 0], # l 3
[0, 0, 0, 1, 0]]] # l 3
который имеет форму [6,5]
.
В этом блоге у нас есть следующая картинка
Насколько я знаю, BasicLSTMCell
развернется за t
временных шагов, где t
- это мое количество строк (пожалуйста, поправьте меня, если я ошибаюсь!). Например, на следующем рисунке LSTM разворачивается на t = 28
временных шагов.
В блоге Колы написано
каждая строка несет целый вектор
Итак, давайте посмотрим, как моя входная матрица [6,5]
будет проходить через эту RNN на основе LSTM.
Если моя приведенная выше диаграмма верна, то что такое num_units
(которое мы определили в ячейке LSTM)? Является ли это параметром ячейки LSTM?
Если num_unit
является параметром одной ячейки LSTM, то это должно быть что-то вроде:
Если приведенная выше диаграмма верна, то где эти 5 num_units
в следующем схематическом представлении ячейки LSTM (согласно блогу Кола)?
Если бы вы могли дать свой ответ с цифрой, это было бы очень полезно! Вы можете редактировать или создать новую диаграмму доски здесь.