#python-3.x #numpy #reinforcement-learning
#python-3.x #numpy #обучение с подкреплением
Вопрос:
Я пытаюсь решить проблему обучения с подкреплением с помощью текущего фрагмента кода ниже. Я получаю ошибку в этом коде, который я опубликовал ниже.
target_q[batch_index, actions] = rewards self.gamma * np.max(next_q, axis=1)*dones
Значения и формы переменных следующие
значение target_q равно
[[-0.10855542 -0.0802312 0.06993277 0.00552639]
[-0.09975365 -0.07372604 0.06426253 0.00507834]
[-0.12322513 -0.09107337 0.07938312 0.00627324]
[-0.08215004 -0.06071554 0.05292208 0.00418217]
[-0.10268757 -0.07589445 0.06615258 0.00522767]
[-0.11735719 -0.08673649 0.07560297 0.00597452]
[-0.10855542 -0.0802312 0.06993277 0.00552639]
[-0.07628225 -0.05637873 0.04914192 0.00388342]
[ 0. 0. 0. 0. ]
[-0.0792161 -0.05854715 0.05103201 0.00403276]] с формой (10, 4)
batch_index = np.arange(self.batch_size, dtype=np.int32), with batch size = 10.
Значение действия равно [28 35 45 26 40 33 40 49 34 41], с формой (10, )
Значение награды равно [ 10. -20. -20. -20. -20. 10. -20. -20. -20. -20.] с формой (10, )
Значение gamma равно 0,99
Значение next_q равно [[-0.08215004 -0.06071554 0.05292208 0.00418217] [-0.10855542 -0.0802312 0.06993277 0.00552639] [-0.10855542 -0.0802312 0.06993277 0.00552639] [-0.12615901 -0.09324171 0.08127321 0.00642257] [-0.09975365 -0.07372604 0.06426253 0.00507834] [-0.0792161 -0.05854715 0.05103201 0.00403276] [-0.11735719 -0.08673649 0.07560297 0.00597452] [-0.12322513 -0.09107337 0.07938312 0.00627324] [-0.07628225 -0.05637873 0.04914192 0.00388342] [-0.10268757 -0.07589445 0.06615258 0.00522767]], с формой (10, 4)
Значение dones равно [1 1 1 1 1 1 1 1 1 1] с формой (10, ).
Я получаю следующую ошибку
IndexError: index 28 is out of bounds for axis 1 with size 4.
Может кто-нибудь сказать мне, как решить эту ошибку?
Заранее спасибо.
Комментарии:
1. Не используйте слишком большое значение индекса! 28 больше 4. Знайте свои размеры и значения индексации.
2. Что вы предлагаете мне сделать для этого. Можете ли вы предложить обходной путь?
3. При запросе об ошибке точно определите, в какой строке проблема. Показать обратную трассировку.
4. Сначала определите реальную проблему. Выясните, что создает это
28
значение индекса.