在典型的策略梯度算法中,根据概率选择随机动作至关重要。但是,鉴于我的环境,我需要选择多个动作,因此我将使用torch.distributions.Categorical数据类型从action_probs中多次采样。
但是要减少运行时间,我需要消除从动作样本组中采样的特定元素。
但是我不知道该怎么做。
action_values = self.network(states)
action_probabilities = F.softmax(action_values)
action_probs = torch.distributions.Categorical(action_probabilities)
action = action_probs.sample()
log_probs = action_probs.log_prob(action)
self.action_memory.append(log_probs)
我正在谈论的代码行是:
action = action_probs.sample()
对于从其中取出的每个样本,我都将其删除,这样可以减少运行时间