[DO NOT MERGE] New memory abstraction and AMRL implementation #4374
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Proposed change(s)
New memory layer abstraction that lets a memory define it's memory size (w.r.t. the "memory size" specified in the config). Then the ActorCritic has a
memory_size
property which the Policy uses to set it's internalm_size
. This allows the actualm_size
that is used during training to be different than what is specified in the YAML. We might want to do this, for instance, if we wantmemory_size: 64
to mean the Policy has a memory size of 64, but the Critic network has memory size of 64 (total of 128) - so the Policy object can store both during training, but only export 64 for inference.Also an implementation of https://openreview.net/forum?id=Bkl7bREtDr using this abstraction.
Types of change(s)
Checklist
Other comments