强化学习代理构建DQNAgent导致未知问题

问题描述 投票:0回答:1

我想深入了解一下强化学习,因此我从相当简单的示例“Cartpole”开始,按照实践教程进行操作。 教程源代码的Github链接(和我的一样) 不幸的是,我已经被同样的错误困扰了两天,并且无法根据 TypeError 找到类似的问题/解决方案。错误消息内容如下:

*文件“C:\Users\Felix\Dropbox\Pendelcart.py”,第 40 行,位于 dqn = build_agent(model, actions)

文件“C:\Users\Felix\Dropbox\Pendelcart.py”,第 29 行,在 build_agent dqn = DQNAgent(model=model,内存=内存,policy=policy,nb_actions =actions,

文件“C:\Users\Felix\AppData\Roaming\Python\Python38\site-packages l gents\dqn.py”,第 108 行,在 init 中 if hasattr(model.output, 'len') and len(model.output) > 1:

文件“C:\ Users \ Felix \ AppData \ Roaming \ Python \ Python38 \ site-packages ensorflow \ python \ keras ngine \ keras_tensor.py”,第240行,在len raise TypeError('Keras符号输入/输出不'

TypeError:Keras 符号输入/输出未实现 len。您可能尝试将 Keras 符号输入/输出传递到未注册调度的 TF API,从而阻止 Keras 自动将 API 调用转换为功能模型中的 lambda 层。如果您尝试直接断言符号输入/输出,也会引发此错误。*

我真诚地希望有人能帮助我。我使用 Pyhton 3.8、Tensorflow 2.4.0 和 Keras 2.4.3。完整的源代码附在下面。

提前感谢您,节日快乐。

import gym
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten
from tensorflow.keras.optimizers import Adam
from rl.agents import DQNAgent
from rl.policy import BoltzmannQPolicy
from rl.memory import SequentialMemory


def build_model(states, actions):
    model = Sequential()
    # model.add(Input(shape=(1,states)))
    model.add(Flatten(input_shape=(1,states)))
    model.add(Dense(24,activation='relu'))
    model.add(Dense(24,activation='relu'))
    model.add(Dense(actions,activation='linear'))
    return model

def build_agent(model,actions):
    policy = BoltzmannQPolicy()
    memory = SequentialMemory(limit = 50000, window_length=1)
    dqn = DQNAgent(model=model, memory=memory, policy=policy, nb_actions =actions,
                   nb_steps_warmup=10, target_model_update=1e-2)
    return dqn

env = gym.make('CartPole-v0')
states = env.observation_space.shape[0]
actions = env.action_space.n

model = build_model(states, actions)
model.summary()

dqn = build_agent(model, actions)
dqn.compile(Adam(lr=1e-3), metrics=['mae'])
dqn.fit(env, nb_steps=50000, visualize= False, verbose=1)
python tensorflow keras openai-gym
1个回答
0
投票

我看到这是不久前发布的,但似乎我正在尝试做完全相同的事情来训练深度学习模型,并且遇到了类似的问题。我已经尝试过卸载和安装 keras 软件包......尽管问题仍然存在,我想问一下可以考虑采取哪些其他步骤来使其正常工作。期待再次听到谢谢

© www.soinside.com 2019 - 2024. All rights reserved.