message: For ready_op, we have to use concat instead of group to gather results from towers.
diff: @@ -1196,10 +1196,16 @@ class Estimator(object):
  else:
  init_op = None
  + def _unwrap_and_concat(value):
  + value = nest.flatten(self._distribution.unwrap(value))
  + if len(value) != 1:
  + return array_ops.concat(value)
  + return value[0]
  +
  ready_op = self._distribution.call_for_each_tower(
  create_per_tower_ready_op, grouped_estimator_spec.scaffold)
  if ready_op is not None:
  - ready_op = self._distribution.group(ready_op)
  + ready_op = _unwrap_and_concat(ready_op)
  else:
  ready_op = None
  @@ -1207,8 +1213,7 @@ class Estimator(object):
  create_per_tower_ready_for_local_init_op,
  grouped_estimator_spec.scaffold)
  if ready_for_local_init_op is not None:
  - ready_for_local_init_op = self._distribution.group(
  - ready_for_local_init_op)
  + ready_for_local_init_op = _unwrap_and_concat(ready_for_local_init_op)
  else:
  ready_for_local_init_op = None
  