1

我已经设置了一个包装在张量流类中的 python 环境,以使其成为张量流环境。然后我按照此处列出的协作笔记本设置学习。目前,我正在使用 dqn 和 REINFORCE 代理。

该设置运行良好,结果与预期的一样。现在我想进入超参数的调整,比如衰减 epsilon greedy、权重等。

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

4

1 回答 1

1

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)

并在初始化时将其传递给您的代理。对于衰减的 epsilon-greedy 策略,您可以根据需要定义自己的函数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文档

于 2020-12-12T10:06:11.610 回答