如何在 Tensorflow 中调整 tf-agents 和策略的超参数?
How to tune hyperparameters of tf-agents and policies in Tensor Flow?
我已经设置了一个包裹在张量流中的 python 环境 class 以使其成为张量流环境。然后我根据列出的协作笔记本设置学习 here。目前,我正在使用 dqn 和 REINFORCE 代理。
设置运行良好,结果有点符合预期。现在我想进入超参数的调整,如衰减的 epsilon 贪婪、权重等。
我需要一些关于如何使用有关如何访问这些超参数的文档的指导。
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可以轻松修改,直接看DQN文档里面的__init__
功能
我已经设置了一个包裹在张量流中的 python 环境 class 以使其成为张量流环境。然后我根据列出的协作笔记本设置学习 here。目前,我正在使用 dqn 和 REINFORCE 代理。
设置运行良好,结果有点符合预期。现在我想进入超参数的调整,如衰减的 epsilon 贪婪、权重等。
我需要一些关于如何使用有关如何访问这些超参数的文档的指导。
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可以轻松修改,直接看DQN文档里面的__init__
功能