Open WillInvest opened 4 months ago
I noticed that if I change batch size to 32, then the weird "obs: torch.Size([64])" becomes "obs: torch.Size([32])"
so the error is somehow connected to the batch size
buffer = PrioritizedVectorReplayBuffer(
args.buffer_size,
buffer_num=len(train_env),
# ignore_obs_next=True,
# save_only_last_obs=True,
alpha=args.alpha,
beta=args.beta,
)
when I comment out those two lines, problem solved.
Can someone help me explain what happens here? Really appreciate.
@WillInvest I can look into it, but can you format your posts above to make the code more readable?
buffer = PrioritizedVectorReplayBuffer( args.buffer_size, buffer_num=len(train_env), # ignore_obs_next=True, # save_only_last_obs=True, alpha=args.alpha, beta=args.beta, ) when I comment out those two lines, problem solved. Can someone help me explain what happens here? Really appreciate.
The buffer is currently very complicated, I was working on simplifying it and extending documentation in the last months. Will be merged to master soon.
ignore_obs_next
should essentially never be set to True
, it means that obs
rolled forwards will be used instead of obs_next
, which means making errors at the boundaries of episodes and at interrupted collections. It's only an option if one really really needs to save RAM, like maybe with atari envs, where observations are large.
save_only_last_obs
should also not be touched.
Result: