我有一个具有多离散操作空间的自定义环境。
动作和观察空间如下:
行动:
MultiDiscrete([ 3 121 121 121 3 121 121 121 3 121 121 121 3 121 121 121 3 121
121 121 3 121 121 121 3 121 121 121 3 121 121 121 3 121 121 121
3 121 121 121 3 121 121 121 3 121 121 121 3 121 121 121 3 121
121 121 3 121 121 121 3 121 121 121 3 121 121 121])
观察:
MultiDiscrete([100 3 2 121 2 121 2 121 2 121 2 121 2 121 2 121 2 121
2 121 2 121 2 121 2 121 2 121 2 121 2 121 2 121 2 121
2 121 2 121 2 121 2 121 2 121 2 121 2 121 2 121 2 121
2 121 2 121 2 121 2 121 2 121 2 121 2 121 2 121 2 121
121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121
121 121 121 121 121 121 121 121 121 121 121 121 121 121 121])
我很难找到能够处理这些空间的代理(例如在 keras-rl 中)。
这个问题:https ://github.com/keras-rl/keras-rl/issues/224表明 keras-rl DDPG 代理能够处理多离散动作空间,但模型有一个浮点输出,我不能用作step()函数的动作,它需要一个整数输出!
大多数其他代理似乎使用tanh激活层,或产生二进制输出的某些层。我需要一个与我的动作空间形状相同的输出。
如何处理?