Я наткнулся на этот код в примере машинного обучения и не могу понять, что происходит. Следующие значения являются абстракцией гораздо более многочисленных значений в примере.
target = np.zeros(3, dtype=np.float32)
target[0], target[1], target[2] = 10., 20., 30.
rewards = np.zeros(3, dtype=np.float32)
rewards[0], rewards[1], rewards[2] = 55., 65 , 75
done = np.zeros(3, dtype=np.uint8)
done[0], done[1], done[2] = 0, 0, 0
print('Target: ', target, ' Rewards: ', rewards, ' Done: ', done)
Target: [10. 20. 30.] Rewards: [55. 65. 75.] Done: [0 0 0]
Тогда target назначается ...
target[done] = rewards[done]
print('Target: ', target, ' Rewards: ', rewards, ' Done: ', done)
Target: [55. 20. 30.] Rewards: [55. 65. 75.] Done: [0 0 0]
Обратите внимание на 1-й элемент из цель теперь является 1-м элементом награды . Как это произошло?
Если я теперь сброслю target и , то награждает к начальным значениям и изменим, скажем, на 0, 0, 1
target = np.zeros(3, dtype=np.float32)
target[0], target[1], target[2] = 10., 20., 30.
rewards = np.zeros(3, dtype=np.float32)
rewards[0], rewards[1], rewards[2] = 55., 65 , 75
done = np.zeros(3, dtype=np.uint8)
done[0], done[1], done[2] = 0, 0, 1
print('Target: ', target, ' Rewards: ', rewards, ' Done: ', done)
Target: [10. 20. 30.] Rewards: [55. 65. 75.] Done: [0 0 1]
и затем выполнить
target[done] = rewards[done]
print('Target: ', target, ' Rewards: ', rewards, ' Done: ', done)
Я получаю первые 2 элемента наград в цель .
Target: [55. 65. 30.] Rewards: [55. 65. 75.] Done: [0 0 1]
Я пробовал разные Комбинации 0 и 1 выполнены, но корреляции не видно.