NM512 / dreamerv3-torch

Implementation of Dreamer v3 in pytorch.
MIT License
389 stars 86 forks source link

Question about reversed() during deleting cache #40

Closed dwyzzy closed 1 year ago

dwyzzy commented 1 year ago

Thank you for the great work!

From my point of view, in the function erase_over_episodes, the oldest episodes will be erased. However, when deleting the episode, the code uses reversed(), which may delete the latest episodes?

def erase_over_episodes(cache, dataset_size):
    step_in_dataset = 0
    for key, ep in reversed(sorted(cache.items(), key=lambda x: x[0])):
        if (
            not dataset_size
            or step_in_dataset + (len(ep["reward"]) - 1) <= dataset_size
        ):
            step_in_dataset += len(ep["reward"]) - 1
        else:
            del cache[key]
    return step_in_datas

Does the code have a bug or did I make any mistake? Thank you!

dwyzzy commented 1 year ago

Sorry, i make some mistakes.