windows下编译tflite-runtime

windows下编译tflite-runtime

背景

需要用到keras训练的模型,但完整的tf包,在windows下大约有1G,使用pyinstaller打包后,生成的exe大概450mb,太大,查官方资料发现有tfruntime,据说用于嵌入式,想来体积较小。但win环境下没有编译好的whl包

环境配置

  1. 安装msys2: https://www.msys2.org/,完成后安装必要的包 , 注意第一行的命令执行完成后,终端会关闭,重新打开一个终端,再粘贴执行第二行命令即可。

    pacman -Syu
    pacman -S git patch unzip rsync
    
  2. 安装cmake:https://cmake.org/download/, 注意添加到环境变量PATH

  3. 安装VS2022的生成工具或VS2022,注意安装c++的生成工具,安装VS2022生成工具,已经安装VS2022则可以跳过

  4. 安装bazelisk,choco install bazelisk , 当然choco需要事先安装(请自行搜索)

  5. 下载并安装LLVM到目录C:/Program Files/LLVM中(本文用的x64版)

  6. 安装Conda(非必须,但推荐),目标:可根据需要指定python版本,并同时管理虚拟环境,很方便, 使用下列命令新建虚拟环境,并安装必要的包:

    conda create -n tflite python=3.11
    conda activate tflite
    pip3 install -U pip
    pip3 install -U six numpy wheel packaging
    pip3 install -U keras_preprocessing --no-deps
    

开始编译

  1. 下载源码: git clone https://github.com/tensorflow/tensorflow.git

  2. 下载源码:https://github.com/tensorflow/tensorflow/archive/refs/tags/v2.16.1.zip并解压到f盘的github文件夹中

  3. 打开VS2022的命令行编译环境,本机的是:"C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"

  4. 修改对应的路径,并执行下列命令

    "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
    set PATH=C:\Users\Ice\.conda\envs\tflite\;%PATH%
    set PATH=C:\Users\Ice\.conda\envs\tflite\Scripts;%PATH%
    set PYTHON_BIN_PATH=C:\Users\Ice\.conda\envs\tflite/python.exe 
    set PYTHON_LIB_PATH=C:\Users\Ice\.conda\envs\tflite\lib/site-packages 
    set PYTHON_DIRECTORY=C:\Users\Ice\.conda\envs\tflite\Scripts 
    set Bazel_LLVM=C:/Program Files/LLVM
    set PATH=C:/Program Files/LLVM/bin;%PATH%
    set BAZEL_SH=C:/msys64/usr/bin/bash.exe 
    conda activate tflite
    set PATH=C:/msys64/usr/bin\;%PATH%
    cd /d F:\github\tensorflow-2.16.1
    bash tensorflow/lite/tools/pip_package/build_pip_package_with_bazel.sh windows
    

遇到的问题:

image-20240407001937947 解决方案:找到bazel.exe,在属性中选中以管理员身份运行。然而好像没什么用,后续做了两处修改解决了问题:

  1. 最终是指定的python的位置

  2. 修改配置文件image-20240407004859488

  3. 复制一份python.exe到python3.exe

image-20240407003950987

新的错误:

image-20240407005036419

​ 解决方案:image-20240407005146096

image-20240407005314512image-20240407005508031

编译成功

image-20240407005613531

编译成功后的文件:https://github.com/pickwillingyh/tflite-runtime-whl-windows/blob/main/whl_files/

参考资料

  1. https://www.msys2.org/
  2. Build TensorFlow Lite Python Wheel Package https://www.tensorflow.org/lite/guide/build_cmake_pip
  3. https://www.tensorflow.org/lite/guide/build_cmake
  4. 重点资料:https://www.tensorflow.org/install/source_windows
  5. 重点资料:"F:\github\tensorflow-2.16.1\tensorflow\lite\tools\pip_package\README.md"
posted @ 2024-04-09 00:13  小AT  阅读(87)  评论(0编辑  收藏  举报