Керас - Проблемы с пониманием единиц RNN - PullRequest
0 голосов
/ 27 мая 2020
• 1000 количество нейронов или фильтров.

Я недавно перешел на RNN, но меня смущает этот параметр единицы.

В следующем коде из примера книги я использую временные ряды 50 периодов, но я не понимаю, что на самом деле представляют 20 в слое SimpleRNN. В ИНС первый плотный слой имеет то же количество параметров, что и входные, что меня смущает.

model = keras.models.Sequential([
    keras.layers.SimpleRNN(20, return_sequences=True, input_shape=[None, 1]),
    keras.layers.SimpleRNN(20, return_sequences=True),
    keras.layers.SimpleRNN(1)
])

И тот, у которого также есть плотный слой:

model = keras.models.Sequential([
    keras.layers.SimpleRNN(20, return_sequences=True, input_shape=[None, 1]),
    keras.layers.SimpleRNN(20),
    keras.layers.Dense(1)
])

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 27 мая 2020

Для units в keras.layers.SimpleRNN или любых структур RNN, которые предоставляет keras, вы можете рассматривать это как расширение структуры basi c RNN, которая находится в одной ячейке RNN, содержащей такое количество единиц для вычислительные входы. Как вы знаете, единица измерения в RNN - tanh , поэтому, если units=1, то это будет график слева, а для units=3 справа

      output           output1  output2  output3
        ^                   ^      ^      ^
        |                   |      |      |
       tanh                tanh   tanh   tanh
        ^                   ^      ^      ^
        |                   |      |      |
input ---          input ------------------

Просто рассмотрите это как filters в CNN, возможно, вы сможете узнать концепцию. Рекомендуем: https://colah.github.io/posts/2015-08-Understanding-LSTMs/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...