def step(self, state, action, reward, next_state, done, timestamp, writer): """Save experience in replay memory, and use random sample from buffer to learn.""" # Save experience / reward self.memory.add(state, action, reward, next_state, done) # Learn, if enough samples are available in memory if len(self.memory) > self.BATCH_SIZE and timestamp % self.LEARN_EVERY == 0: for _ in range(self.LEARN_NUMBER): experiences = self.memory.sample() losses = self.learn(experiences, self.GAMMA) writer.add_scalar("Critic_loss", losses[0], timestamp) writer.add_scalar("Actor_loss", losses[1], timestamp) if self.curiosity: writer.add_scalar("ICM_loss", losses[2], timestamp)
时间: 2023-12-03 19:03:19 浏览: 96
zappi_coin_reward_system:Zappistore 币奖励系统
这段代码是一个强化学习算法中的一个步骤,其中包括以下几个部分:
1. 将当前状态、动作、奖励、下一个状态和完成标志存储在回放缓冲区中;
2. 如果回放缓冲区中的样本数量超过了指定的批量大小,并且当前时间戳是学习间隔的倍数,则从缓冲区中随机采样一批样本,并进行学习;
3. 重复进行一定次数的学习,并记录每次学习的损失;
4. 如果启用了探究性学习,则记录内在奖励模型的损失。
这段代码实现了经验回放和随机抽样的策略,以及利用采样的数据进行学习的过程。它还记录了学习的损失,并在可视化工具中进行展示。
阅读全文