Python 解决此类DQN代理的最佳方法是什么?

Python 解决此类DQN代理的最佳方法是什么?,python,keras,deep-learning,reinforcement-learning,cnn,Python,Keras,Deep Learning,Reinforcement Learning,Cnn,我是一个强化学习和深度学习的初学者,对我来说很简单^^ 假设我们在Keras中有一个DQN代理,它接收的输入是0和1的2D矩阵,假设它有10行3列 该矩阵是10个用户请求的矩阵(行数),如果其中一个列的值等于1,则表示用户向代理请求将资源提供给该用户 例如: [ [0, 1, 0], [0, 0, 0], [1, 0, 0], [0, 0, 1], ... ] 在收到输入矩阵后,代理必须为请求它的用户提供一个资源,而不为不请求它的用户提供任何资源 假设代理有12个可以分配的资源。我们

我是一个强化学习和深度学习的初学者,对我来说很简单^^

假设我们在Keras中有一个DQN代理,它接收的输入是0和1的2D矩阵,假设它有10行3列

该矩阵是10个用户请求的矩阵(行数),如果其中一个列的值等于1,则表示用户向代理请求将资源提供给该用户

例如:

[
 [0, 1, 0],
 [0, 0, 0],
 [1, 0, 0],
 [0, 0, 1],
 ...
]
在收到输入矩阵后,代理必须为请求它的用户提供一个资源,而不为不请求它的用户提供任何资源

假设代理有12个可以分配的资源。我们可以将资源分配表示为一个2D矩阵,它有12行(资源数量)和10列(用户数量)

每个资源只能提供给一个用户,每个用户在每个步骤中只能使用一个资源

我试过,这是一个与我类似的问题,但当我运行代码时,q_值(或权重?)被分配到输出矩阵每行的每一列,我想要的是q_值被分配到整个矩阵,或者至少这是我的初学者大脑告诉我的

动作(输出)矩阵可以如下所示:

[
 [1, 0, 0, 0, 0, ...]
 [0, 0, 0, 0, 0, ...],
 [0, 0, 0, 1, 0, ...],
 ...
]
我的一个想法是从矩阵集合(动作)中进行选择,但集合非常大,我无法存储它,因为它给了我一个MemoryError


我仍然不清楚解决这个难题的最佳方法是什么。

最简单的方法是用n维动作向量定义DQN代理。此动作向量的每个条目都应该是[-1,n_resources]中的整数
x
x=-1
表示没有分配给此用户的资源,而
0
[0, -1, 3, ...]