Код: Выделить всё
for
Код: Выделить всё
for i in range(num_train_steps): # Currently fixed to be a for loop
for j in range(num_env_steps): # Currently fixed to be a for loop
act()
def act():
for k in range(num_algo_iters): # Currently playing around with making this one either a scan or a for loop
jax.lax.scan(rollout_func) # Currently fixed to be a scan
Times Times для act () для различных повторений составило 1,5, 11,3, 99,0, 956.2 для Scan версии и 5,1, 14,5, 63,6, 97. версия Таким образом, версия для никогда не оказалась быстрее для количества повторений, которые я пробовал. Может быть, увеличение повторений еще больше, установив num_env_steps на 100 тыс. или 1 миллион, сделайте его быстрее, или мы всегда можем просто заменить A для на сканирование ? I have this question because I wonder if I am trying to over-optimise my code by converting every for to a scan.
[*]If I set unroll = True for the scan, would it then always be fine to replace all fors with scans and expect speed-ups?
[*]Is there a Правило, которое может помочь мне решить, когда использовать для и когда использовать сканирование , если меня заинтересованы только в таких ускорениях?
Код: Выделить всё
act
Подробнее здесь: https://stackoverflow.com/questions/796 ... -using-jax