Deep learning 当使用多帧作为输入时,Q学习中如何从矩阵中选择动作

Deep learning 当使用多帧作为输入时,Q学习中如何从矩阵中选择动作,deep-learning,pytorch,conv-neural-network,reinforcement-learning,q-learning,Deep Learning,Pytorch,Conv Neural Network,Reinforcement Learning,Q Learning,当使用深度q学习时,我试图通过传递大量灰度帧作为输入来捕捉运动,每个帧的尺寸为90x90。将传入四个90x90帧,以允许网络检测运动。多个帧应该被视为一个单一状态,而不是一批4个状态,我如何才能得到作为结果的动作向量而不是矩阵 我使用的是pytorch,它将返回一个4x7矩阵——每帧一行操作。以下是网络: self.conv1 = Conv2d(self.channels, 32, 8) self.conv2 = Conv2d(32, 64, 4)

当使用深度q学习时,我试图通过传递大量灰度帧作为输入来捕捉运动,每个帧的尺寸为90x90。将传入四个90x90帧,以允许网络检测运动。多个帧应该被视为一个单一状态,而不是一批4个状态,我如何才能得到作为结果的动作向量而不是矩阵

我使用的是pytorch,它将返回一个4x7矩阵——每帧一行操作。以下是网络:

        self.conv1 = Conv2d(self.channels, 32, 8)
        self.conv2 = Conv2d(32, 64, 4)
        self.conv3 = Conv2d(64, 128, 3)
        self.fc1 = Linear(128 * 52 * 52, 64)
        self.fc2 = Linear(64, 32)
        self.output = Linear(32, action_space)

选择具有最高值的操作。 让我们将输出张量称为
action\u值

action=torch.argmax(action_values.data)


选择具有最高值的操作。 让我们将输出张量称为
action\u值

action=torch.argmax(action_values.data)


简单但不优雅的做法是在第一个(通道)维度中连接四个帧。更复杂的是3d卷积(计算成本高)或时间维度上的递归神经网络(这里仅列举一些示例…),简单但不优雅的是在第一个(通道)维度上连接四个帧。更复杂的是3d卷积(计算成本高)或时间维度上的递归神经网络(这里仅举一些例子…),因为它是一个矩阵,argmax将返回一个动作向量,我必须使用argmax两次才能得到一个值,我不确定这样做是否有意义,我认为有4个动作是连续的。。。每个动作都表示为一个向量。因为它是一个矩阵argmax将返回一个动作向量,我必须使用argmax两次才能得到一个值,我不确定这样做是否有意义Hello@RyanMcCauley,我认为有4个动作是连续的。。。每个动作都表示为一个向量。