x86架构下pillow库升级

调优思路

更新高性能版本的依赖库,升级高性能处理库pillow。注意此操作仅支持x86架构。

优化方法

  1. 安装高性能pillow库相关依赖。

    • Ubuntu
      apt-get install libtiff5-dev libjpeg8-dev libopenjp2-7-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python3-tk libharfbuzz-dev libfribidi-dev libxcb1-dev
    • CentOS/EulerOS
      yum install libtiff-devel libjpeg-devel openjpeg2-devel zlib-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel harfbuzz-devel fribidi-devel libraqm-devel libimagequant-devel libxcb-devel

  2. 执行命令卸载原生pillow库。

      pip3.7 uninstall -y pillow

  3. 安装SSE4版本pillow-simd。(使用root用户安装,执行如下命令,若使用非root用户安装,需在命令结尾加上--user。)

      pip3.7 install pillow-simd
    如果CPU支持AVX2指令集,可安装AVX2版本pillow-simd。
    CC="cc -mavx2"  pip3.7 install -U --force-reinstall pillow-simd

  4. 安装torchvision。安装命令如下:

    pip3.7 install torchvision==0.6.0 --no-deps

  5. 修改torchvision代码解决pillow-simd缺少PILLOW_VERSION问题。

    将/usr/local/python3.x.x/lib/python3.x/site-packages/torchvision/transforms/functional.py第5行代码修改如下:
    try:
        from PIL import Image, ImageOps, ImageEnhance,PILLOW_VERSION
    except:
        from PIL import Image, ImageOps, ImageEnhance
        PILLOW_VERSION="7.0.0"