瀏覽代碼

refine multi-card evaluation logistics, elaborate return value of evaluate only on card 0

will-jl944 4 年之前
父節點
當前提交
2275e8ea59
共有 2 個文件被更改,包括 2 次插入4 次删除
  1. 2 1
      dygraph/paddlex/cv/models/base.py
  2. 0 3
      dygraph/paddlex/cv/models/detector.py

+ 2 - 1
dygraph/paddlex/cv/models/base.py

@@ -333,12 +333,13 @@ class BaseModel:
             eval_epoch_tic = time.time()
             if (i + 1) % save_interval_epochs == 0 or i == num_epochs - 1:
                 if eval_dataset is not None and eval_dataset.num_samples > 0:
-                    self.eval_metrics, self.eval_details = self.evaluate(
+                    eval_result = self.evaluate(
                         eval_dataset,
                         batch_size=eval_batch_size,
                         return_details=True)
                     # 保存最优模型
                     if local_rank == 0:
+                        self.eval_metrics, self.eval_details = eval_result
                         logging.info('[EVAL] Finished, Epoch={}, {} .'.format(
                             i + 1, dict2str(self.eval_metrics)))
                         best_accuracy_key = list(self.eval_metrics.keys())[0]

+ 0 - 3
dygraph/paddlex/cv/models/detector.py

@@ -419,9 +419,6 @@ class BaseDetector(BaseModel):
             if return_details:
                 return scores, self.eval_details
             return scores
-        if return_details:
-            return None, None
-        return None
 
     def predict(self, img_file, transforms=None):
         """