diff --git a/mmdet/core/evaluation/eval_hooks.py b/mmdet/core/evaluation/eval_hooks.py
index bec25eff6d72bed0d1457c5458c31aa101d54f4e..1402f7f3c73152eae7b5c1129d2c298d36b2ad45 100644
--- a/mmdet/core/evaluation/eval_hooks.py
+++ b/mmdet/core/evaluation/eval_hooks.py
@@ -74,7 +74,7 @@ class DistEvalHook(Hook):
             # compute output
             with torch.no_grad():
                 result = runner.model(
-                    **data_gpu, return_loss=False, rescale=True)
+                    return_loss=False, rescale=True, **data_gpu)
             results[idx] = result
 
             batch_size = runner.world_size
diff --git a/mmdet/models/detectors/base.py b/mmdet/models/detectors/base.py
index d1b0fce1283b012072e7fb1f864313135eeac940..e617b0e306df9364ce0b736c03acb0136b4c2056 100644
--- a/mmdet/models/detectors/base.py
+++ b/mmdet/models/detectors/base.py
@@ -34,11 +34,9 @@ class BaseDetector(nn.Module):
         pass
 
     def extract_feats(self, imgs):
-        if isinstance(imgs, torch.Tensor):
-            return self.extract_feat(imgs)
-        elif isinstance(imgs, list):
-            for img in imgs:
-                yield self.extract_feat(img)
+        assert isinstance(imgs, list)
+        for img in imgs:
+            yield self.extract_feat(img)
 
     @abstractmethod
     def forward_train(self, imgs, img_metas, **kwargs):
diff --git a/tools/test.py b/tools/test.py
index 2552e7af78779104c853c880b94d40266dbb7d54..e1552e58209458b65e69c740619d789b1b8e4cb2 100644
--- a/tools/test.py
+++ b/tools/test.py
@@ -17,7 +17,7 @@ def single_test(model, data_loader, show=False):
     prog_bar = mmcv.ProgressBar(len(data_loader.dataset))
     for i, data in enumerate(data_loader):
         with torch.no_grad():
-            result = model(**data, return_loss=False, rescale=not show)
+            result = model(return_loss=False, rescale=not show, **data)
         results.append(result)
 
         if show: