首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将参与者的输出限制在特定的范围内?

如何将参与者的输出限制在特定的范围内?
EN

Stack Overflow用户
提问于 2018-05-29 16:31:15
回答 1查看 201关注 0票数 1

我正在尝试将深度确定性策略梯度(DDPG)应用于一个过程控制问题。动作输出是连续的。例如,该过程的温度将为25至100摄氏度,或者电机转速将为0至3.0 rpm。我工作的目的是通过将最好的动作输出应用于该过程来提高该过程的产品质量。我认为Actor-Critic和DDPG算法将是解决我的问题的一个很好的方法。

当我实现Actor部分时,我发现大多数在线示例都将Actor的输出限制在(-1,1)的范围内。这是一个tanh激活函数。

代码语言:javascript
复制
import tensorflow as tf

def actor_network(state):
    net = tf.layers.dense(state, 100, activation=tf.nn.relu)
    action = tf.layers.dense(net, action_dimension, activation=tf.nn.tanh)
    return action

这是我的问题:

我应该如何修改我的执行器网络,以将动作输出限制在温度为(25,100),电机转速为(0,3.0)的范围内?

EN

回答 1

Stack Overflow用户

发布于 2018-05-30 01:56:09

为什么不通过一个已知“权重”的线性操作来重新缩放操作呢?如果为了简单起见,你使用逻辑而不是tanh作为你的激活,那么返回tf.add(tf.constant(<lower-bound>), tf.scalar_mul(tf.constant(<upper> - <lower>), action))没有测试,但似乎是合理的。如果您想要tanh,则可以简单地相应地修改计算。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50579735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档