Keras rl中的Keras LSTM层
我正在尝试使用Keras rl实现DQN代理。问题是,在定义模型时,我需要在体系结构中使用LSTM层:Keras rl中的Keras LSTM层,keras,tensorflow2.0,reinforcement-learning,keras-rl,Keras,Tensorflow2.0,Reinforcement Learning,Keras Rl,我正在尝试使用Keras rl实现DQN代理。问题是,在定义模型时,我需要在体系结构中使用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代理时,我会获得以下错
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代理时,我会获得以下错误:
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层的急切执行,我还有其他错误
有人能帮我理解错误的原因吗?keras rl库没有对TensorFlow 2.0的明确支持,因此它不能与TensorFlow的此类版本一起使用。该库更新很少,最近的版本大约有2年(从2018年开始),因此如果您想使用它,您应该使用TensorFlow 1.xkeras rl库没有对TensorFlow 2.0的明确支持,因此它不能与TensorFlow的此类版本一起使用。该库很少更新,最近的版本大约有2年(从2018年开始),因此如果您想使用它,您应该使用TensorFlow 1.x,尽管可以将keras rl的代码迁移到使用急切执行,从而使用LSTM。LSTM需要通过一整集的学习来更新,以证明keras rl不支持的东西是准确的。请参阅此处的更多信息:尽管可以将keras rl的代码迁移到使用即时执行,从而使用LSTM。LSTM需要通过一整集的学习来更新,以证明keras rl不支持的东西是准确的。请参阅此处的更多信息:从github support tensorflow 2.x安装keras-rl2从github support tensorflow 2.x安装keras-rl2