背景
公司的虚拟机CPU居然不支持avx, 默认的paddlepaddle的cpu版本又需要有支持avx才行,还想用PaddleOCR有啥办法呢?
是否支持avx
lscpu | grep avx
支持avx的话,会显示相关信息
如果不支持的话,python运行时导入paddle会报错
怎么办呢
方案一
找公司it,看看虚拟机为什么不支持avx,能否通过设置支持avx
参考 VMware虚拟机cpu不支持avx指令集处理_处理器不支持xsave-CSDN博客
关闭虚拟机,按照参考资料设置后,重启服务器,还是没能支持avx,可能哪里设置有问题,自己的电脑使用vmware如上设置是可以的,如果此方案能成功, 那么就比较完美了.
方案二
因为方案一没能生效,聪明的朋友都会想到找个低版本支持无avx的paddlepaddle安装咯
是的,我们就是要这么做的.
参考 正确安装PaddleOCR的方法_pip install paddleocr-CSDN博客
参考资料的运行环境是window系统,我们是linux系统,在此记录一下我的安装步骤
1. 安装paddlepaddle
卸载已安装的paddlepaddle(2.6.1)
pip uninstall paddlepaddle
下载noavx版本的paddlepaddle(2.2.2)
python -m pip download paddlepaddle==2.2.2 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/noavx/stable.html --no-index --no-deps
安装paddlepaddle
pip install paddlepaddle-2.2.2-cp38-cp38-linux_x86_64.whl
验证是否可用
哦豁,报错了,不过也给了解决方案: 安装3.20.x版本的protobuf
安装protobuf
pip install protobuf==3.20.1
再验证一下是否可用
安装成功,不过import paddle导入时间有点长,明显比avx下的长
2. 安装paddleocr
安装
pip install paddleocr==2.8.1
验证报错
libGL.so.1: cannot open shared object file: No such file or directory
参考 libGL.so.1: cannot open shared object file: No such file or directory-CSDN博客
安装mesa-libGL
yum install mesa-libGL
验证可用
结语
最终安装的版本如下:
python 3.8
paddlepaddle 2.2.0 (noavx)
paddleocr 2.8.1
能用是能用了,可是速度慢了很多,唉
还有救
it发来贺电,可以设置虚拟机支持avx了,方案一的配置cpu模式用模式的"自动"模式就可以了
修改集群模式如下,就可以了
喜大普奔