如何在张量流中调整tf代理和策略的超参数



我已经设置了一个python环境,该环境封装在张量流类中,使其成为张量流环境。然后我按照这里列出的collab笔记本设置学习。目前,我正在使用dqn和钢筋代理。

该设置运行良好,结果与预期一致。现在我想进入超参数的调整,如衰减ε贪婪,权重等。

我需要一些关于如何使用关于如何访问这些超参数的文档的指针。

Reinforce不支持epsilon贪婪策略,我建议切换到DQN代理或DDQN。

要通过指定的Q-Network,您可以使用以下内容:

q_network=q_network.QNetwork(
environment.time_step_spec().observation['observations'],
environment.action_spec(),
fc_layer_params=fc_layer_params)

并在初始化时将其传递给您的代理。对于衰减ε贪婪策略,您可以根据自己的喜好定义自己的函数decaying_epsilon(train_step, *kwargs)。然后初始化train_step张量并通过functools.partial,如下所示:

train_step = tf.Variable(0, trainable=False, name='global_step', dtype=tf.int64)
partial_decaying_eps = partial(decaying_epsilon, train_step *kwargs)

现在,您可以将partial_decaying_eps传递给您的代理,它将按预期工作,并逐步使用您的train_step张量进行更新。不过,请务必将相同的train_step张量传递给您的代理。

其他HP可以很容易地进行修改,只需查看其__init__功能中的DQN文档即可

最新更新