Слои Keras LSTM в Керас-рл - PullRequest
       63

Слои Keras LSTM в Керас-рл

0 голосов
/ 22 января 2020

Я пытаюсь реализовать агент DQN, используя Keras-rl. Проблема в том, что когда я определяю свою модель, мне нужно использовать слой LSTM в архитектуре:

model = Sequential()
model.add(Flatten(input_shape=(1, 8000)))
model.add(Reshape(target_shape=(200, 40)))
model.add(LSTM(20))
model.add(Dense(3, activation='softmax'))
return model

При выполнении rl-agent я получаю следующую ошибку:

RuntimeError: Attempting to capture an EagerTensor without building a function.

Какой связано с использованием LSTM и со следующей строкой кода:

tf.compat.v1.disable_eager_execution()

Использование плотного слоя вместо LSTM:

model = Sequential()
model.add(Flatten(input_shape=(1, 8000)))
model.add(Dense(20))
model.add(Dense(3, activation='softmax'))
return model

и поддержание активного выполнения отключено не сообщалось ранее об ошибке. Если я удаляю отключение активного выполнения со слоем LSTM, у меня появляются другие ошибки.

Может кто-нибудь помочь мне понять причину ошибки?

Ответы [ 3 ]

1 голос
/ 22 января 2020

Библиотека keras-rl не имеет явной поддержки TensorFlow 2.0, поэтому она не будет работать с такой версией TensorFlow. Библиотека редко обновляется, а последнему выпуску около 2 лет (с 2018 года), поэтому, если вы хотите ее использовать, вам следует использовать TensorFlow 1.x

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

Установить keras-rl2 из поддержки github tensflow 2.x

0 голосов
/ 06 апреля 2020

Хотя возможно выполнить миграцию кода для keras-rl, чтобы использовать активное выполнение и, следовательно, LSTM. LSTM должны быть обновлены с целым эпизодом обучения, чтобы доказать, что что-то точное, что keras-rl не поддерживает. Подробнее здесь: https://github.com/keras-rl/keras-rl/issues/41

...