Keras LSTM разница без гражданства и с состоянием - PullRequest
0 голосов
/ 26 октября 2018

Я пытаюсь понять концепцию слоев LSTM в Керасе. Я просто хочу подтвердить поведение LSTM и проверить, правильно ли я его понимаю.

Предполагая, что у меня есть 1000 образцов, и у этих образцов есть 1 шаг по времени, и у меня есть размер партии 1, когда

stateful = True

Это то же самое, что 1 образец с 1000 временных шагов и размер партии 1 с

stateful = False

Здесь я также предполагаю, что в обоих случаях у меня одна и та же информация только в разных формах, и я сбрасываю состояние своего слоя LSTM после каждой тренировочной эпохи.

Я также думаю, что размер партии в случае без сохранения состояния имеет значение только для моей обучающей последовательности, потому что, если я установлю

stateful = False 

я могу использовать input_shape вместо batch_input_shape. Таким образом, мой слой LSTM не требует пакетного измерения, только временные шаги и размеры объектов. это правильно?

я получил следующие выводы:

https://github.com/keras-team/keras/blob/master/keras/layers/recurrent.py#L1847

Когда керасы сбрасывают состояние LSTM?

Общие сведения о LSTM Keras

И если у меня есть многоуровневая сеть LSTM, если первый слой LSTM является состоящим с состоянием, все остальные уровни также должны быть с состоянием, верно?

Надеюсь, кто-то понимает, о чем я, и может мне помочь. Если мои вопросы не понятны, пожалуйста, сообщите мне, и я обновлю этот пост.

Спасибо всем.

1 Ответ

0 голосов
/ 26 октября 2018

stateful=True означает, что вы сохраняете конечное состояние для каждой партии и передаете его как начальное состояние для следующей партии.Так что да, в этом случае то же самое, если у вас есть 1 партия из 1000 образцов или 1000 партий из 1 образца.

...