【发布时间】:2021-03-01 02:35:57
【问题描述】:
我是强化学习和深度学习的初学者,所以对我来说很简单^^
假设我们在 Keras 中有一个 DQN 代理,它接收一个由 0 和 1 组成的二维矩阵的输入,假设它有 10 行和 3 列。
这个矩阵是一个包含 10 个用户(行数)的请求矩阵,如果其中一列的值等于 1,则表示用户正在向代理请求提供给该用户的资源。
例子:
[
[0, 1, 0],
[0, 0, 0],
[1, 0, 0],
[0, 0, 1],
...
]
在收到输入矩阵后,代理必须为请求它的用户提供资源,而不为没有请求的用户提供任何资源。
假设代理有 12 个可以分配的资源。我们可以将资源分配表示为一个 12 行(资源数量)和 10 列(用户数量)的二维矩阵。
每个资源只能给一个用户,每个用户在每个步骤中只能使用一个资源。
我尝试过this,这与我的问题相似,但是当我运行代码时,q_values(或权重?)被分配给输出矩阵每一行的每一列,我想要的是q_values 分配给整个矩阵,或者至少这是我的初学者大脑告诉我的。
动作(输出)矩阵可以是这样的:
[
[1, 0, 0, 0, 0, ...]
[0, 0, 0, 0, 0, ...],
[0, 0, 0, 1, 0, ...],
...
]
我的一个想法是从一组矩阵(动作)中进行选择,但是该集合非常大,我无法存储它,因为它给了我一个 MemoryError。
我仍然不知道解决这个困境的最佳方法是什么。
【问题讨论】:
标签: python keras deep-learning reinforcement-learning conv-neural-network