def METHOD_NAME(self, network, K=10, metric=None, save_path=""):
    """Save and return Top K checkpoint address and accuracy."""
    last_file = self._ckpoint_filelist[-1] if self._ckpoint_filelist else None
    if isinstance(metric, ms.Tensor):
        metric = metric.asnumpy()
    if self.ckpoint_num < K or np.greater(metric, last_file[1]):
        if self.ckpoint_num >= K:
            delete = K - 1
            if delete < 0 or self.ckpoint_num <= delete:
                return
            to_delete = self._ckpoint_filelist[delete:]
            for d in to_delete:
                self.remove_ckpoint_file(d[0])
            self._ckpoint_filelist = self._ckpoint_filelist[:delete]
        ms.save_checkpoint(network, save_path, async_save=True)
        self._ckpoint_filelist.append((save_path, float(metric)))
        self._ckpoint_filelist = sorted(self._ckpoint_filelist, key=lambda x: x[1], reverse=True)