docstr: Intializer for the sum cross-entropy loss. For a single
  tensor, this is equivalent to the cross-entropy loss. For a
  list of tensors, this computes the sum of the cross-entropy
  losses for each tensor in the list against the target.
  
  Config params:
      reduction: specifies reduction to apply to the output, optional
      normalize_output: Whether to L2 normalize the outputs
      world_size: total number of gpus in training. automatically inferred by vissl
code: def __init__(self, loss_config: AttrDict):
      """
      Intializer for the sum cross-entropy loss. For a single
      tensor, this is equivalent to the cross-entropy loss. For a
      list of tensors, this computes the sum of the cross-entropy
      losses for each tensor in the list against the target.
  
      Config params:
          reduction: specifies reduction to apply to the output, optional
          normalize_output: Whether to L2 normalize the outputs
          world_size: total number of gpus in training. automatically inferred by vissl
      """
      super(BCELogitsMultipleOutputSingleTargetLoss, self).__init__()
      self.loss_config = loss_config
      self._losses = torch.nn.modules.ModuleList([])
      self._reduction = loss_config.get("reduction", "none")
      self._normalize_output = loss_config.get(
          "normalize_output", False
      )
      self._world_size = loss_config["world_size"]
  
file_path: vissl/vissl/losses/bce_logits_multiple_output_single_target.py
imports: from typing import List, Union
  import torch
  from classy_vision.generic.util import is_on_gpu
  from classy_vision.losses import ClassyLoss, register_loss
  from torch import nn
  from vissl.config import AttrDict
label_desc: Use image node_id 1 to create a new BCELogitsMultipleOutputSingleTargetLoss object from inherited base classes: ClassyLoss with example: obj = BCELogitsMultipleOutputSingleTargetLoss(loss_config)