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

Python 如何在张量流中调整tf代理和策略的超参数?,python,tensorflow,reinforcement-learning,dqn,Python,Tensorflow,Reinforcement Learning,Dqn,我已经建立了一个python环境,它被包装在一个tensor flow类中,使之成为一个tensor flow环境。然后,我根据列出的协作笔记本设置学习。目前,我正在使用dqn和加固剂 该设置运行良好,结果与预期相符。现在我想讨论超参数的调整,比如衰减ε贪婪,权重等 我需要一些关于如何使用有关如何访问这些超参数的文档的指针。Enhanced不支持epsilon贪婪策略,我建议切换到DQN代理或DDQN 要通过指定的Q网络,可以使用以下方法: q_network=q_network.QNetwor

我已经建立了一个python环境,它被包装在一个tensor flow类中,使之成为一个tensor flow环境。然后,我根据列出的协作笔记本设置学习。目前,我正在使用dqn和加固剂

该设置运行良好,结果与预期相符。现在我想讨论超参数的调整,比如衰减ε贪婪,权重等


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

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

要通过指定的Q网络,可以使用以下方法:

q_network=q_network.QNetwork(
        environment.time_step_spec().observation['observations'],
        environment.action_spec(),
        fc_layer_params=fc_layer_params)
并在初始化时将其传递给代理。对于衰减ε贪婪策略,您可以根据自己的喜好定义自己的函数
衰减ε(train\u step,*kwargs)
。然后初始化列步张量并将其通过
functools.partial
如下:

train_step = tf.Variable(0, trainable=False, name='global_step', dtype=tf.int64)
partial_decaying_eps = partial(decaying_epsilon, train_step *kwargs)
现在,您可以将
部分衰减的\u eps
传递给您的代理,它将按预期工作,并逐步使用
训练步骤
张量进行更新。不过,一定要将同样的
train\u步骤
Tensor传递给您的代理


其他HP可以轻松修改,只需查看其
\uuuu init\uuuu
函数中的DQN文档

是的,我切换到了DQN,但我也在研究c51实现,因为它据说比标准DQN更好。