ray.rllib.core.learner.learner.Learner.compute_loss_for_module#

abstract Learner.compute_loss_for_module(*, module_id: str, config: AlgorithmConfig, batch: Dict[str, Any], fwd_out: Dict[str, numpy.array | jnp.ndarray | tf.Tensor | torch.Tensor]) numpy.array | jnp.ndarray | tf.Tensor | torch.Tensor[源代码]#

计算单个模块的损失。

将此视为计算单个代理的损失。对于需要更复杂损失计算的多代理用例,请考虑改为重写 compute_losses 方法。

参数:
  • module_id – 模块的ID。

  • config – 特定于给定 module_id 的 AlgorithmConfig。

  • batch – 这个特定模块的样本批次。

  • fwd_out – 这个特定模块的前向传播输出。

返回:

一个总的损失张量。如果你在提供的 module_id 上有多个优化器,并且希望使用这些不同的优化器分别计算梯度,只需将每个优化器的单独损失项相加并返回总和。此外,为了记录/日志任何单独的损失项,你可以使用 Learner.metrics.log_value( key=..., value=...)Learner.metrics.log_dict() API。更多信息请参见:MetricsLogger