我正在尝试将自定义神经网络与 tf.在我的模型中我需要使用图层共享。因此,我使用函数式 API 来构建模型。该模型有一个字典作为输入,一层有 n 个神经元作为输出。最后一层是 Concat 层,而不是 Dens 层。我从函数式 API 获取的模型类型
keras.Model(inputs=[...], outpunts[...]
是“keras.engine.function.Functional”。
现在我想将我的模型与 tf Agent 一起使用,如下所示:
agent = dqn_agent.DqnAgent(
train_env.time_step_spec(),
train_env.action_spec(),
q_network=model,
optimizer=optimizer,
td_errors_loss_fn=common.element_wise_squared_loss,
train_step_counter=train_step_counter)
但是我收到以下错误:
AttributeError: 'Functional' object has no attribute 'create_variables'
In call to configurable 'DqnAgent' (<class 'tf_agents.agents.dqn.dqn_agent.DqnAgent'>)
q_network 期望类型为“network.Network”的网络。我不确定如何以 DqnAgent() 接受它的方式转换或包装我的环境。我怎样才能做到这一点?非常感谢任何支持。如果您需要更多信息,请告诉我。
有关我的网络的其他信息:
试试这个:在
agent = dqn_agent.DqnAgent...
位之前,通过添加以下内容来重新定义 model
:
model = tf_agents.networks.sequential.Sequential(model.layers)
这个:
model.layers
,tf_agents.networks.sequential.Sequential
类型的新网络。希望新模型适用于您的 DQN。