(generator, id_to_mask=None)
Add weights to inputs without weights and masks by id if requested.

  The generator stream is augmented in the following way:

  - If the stream consists of pairs `(inputs, targets)`, a loss mask is added
    that is creates as a tensor of ones of the same shape as targets.
  - If `id_to_mask` is not `None`, and the stream (after the previous point)
    has triples `(inputs, targets, weights)`, the weights are multiplied by a
    0/1 mask that is 0 iff targets is equal to `id_to_mask` (1 otherwise).

  Args:
    generator: Stream of tuples.
    id_to_mask: If not None, int-valued id that represents padding, as opposed
        to true target IDs.

  Yields:
    Examples from the augmented stream.
Add weights to inputs without weights and masks by id if requested.
Add weights to inputs without weights and masks by id if requested .
def add_loss_weights(generator, id_to_mask=None):
  """Add weights to inputs without weights and masks by id if requested.

  The generator stream is augmented in the following way:

  - If the stream consists of pairs `(inputs, targets)`, a loss mask is added
    that is creates as a tensor of ones of the same shape as targets.
  - If `id_to_mask` is not `None`, and the stream (after the previous point)
    has triples `(inputs, targets, weights)`, the weights are multiplied by a
    0/1 mask that is 0 iff targets is equal to `id_to_mask` (1 otherwise).

  Args:
    generator: Stream of tuples.
    id_to_mask: If not None, int-valued id that represents padding, as opposed
        to true target IDs.

  Yields:
    Examples from the augmented stream.
  """
  for example in generator:
    if len(example) > 3 or len(example) < 2:
      assert id_to_mask is None, 'Cannot automatically mask this stream.'
      yield example
    else:
      if len(example) == 2:
        weights = np.ones_like(example[1]).astype(np.float32)
      else:
        weights = example[2].astype(np.float32)
      mask = 1.0 - np.equal(example[1], id_to_mask).astype(np.float32)
      weights *= mask
      output = (example[0], example[1], weights)
      yield output
def add_loss_weights ( generator , id_to_mask = None ) : for example in generator : if len ( example ) > 3 or len ( example ) < 2 : assert id_to_mask is None , 'Cannot automatically mask this stream.' yield example else : if len ( example ) == 2 : weights = np . ones_like ( example [ 1 ] ) . astype ( np . float32 ) else : weights = example [ 2 ] . astype ( np . float32 ) mask = 1.0 - np . equal ( example [ 1 ] , id_to_mask ) . astype ( np . float32 ) weights *= mask output = ( example [ 0 ] , example [ 1 ] , weights ) yield output