---
title: TensorFlow集成KTFOP
description: "TensorFlow集成KTFOP使能鲲鹏算子加速，本章节提供TensorFlow集成KTFOP的方法。"
url: https://www.hikunpeng.com/document/detail/zh/boostsra/srainference/SRA_Inference/kunpengsra_inference_16_0007.html
sourcePath: /source/zh/boostsra/srainference/SRA_Inference/kunpengsra_inference_16_0007.html
indexId: 5763680481eab2cd8ab3f9ad0b3dd271f0f0355f78b9f4f29f42ed8f1069bc4080
---
# TensorFlow集成KTFOP

TensorFlow集成KTFOP使能鲲鹏算子加速，本章节提供TensorFlow集成KTFOP的方法。

#### 适配步骤

1. 程序运行会使用数学库的KML_BLAS模块，因此请参见《鲲鹏数学库 开发指南(https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0011.html)》的“安装配置环境”章节安装GCC版本的鲲鹏数学库。
2. 请参见《TensorFlow 移植指导（TensorFlow 1.15.5）(https://www.hikunpeng.com/document/detail/zh/SRA/ecosystemEnable/TensorFlow/kunpengtensorflow_02_0019.html)》的“配置编译环境”章节准备TensorFlow的编译环境。
3. 获取TensorFlow v1.0.0版本适配代码。
  1 git clone -b v1.0.0 https://atomgit.com/openeuler/sra_tensorflow_adapter.git

4. 进入“sra_tensorflow_adapter”目录。
  1 cd sra_tensorflow_adapter

5. 安装编译依赖。
  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

6. 若之前加载过环境变量配置，则可跳过该步骤。否则根据实际安装路径设置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

7. 编译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.0版本so路径默认为：“/usr/local/kml/lib/kblas/locking/libkblas.so”
  - 数学库KML 2.5.0版本so路径默认为：“/usr/local/kml/lib/neon/kblas/locking/libkblas.so”
    用户可根据需要，设置KBLAS_LIB_DIR环境变量，自行选择KML_BLAS库编译。例如，使用数学库KML 2.5.0版本使能NEON特性的BLAS库： 1 export KBLAS_LIB_DIR=/usr/local/kml/lib/neon/kblas/locking


8. 安装TensorFlow pip软件包。
  1 pip3 install out/tensorflow-1.15.0-cp37-cp37m-linux_aarch64.whl

  安装TensorFlow过程中遇到报错请参见《TensorFlow 移植指导(https://www.hikunpeng.com/document/detail/zh/SRA/ecosystemEnable/TensorFlow/kunpengtensorflow_02_0019.html)》的“故障排除”章节解决。


#### 适配后验证

TensorFlow 1.15.0编译安装完成后使用自带样例进行基本功能的验证。本文使用自带样例中的图像识别样例来验证TensorFlow的基本功能。

1. 版本验证，在非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

2. 基本功能验证。
  以TensorFlow自带样例图像识别为例。
  a. 进入sra_tensorflow_adapter源码编译规划路径。

```
cd
/path/to/
sra_tensorflow_adapter
```


  b. 获取模型数据和验证数据。
    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

  c. 在非编译目录执行测试用例。
    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类别的概率最大，则功能验证成功。

    更多测试信息请参见：GitHub网站(https://github.com/tensorflow/tensorflow/blob/v1.15.0/tensorflow/examples/label_image/README.md)。
