docs: def _histogram_move_keys_by_game(sess, ds, batch_size=8*1024):
      """Given dataset of key names, return histogram of moves/game.
  
      Move counts are written by the game players, so
      this is mostly useful for repair or backfill.
  
      Args:
        sess:  TF session
        ds:  TF dataset containing game move keys.
        batch_size:  performance tuning parameter
      """
      ds = ds.batch(batch_size)
      # Turns 'g_0000001234_m_133' into 'g_0000001234'
      ds = ds.map(lambda x: tf.strings.substr(x, 0, 12))
      iterator = ds.make_initializable_iterator()
      sess.run(iterator.initializer)
      get_next = iterator.get_next()
      h = collections.Counter()
      try:
          while True:
              h.update(sess.run(get_next))
      except tf.errors.OutOfRangeError:
          pass
      # NOTE:  Cannot be truly sure the count is right till the end.
      return h