飞桨CPU/GPU环境安装
一、Windows
- 环境:
- 系统:win11
- python环境: 3.9.18
- CPU:x64
- GPU:GeForce RTX 4070 SUPER 12G D6X
1.CPU安装
1.1 python包安装
bash
# 安装PaddlePaddle
python -m pip install paddlepaddle -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
# 安装PaddleOCR whl包
python -m pip install "paddleocr[all]" # 推荐使用2.0.1+版本
1.2 运行示例
python
from paddleocr import PaddleOCR # 避免 ValueError: signal only works in main thread
ocr = PaddleOCR(use_angle_cls=True, lang="ch", use_gpu=False)
result = ocr.ocr(img_path, cls=True)
print(ocr.ocr(img_path, cls=True))
2.GPU安装
2.1 python包安装
- 需要先提前看一下cuda版本:https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/develop/install/pip/windows-pip.html
bash
# 安装PaddlePaddle(例如cuda 12.6)
python -m pip install paddlepaddle-gpu==3.2.2 -i https://www.paddlepaddle.org.cn/packages/stable/cu126/
# 安装PaddleOCR whl包
python -m pip install "paddleocr[all]" # 推荐使用2.0.1+版本
2.2 运行示例
python
from paddleocr import PaddleOCR # 避免 ValueError: signal only works in main thread
ocr = PaddleOCR(use_angle_cls=True, lang="ch", use_gpu=True)
result = ocr.ocr(img_path, cls=True)
print(ocr.ocr(img_path, cls=True))
扩展
其他操作系统编译paddle
案例-Linux
- 支持环境:
- Linux 版本 (64 bit)
- CentOS 7 (GPU 版本支持 CUDA 11.0 - 12.0)
- Ubuntu 18.04 (GPU 版本支持 CUDA 11.0 - 12.0)
- Ubuntu 20.04 (GPU 版本支持 CUDA 11.0 - 12.0)
- Python 版本 3.8/3.9/3.10/3.11/3.12 (64 bit)
编译CPU paddle
centos
bash
# 1.检查您的计算机和操作系统是否符合我们支持的编译标准
uname -m && cat /etc/*release
# 2.CentOS 环境 更新yum的源,并添加必要的 yum 源
yum update && yum install -y epel-release
# 3.安装必要的工具
yum install -y bzip2 make
# 4.安装cmake,需要3.18以上
wget -q https://cmake.org/files/v3.18/cmake-3.18.0-Linux-x86_64.tar.gz
tar -zxvf cmake-3.18.0-Linux-x86_64.tar.gz
rm cmake-3.18.0-Linux-x86_64.tar.gz
PATH=/home/cmake-3.18.0-Linux-x86_64/bin:$PATH
# 5.安装gcc,需要8.2以上
wget -q --no-proxy https://paddle-ci.gz.bcebos.com/gcc-8.2.0.tar.xz && \
tar -xvf gcc-8.2.0.tar.xz && \
cd gcc-8.2.0 && \
sed -i 's#ftp://gcc.gnu.org/pub/gcc/infrastructure/#https://paddle-ci.gz.bcebos.com/#g' ./contrib/download_prerequisites && \
unset LIBRARY_PATH CPATH C_INCLUDE_PATH PKG_CONFIG_PATH CPLUS_INCLUDE_PATH INCLUDE && \
./contrib/download_prerequisites && \
cd .. && mkdir temp_gcc82 && cd temp_gcc82 && \
../gcc-8.2.0/configure --prefix=/usr/local/gcc-8.2 --enable-threads=posix --disable-checking --disable-multilib && \
make -j8 && make install
# 6.安装python
教程:https://qingsi.blog.csdn.net/article/details/136277681
# 找到 Python lib 的路径,如果是 3.8、3.9、3.10、3.11、3.12,请将python3改成python3.8、python3.9,python3.10,python3.11,python3.12,然后将下面[python-lib-path]替换为找到文件路径
ln -s /usr/local/python3.9.18/bin/python3 /usr/local/bin/python3.9
ln -s /usr/local/python3.9.18/bin/pip3 /usr/local/bin/pip3.9
# 查找python地址
find `dirname $(dirname $(which python3))` -name "libpython3.so"
# 7. 执行编译前请您确认在虚环境中安装有编译依赖表中提到的相关依赖
# 不能使用 yum 安装的用户请参见 patchElF github官方文档
yum install patchelf
# 如果不能安装,使用下面的教程
# 回到根目录,有gcc-8.2.0的目录
cd /root
wget https://github.com/NixOS/patchelf/archive/refs/tags/0.18.0.tar.gz
tar xf 0.18.0.tar.gz
cd patchelf-0.18.0
./bootstrap.sh
./configure
make && make install
# 测试是否安装成功
patchelf --version
# 8.编译paadle
# 8.1 安装cmake
wget https://github.com/Kitware/CMake/releases/download/v3.16.9/cmake-3.16.9.tar.gz
tar -zxvf cmake-3.16.9.tar.gz && cd cmake-3.16.9 && ./bootstrap && make && make install
# 8.2 centos7.9默认git版本是1.8的,需要升级版本,否则clone不了
yum romove git && yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel && yum install gcc perl-ExtUtils-MakeMaker && wget https://www.kernel.org/pub/software/scm/git/git-2.7.3.tar.gz && tar xzf git-2.7.3.tar.gz && cd git-2.7.3 && make prefix=/usr/local/git all && make prefix=/usr/local/git install
# 创建软连接
ln -s /usr/local/git/bin/git /usr/bin/git
# 8.3 下载飞桨源码
git clone https://github.com/PaddlePaddle/Paddle.git && cd Paddle && git checkout develop
# 8.4 创建并进入一个叫 build 的目录下
mkdir build && cd build
# 8.5 编译,如果是GPU,那么 -DWITH_GPU=ON
cmake .. -DPY_VERSION=3.9 -DPYTHON_INCLUDE_DIR='/usr/local/bin/python3.9' -DPYTHON_LIBRARY='/usr/local/python3.9.18/lib/libpython3.so' -DWITH_GPU=OFF
ubuntu
bash
# 1.检查您的计算机和操作系统是否符合我们支持的编译标准
uname -m && cat /etc/*release
# 2.Ubuntu 环境 更新apt的源:
apt update
# 3.安装必要的工具
apt install -y bzip2 make
# 4.安装cmake,需要3.18以上
wget -q https://cmake.org/files/v3.18/cmake-3.18.0-Linux-x86_64.tar.gz
tar -zxvf cmake-3.18.0-Linux-x86_64.tar.gz
rm cmake-3.18.0-Linux-x86_64.tar.gz
PATH=/home/cmake-3.18.0-Linux-x86_64/bin:$PATH
# 5.安装gcc,需要8.2以上
wget -q --no-proxy https://paddle-ci.gz.bcebos.com/gcc-8.2.0.tar.xz && \
tar -xvf gcc-8.2.0.tar.xz && \
cd gcc-8.2.0 && \
sed -i 's#ftp://gcc.gnu.org/pub/gcc/infrastructure/#https://paddle-ci.gz.bcebos.com/#g' ./contrib/download_prerequisites && \
unset LIBRARY_PATH CPATH C_INCLUDE_PATH PKG_CONFIG_PATH CPLUS_INCLUDE_PATH INCLUDE && \
./contrib/download_prerequisites && \
cd .. && mkdir temp_gcc82 && cd temp_gcc82 && \
../gcc-8.2.0/configure --prefix=/usr/local/gcc-8.2 --enable-threads=posix --disable-checking --disable-multilib && \
make -j8 && make install
# 6.安装python
教程:https://qingsi.blog.csdn.net/article/details/136277681
# 找到 Python lib 的路径,如果是 3.8、3.9、3.10、3.11、3.12,请将python3改成python3.8、python3.9,python3.10,python3.11,python3.12,然后将下面[python-lib-path]替换为找到文件路径
ln -s /usr/local/python3.9.18/bin/python3 /usr/local/bin/python3.9
# 查找python地址
find `dirname $(dirname $(which python3))` -name "libpython3.so"
# 7. 执行编译前请您确认在虚环境中安装有编译依赖表中提到的相关依赖
# 不能使用 yum 安装的用户请参见 patchElF github官方文档
yum install patchelf
# 如果不能安装,使用下面的教程
# 回到根目录,有gcc-8.2.0的目录
cd /root
wget https://github.com/NixOS/patchelf/archive/refs/tags/0.18.0.tar.gz
tar xf 0.18.0.tar.gz
cd patchelf-0.18.0
./bootstrap.sh
./configure --prefix="$HOME/.local"
案例-Linux下编译GPU paddle
离线运行飞桨
- 主要问题:需要将飞桨的模型下载到本地进行加载
- 下载的包:
- det_infer_model(检测-推理模型):https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_det_infer.tar
- rec_infer_mdel(识别-推理模型):https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_rec_infer.tar
- cls_infer_model(方向分类器-推理模型):[https://paddleocr.bj.bcebos.com/dygraph_v2.0/ v
- ch/ch_ppocr_mobile_v2.0_cls_infer.tar](https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar)
python
# 需要将对应的模型包,解压到不同的目录,并且在实例化ocr对象的时候,指定对应目录
ocr = PaddleOCR(use_angle_cls=True,
det_model_dir="./paddle_det_model",
rec_model_dir="./paddle_rec_model",
cls_model_dir="./paddle_mobile_cls",
lang="ch", use_gpu=True, show_log=False)