TensorFlow集成KTFOP
TensorFlow集成KTFOP使能鲲鹏算子加速,本章节提供TensorFlow集成KTFOP的方法。
适配步骤
- 请参见《鲲鹏数学库 开发指南》的“安装配置环境”章节安装2.4.0 GCC版本的鲲鹏数学库,程序运行使用数学库的KML_BLAS模块。
- 请参见《Tensorflow 移植指导(Tensorflow 1.15.5)》的“配置编译环境”章节准备Tensorflow的编译环境。
- 获取TensorFlow v1.0.0版本适配代码。
1
git clone -b v1.0.0 https://gitee.com/openeuler/sra_tensorflow_adapter.git
- 进入“sra_tensorflow_adapter”目录。
1
cd sra_tensorflow_adapter
- 安装编译依赖。
1 2 3 4 5 6
pip3 install wheel pip3 install Cython==0.29.14 pip3 install numpy==1.18.5 --no-build-isolation pip3 install h5py==2.10.0 pip3 install protobuf==3.19.0 pip3 install keras_preprocessing==1.1.2
- 若之前加载过环境变量配置,则可跳过该步骤。根据实际安装路径设置Bazel和Python环境变量。例如:
1 2 3
export PATH=/path/to/bazel/bazel-0.26.1/output:$PATH export PATH=/usr/local/python3.7.5/bin:$PATH export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:$LD_LIBRARY_PATH
- 编译TensorFlow。
1
sh build.sh
Tensorflow whl包路径为:“out/tensorflow-1.15.0-cp37-cp37m-linux_aarch64.whl”
其依赖库的路径如下:- KTFOP库相关so路径:
“/usr/local/sra_inference/lib/neon/libktfop.so”
“/usr/local/sra_inference/lib/sve/libktfop.so”
- 数学库KML 2.4版本so路径默认为:“/usr/local/kml/lib/kblas/locking/libkblas.so”
- 数学库KML 2.5版本so路径默认为:“/usr/local/kml/lib/neon/kblas/locking/libkblas.so”
用户可根据需要,设置KBLAS_LIB_DIR环境变量,自行选择KML_BLAS库编译。例如,使用数学库KML 2.5版本使能NEON特性的BLAS库:
1
export KBLAS_LIB_DIR=/usr/local/kml/lib/neon/kblas/locking
- KTFOP库相关so路径:
- 安装TensorFlow pip软件包。
适配后验证
TensorFlow 1.15.0编译安装完成后使用自带样例进行基本功能的验证。本文使用自带样例中的图像识别样例来验证TensorFlow的基本功能。
- 版本验证,在TensorFlow非源码目录下执行。
1
python3 -c "import tensorflow as tf; print(tf.__version__)"
回显信息显示,版本号为1.15.0。
版本验证命令执行后若提示“ImportError: libkblas_armv8ss_v2.5.0.so: cannot open shared object file: No such file or directory”,请执行以下命令后重新进行版本验证。
export LD_LIBRARY_PATH=/usr/local/kml/lib/neon/kblas/locking:$LD_LIBRARY_PATH
- 基本功能验证。以TensorFlow自带样例图像识别为例。
- 进入sra_tensorflow_adapter源码编译规划路径。
1
cd /path/to/sra_tensorflow_adapter
- 获取模型数据和验证数据。
1 2
curl -L "https://storage.googleapis.com/download.tensorflow.org/models/inception_v3_2016_08_28_frozen.pb.tar.gz" | tar -C tensorflow/examples/label_image/data -xz wget -P tensorflow/examples/label_image/data/ https://www.tensorflow.org/images/cropped_panda.jpg --no-check-certificate
- 在非编译目录执行测试用例。
1
python3 tensorflow/examples/label_image/label_image.py --image=tensorflow/examples/label_image/data/cropped_panda.jpg
回显信息显示,将图片“tensorflow/examples/label_image/data/cropped_panda.jpg”识别为giant panda类别的概率最大。
- 进入sra_tensorflow_adapter源码编译规划路径。
父主题: SRA_Inference使用说明