message: Return PerReplica from experimental_run_steps_on_iterator for non reduced
  values with TPUStrategy
  Hi, if you're still using experimental_run_steps_on_iterator, please move to
  experimental_run_v2 : )
  The code is covered by minimize_loss_test, which is currently disabled.
diff: @@ -936,12 +936,11 @@ def _set_last_step_outputs(ctx, last_step_tensor_outputs):
  for name, reduce_op in ctx._last_step_outputs_reduce_ops.items(): # pylint: disable=protected-access
  output = last_step_tensor_outputs_dict[name]
  - # For outputs that have already been reduced, take the first value
  - # from the list as each value should be the same. Else return the full
  - # list of values.
  - # TODO(josh11b): If reduce_op is NONE, we should return a PerReplica
  - # value.
  - if reduce_op is not None:
  + # For outputs that aren't reduced, return a PerReplica of all values. Else
  + # take the first value from the list as each value should be the same.
  + if reduce_op is None:
  + last_step_tensor_outputs_dict[name] = values.PerReplica(output)
  + else:
  # TODO(priyag): Should this return the element or a list with 1 element
  last_step_tensor_outputs_dict[name] = output[0]
  ctx._set_last_step_outputs(last_step_tensor_outputs_dict) # pylint: disable=protected-access
  