diff --git a/MANIFEST.in b/MANIFEST.in
index 97372da00..1bf8c5ea0 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -2,7 +2,6 @@ include LICENSE.txt
 include README.md
 include docs/en/whl_en.md
 recursive-include deploy/python *.py
-recursive-include deploy/configs *.yaml
-recursive-include deploy/utils get_image_list.py config.py logger.py predictor.py
-
-recursive-include ppcls/ *.py *.txt
\ No newline at end of file
+recursive-include deploy/utils *.py
+recursive-include ppcls/ *.py *.txt
+recursive-include deploy/configs *.yaml
\ No newline at end of file
diff --git a/deploy/python/predict_cls.py b/deploy/python/predict_cls.py
index 49bf62fa3..e4ff25415 100644
--- a/deploy/python/predict_cls.py
+++ b/deploy/python/predict_cls.py
@@ -11,21 +11,15 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-import os
-import sys
-
-__dir__ = os.path.dirname(os.path.abspath(__file__))
-sys.path.append(os.path.abspath(os.path.join(__dir__, '../')))
 
 import cv2
 import numpy as np
 
-from utils import logger
-from utils import config
-from utils.predictor import Predictor
-from utils.get_image_list import get_image_list
-from python.preprocess import create_operators
-from python.postprocess import build_postprocess
+from paddleclas.deploy.utils import logger, config
+from paddleclas.deploy.utils.predictor import Predictor
+from paddleclas.deploy.utils.get_image_list import get_image_list
+from paddleclas.deploy.python.preprocess import create_operators
+from paddleclas.deploy.python.postprocess import build_postprocess
 
 
 class ClsPredictor(Predictor):
diff --git a/deploy/python/preprocess.py b/deploy/python/preprocess.py
index 695270833..89fe541ee 100644
--- a/deploy/python/preprocess.py
+++ b/deploy/python/preprocess.py
@@ -27,9 +27,8 @@ import cv2
 import numpy as np
 import importlib
 from PIL import Image
-from paddle.vision.transforms import ToTensor, Normalize
 
-from python.det_preprocess import DetNormalizeImage, DetPadStride, DetPermute, DetResize
+from .det_preprocess import DetNormalizeImage, DetPadStride, DetPermute, DetResize
 
 
 def create_operators(params):
@@ -54,14 +53,13 @@ def create_operators(params):
 
 
 class UnifiedResize(object):
-    def __init__(self, interpolation=None, backend="cv2", return_numpy=True):
+    def __init__(self, interpolation=None, backend="cv2"):
         _cv2_interp_from_str = {
             'nearest': cv2.INTER_NEAREST,
             'bilinear': cv2.INTER_LINEAR,
             'area': cv2.INTER_AREA,
             'bicubic': cv2.INTER_CUBIC,
-            'lanczos': cv2.INTER_LANCZOS4,
-            'random': (cv2.INTER_LINEAR, cv2.INTER_CUBIC)
+            'lanczos': cv2.INTER_LANCZOS4
         }
         _pil_interp_from_str = {
             'nearest': Image.NEAREST,
@@ -69,26 +67,13 @@ class UnifiedResize(object):
             'bicubic': Image.BICUBIC,
             'box': Image.BOX,
             'lanczos': Image.LANCZOS,
-            'hamming': Image.HAMMING,
-            'random': (Image.BILINEAR, Image.BICUBIC)
+            'hamming': Image.HAMMING
         }
 
-        def _cv2_resize(src, size, resample):
-            if isinstance(resample, tuple):
-                resample = random.choice(resample)
-            return cv2.resize(src, size, interpolation=resample)
-
-        def _pil_resize(src, size, resample, return_numpy=True):
-            if isinstance(resample, tuple):
-                resample = random.choice(resample)
-            if isinstance(src, np.ndarray):
-                pil_img = Image.fromarray(src)
-            else:
-                pil_img = src
+        def _pil_resize(src, size, resample):
+            pil_img = Image.fromarray(src)
             pil_img = pil_img.resize(size, resample)
-            if return_numpy:
-                return np.asarray(pil_img)
-            return pil_img
+            return np.asarray(pil_img)
 
         if backend.lower() == "cv2":
             if isinstance(interpolation, str):
@@ -96,12 +81,11 @@ class UnifiedResize(object):
             # compatible with opencv < version 4.4.0
             elif interpolation is None:
                 interpolation = cv2.INTER_LINEAR
-            self.resize_func = partial(_cv2_resize, resample=interpolation)
+            self.resize_func = partial(cv2.resize, interpolation=interpolation)
         elif backend.lower() == "pil":
             if isinstance(interpolation, str):
                 interpolation = _pil_interp_from_str[interpolation.lower()]
-            self.resize_func = partial(
-                _pil_resize, resample=interpolation, return_numpy=return_numpy)
+            self.resize_func = partial(_pil_resize, resample=interpolation)
         else:
             logger.warning(
                 f"The backend of Resize only support \"cv2\" or \"PIL\". \"f{backend}\" is unavailable. Use \"cv2\" instead."
@@ -109,8 +93,6 @@ class UnifiedResize(object):
             self.resize_func = cv2.resize
 
     def __call__(self, src, size):
-        if isinstance(size, list):
-            size = tuple(size)
         return self.resize_func(src, size)
 
 
@@ -155,8 +137,7 @@ class ResizeImage(object):
                  size=None,
                  resize_short=None,
                  interpolation=None,
-                 backend="cv2",
-                 return_numpy=True):
+                 backend="cv2"):
         if resize_short is not None and resize_short > 0:
             self.resize_short = resize_short
             self.w = None
@@ -170,18 +151,10 @@ class ResizeImage(object):
                 'both 'size' and 'resize_short' are None")
 
         self._resize_func = UnifiedResize(
-            interpolation=interpolation,
-            backend=backend,
-            return_numpy=return_numpy)
+            interpolation=interpolation, backend=backend)
 
     def __call__(self, img):
-        if isinstance(img, np.ndarray):
-            # numpy input
-            img_h, img_w = img.shape[:2]
-        else:
-            # PIL image input
-            img_w, img_h = img.size
-
+        img_h, img_w = img.shape[:2]
         if self.resize_short is not None:
             percent = float(self.resize_short) / min(img_w, img_h)
             w = int(round(img_w * percent))
diff --git a/deploy/utils/config.py b/deploy/utils/config.py
index 7e7ffb79c..ba2888c11 100644
--- a/deploy/utils/config.py
+++ b/deploy/utils/config.py
@@ -17,7 +17,7 @@ import copy
 import argparse
 import yaml
 
-from utils import logger
+from . import logger
 
 __all__ = ['get_config']
 
diff --git a/paddleclas.py b/paddleclas.py
index 3b45ca120..8d5e93a8b 100644
--- a/paddleclas.py
+++ b/paddleclas.py
@@ -16,7 +16,6 @@ import os
 import sys
 __dir__ = os.path.dirname(__file__)
 sys.path.append(os.path.join(__dir__, ""))
-sys.path.append(os.path.join(__dir__, "deploy"))
 
 from typing import Union, Generator
 import argparse
@@ -33,12 +32,16 @@ from tqdm import tqdm
 from prettytable import PrettyTable
 import paddle
 
+import ppcls.arch.backbone as backbone
+from ppcls.utils import logger
+
 from deploy.python.predict_cls import ClsPredictor
 from deploy.utils.get_image_list import get_image_list
 from deploy.utils import config
 
-import ppcls.arch.backbone as backbone
-from ppcls.utils import logger
+import deploy
+import ppcls
+#  'deploy.python', 'deploy.utils', 'ppcls.arch', 'ppcls.utils'
 
 # for building model with loading pretrained weights from backbone
 logger.init_logger()
diff --git a/setup.py b/setup.py
index c935136f4..3aaea708c 100644
--- a/setup.py
+++ b/setup.py
@@ -33,7 +33,7 @@ setup(
     package_dir={'paddleclas': ''},
     include_package_data=True,
     entry_points={
-        "console_scripts": ["paddleclas= paddleclas.paddleclas:main"]
+        "console_scripts": ["paddleclas=paddleclas.paddleclas:main"]
     },
     version='0.0.0',
     install_requires=requirements,