diff --git a/official/recommend/tbnet/export.py b/official/recommend/tbnet/export.py
index aee27798c225d88f1e2909e71e30e42dc1552ea2..dd6275cfe33d2c8a751135b4a675320868a63c26 100644
--- a/official/recommend/tbnet/export.py
+++ b/official/recommend/tbnet/export.py
@@ -30,7 +30,7 @@ def get_args():
     parser.add_argument(
         '--config_path',
         type=str,
-        required=False,
+        required=True,
         default='',
         help="json file for dataset"
     )
diff --git a/research/nlp/rotate/README_CN.md b/research/nlp/rotate/README_CN.md
index dc5e24da7b4d6ec5615e44bf82860e483972069f..c37c0e5e0d300ecb3b4236cf1b62589e52aa5fc2 100644
--- a/research/nlp/rotate/README_CN.md
+++ b/research/nlp/rotate/README_CN.md
@@ -228,7 +228,7 @@ bash scripts/run_eval.sh [DEVICE_ID] [DEVICE_TARGET] [EVAL_CHECKPOINT] [EVAL_LOG
   在运行以下命令之前,请检查用于评估的检查点路径。
 
   ```bash
-  bash scripts/run_eval.sh 0 Ascend Data/wn18rr/ checkpoints/rotate-standalone-ascend/rotate.ckpt eval-standalone-ascend.log
+  bash scripts/run_eval.sh 0 Ascend checkpoints/rotate-standalone-ascend/rotate.ckpt eval-standalone-ascend.log
   ```
 
   上述python命令将在后台运行,您可以通过ms_log/eval-standalone-ascend文件查看类似如下的结果:
@@ -342,4 +342,4 @@ python export.py --eval_checkpoint [EVAL_CHECKPOINT] --file_format [FILE_FORMAT]
 
 # [ModelZoo主页](#目录)
 
-请浏览官网[主页](https://gitee.com/mindspore/models)。  
\ No newline at end of file
+请浏览官网[主页](https://gitee.com/mindspore/models)。  
diff --git a/research/nlp/rotate/eval.py b/research/nlp/rotate/eval.py
index b658931f38e80ad18b554165635d9e53c8ec15b1..3e6a2f2daac81c92b9a49185156237b0ecb4e526 100644
--- a/research/nlp/rotate/eval.py
+++ b/research/nlp/rotate/eval.py
@@ -42,20 +42,20 @@ class KGEModel(nn.Cell):
     def __init__(self, network, mode='head-mode'):
         super(KGEModel, self).__init__()
         self.network = network
+        self.construct_head = self.network.construct_head
+        self.construct_tail = self.network.construct_tail
         self.mode = mode
         self.sort = P.Sort(axis=1, descending=True)
 
     def construct(self, positive_sample, negative_sample, filter_bias):
         """ Sort candidate entity id and positive sample entity id. """
         if self.mode == 'head-mode':
-            score = self.network.construct_head((positive_sample, negative_sample))
-            positive_arg = positive_sample[:, 0]
+            score = self.construct_head((positive_sample, negative_sample))
         else:
-            score = self.network.construct_tail((positive_sample, negative_sample))
-            positive_arg = positive_sample[:, 2]
+            score = self.construct_tail((positive_sample, negative_sample))
         score += filter_bias
         _, argsort = self.sort(score)
-        return argsort, positive_arg
+        return argsort
 
 
 class EvalKGEMetric(nn.Cell):
@@ -77,27 +77,34 @@ class EvalKGEMetric(nn.Cell):
 
     def construct(self, positive_sample, negative_sample, filter_bias):
         """ Calculate metrics. """
-        batch_size = positive_sample.shape[0]
-        argsort, positive_arg = self.kgemodel(positive_sample, negative_sample, filter_bias)
-        argsort, positive_arg = argsort.asnumpy(), positive_arg.asnumpy()
-        log = []
-        for i in range(batch_size):
-            ranking = np.where(argsort[i, :] == positive_arg[i])[0][0]
-            ranking = 1 + ranking
-            log.append({
-                'MRR': 1.0 / ranking,
-                'MR': ranking,
-                'HITS@1': 1.0 if ranking <= 1 else 0.0,
-                'HITS@3': 1.0 if ranking <= 3 else 0.0,
-                'HITS@10': 1.0 if ranking <= 10 else 0.0,
-            })
-        return log
+        argsort = self.kgemodel(positive_sample, negative_sample, filter_bias)
+        if self.mode == 'head-mode':
+            positive_arg = positive_sample[:, 0]
+        else:
+            positive_arg = positive_sample[:, 2]
+        return argsort, positive_arg
 
 
 def modelarts_process():
     pass
 
 
+def generate_log(argsort, positive_arg, batch_size):
+    argsort, positive_arg = argsort.asnumpy(), positive_arg.asnumpy()
+    log = []
+    for i in range(batch_size):
+        ranking = np.where(argsort[i, :] == positive_arg[i])[0][0]
+        ranking = 1 + ranking
+        log.append({
+            'MRR': 1.0 / ranking,
+            'MR': ranking,
+            'HITS@1': 1.0 if ranking <= 1 else 0.0,
+            'HITS@3': 1.0 if ranking <= 3 else 0.0,
+            'HITS@10': 1.0 if ranking <= 10 else 0.0,
+        })
+    return log
+
+
 @moxing_wrapper(pre_process=modelarts_process)
 def eval_kge():
     """ Link Prediction Task for Knowledge Graph Embedding Model """
@@ -127,10 +134,16 @@ def eval_kge():
     eval_model_tail = EvalKGEMetric(network=eval_net, mode='tail-mode')
 
     for test_data in test_dataloader_head.create_dict_iterator():
-        log_head = eval_model_head.construct(test_data["positive"], test_data["negative"], test_data["filter_bias"])
+        argsort, positive_arg = eval_model_head.construct(test_data["positive"], test_data["negative"],
+                                                          test_data["filter_bias"])
+        batch_size = test_data["positive"].shape[0]
+        log_head = generate_log(argsort, positive_arg, batch_size)
         logs += log_head
     for test_data in test_dataloader_tail.create_dict_iterator():
-        log_tail = eval_model_tail.construct(test_data["positive"], test_data["negative"], test_data["filter_bias"])
+        argsort, positive_arg = eval_model_tail.construct(test_data["positive"], test_data["negative"],
+                                                          test_data["filter_bias"])
+        batch_size = test_data["positive"].shape[0]
+        log_tail = generate_log(argsort, positive_arg, batch_size)
         logs += log_tail
 
     metrics = {}