我以前得到:
self.memory = np.zeros((MEMORY_CAPACITY, s_dim * 2 + a_dim + 1), dtype=np.float32)
但我需要在这个内存中添加一个变量“done”,所以我做了:
self.memory = np.zeros((MEMORY_CAPACITY, s_dim * 2 + a_dim + 2), dtype=np.float32)
现在我在内存中添加了变量“完成”:
def store_transition(self, s, a, r, s_, done):
transition = np.hstack((s, a, [r], s_, done))
index = self.pointer % MEMORY_CAPACITY # replace the old memory with new memory
self.memory[index, :] = transition
所以现在它被添加了,但我还需要在我的其他函数中恢复它:
indices = np.random.choice(MEMORY_CAPACITY, size=BATCH_SIZE)
bt = self.memory[indices, :]
bs = bt[:, :self.s_dim]
ba = bt[:, self.s_dim: self.s_dim + self.a_dim]
br = bt[:, -self.s_dim - 1: -self.s_dim]
bs_ = bt[:, -self.s_dim:]
bd = bt[:, here should be done]
所以 bd 应该包含 done 变量,我个人认为应该是:
bd = bt[:, -1:]
但我不确定....
此外,一些旧的位置必须改变,因为阵列变得更大,但我不知道哪个,什么以及如何....
任何可以帮助我的人吗?
简