class_docstr: SoftmaxCrossEntrolyLoss with Teacher model prediction
  
  Parameters
  ----------
  temperature : float, default 1
      The temperature parameter to soften teacher prediction.
  hard_weight : float, default 0.5
      The weight for loss on the one-hot label.
  sparse_label : bool, default True
      Whether the one-hot label is sparse.
class_docstr_tok: ["SoftmaxCrossEntrolyLoss","with","Teacher","model","prediction","Parameters","--","--","--","--","--","temperature",":","float",",","default","1","The","temperature","parameter","to","soften","teacher","prediction",".","hard_weight",":","float",",","default","0.5","The","weight","for","loss","on","the","one-hot","label",".","sparse_label",":","bool",",","default","True","Whether","the","one-hot","label","is","sparse","."]
docstr: Compute loss
docstr_tok: ["Compute","loss"]
code: def hybrid_forward(self, F, output, label, soft_target):
      # pylint: disable=unused-argument
      """Compute loss"""
      if self._hard_weight == 0:
          return (self._temperature**2) * self.soft_loss(
              output / self._temperature, soft_target
          )
      elif self._hard_weight == 1:
          return self.hard_loss(output, label)
      else:
          soft_loss = (self._temperature**2) * self.soft_loss(
              output / self._temperature, soft_target
          )
          hard_loss = self.hard_loss(output, label)
          return (
              1 - self._hard_weight
          ) * soft_loss + self._hard_weight * hard_loss
  
imports: from __future__ import absolute_import
  from mxnet import gluon
  from mxnet import nd
  from mxnet.gluon.loss import Loss, _apply_weighting, _reshape_like
label_desc: Use image node_id 2 for calling the DistillationSoftmaxCrossEntropyLoss obj's underlying member method code with example usage: obj.hybrid_forward(F, output, label, soft_target) and returns: unknown, self, unknown