Skip to content

关于代码问题的描述 #8

Description

@Camellia77

def process_env_step(self, rewards, costs, dones, infos):

    self.transition.rewards = rewards.clone()
    self.transition.costs = costs.clone()
    self.transition.dones = dones
    # Bootstrapping on time outs
    if 'time_outs' in infos:
        self.transition.rewards += self.gamma * torch.squeeze(self.transition.values * infos['time_outs'].unsqueeze(1).to(self.device), 1)
        self.transition.costs += self.gamma * (self.transition.costs * infos['time_outs'].unsqueeze(1).to(self.device))
    # Record the transition
    self.storage.add_transitions(self.transition)
    self.transition.clear()
    self.actor_critic.reset(dones)  首先很感谢您的开源,有点关于np30算法中的问题想询问一下,就是这一段关于time_out的损失积累中,self.transition.costs += self.gamma * (self.transition.costs * infos['time_outs'].unsqueeze(1).to(self.device)),为什么不是仿照reward一样用cost_values积累,而是采用costs呢,这样做不是相当于在time_out的时候手动对costs进行放大吗(costs = (1+gamma)*costs ),这个地方不是很理解 希望能得到解答

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions