Как выбрать действие из матрицы в Q Learning при использовании нескольких кадров в качестве ввода - PullRequest
1 голос
/ 21 июня 2020

При использовании глубокого 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)

1 Ответ

0 голосов
/ 21 июня 2020

Выберите действие с наибольшим значением. Назовем выходной тензор action_values.

action=torch.argmax(action_values.data)

или

action=np.argmax(action_values.cpu().data.numpy())
...