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
。