windows编译TensorFlowServing

本文详细描述了如何在Windows系统上按照Linux编译流程,安装Bazel、VisualStudio、Python等工具,配置环境变量,下载和修改TensorFlowServing源码,解决依赖库问题,以及编译和运行TensorFlowServing的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

整个编译打包过程的总体思路,是参照在linux下的编译流程,配置环境,执行编译命令,根据编译器/链接器反馈的错误,修改相应的源码或者相关库文件的存放路径,编译出windows平台下静态库和二进制执行文件。

TIP:在碰到很多编译错误的时候,适当避开某些不好解决的第三方依赖库(libevent,gflag,glog),把流程走通,再回头解决外部依赖库的问题。

在这里插入图片描述

windows编译tensorflow serving流程图

Windows编译环境搭建

说明:本教程中部分路径的展示沿用了linux教程中正斜杠的用法,未予修改。凡是非linux沿用命令及输出信息中的路径,均采用windows平台下的反斜杠。两种分隔方式除特别说明,在windows平台下可以混用。

安装Bazel

下载bazelwindows的安装包,版本要求>=3.7.2。在页面中找到 bazel-<version>-windows-x86_64.exe,如bazel-3.7.2-windows-x86_64.exe改名为bazel.exe,并将该文件所在目录放到%PATH%目录,打开命令行窗口,可以搜索到bazel即可。

D:\TFServing\serving>bazel --version
bazel 3.7.2
安装Visual Studio 2019

进入visual studio 2019安装包下载界面,选择社区版,按提示安装即可。可参考安装教程

安装Python及附属包

选择python3.9,进入下载界面,找到对应版本,参考教程。在安装时将pip一起安装,后需用pip安装其他工具包比如numpy等。

其他工具

这里主要是git,msys2,patch,git的安装方式可参考教程

msys2是在windows上模拟linux环境,安装后可以在window上执行linux上的程序。安装教程可参考资料

 pacman -Syu
 pacman -Su
 pacman -S patch unzip
配置环境变量

将上面安装的所有工具的二进制包添加到环境变量:

在系统变量中添加变量名BAZEL_SH,BAZEL_VC,BAZEL_VS,并设置相应的路径。

D:\msys64\usr\bin\bash.exe 									#BAZEL_SH
D:\Program Files\Microsoft Visual Studio\2019\Community\VC 	#BAZEL_VC
D:\Program Files\Microsoft Visual Studio\2019\Community  	#BAZEL_VS

%PATH%中需添加:

D:\Bazel 						#bazel.exe所在目录
D:\ProgramData\Python\Python39 	#python39.exe所在目录
D:\msys64\usr\bin				#msys2中安装的软件所在目录

下载源码

下载tensorflow serving的源码:

git clone https://github.com/tensorflow/serving.git
cd serving

通过分析依赖层级结构,获取所有依赖库源码:

bazel fetch --experimental_repo_remote_exec tensorflow_serving/model_servers:tensorflow_model_server

注意fetch可以通过分析依赖层级关系,下载对应的工程文件,可通过--repository_cache d:\BazelCache 选项,指定目录存放所有下载的源码文件,也可参考下一节中的bazel配置文件修改存放位置。如遇到下载不成功,重复执行即可。直到显示

D:\TFServing\serving>bazel fetch --experimental_repo_remote_exec tensorflow_serving/model_servers:tensorflow_model_server
Starting local Bazel server and connecting to it...
DEBUG: D:/bazelcache/z4avbakx/external/org_tensorflow/third_party/repo.bzl:109:14:
Warning: skipping import of repository 'icu' because it already exists.
INFO: All external dependencies fetched successfully.
Loading: 301 packages loaded

表示全部工程文件下载完毕。

源码修改

tensorflow serving的源码文件是通过git clone 命令下载到本地,而所有依赖库文件包括tensorflow, libevent等都存放在指定的bazel缓存目录。这里以进入serving根目录下开始

cd serving
Bazel编译脚本的修改
  • 打开.bazelrc文件,在文末加入

    startup --output_user_root=D:\BazelCache
    

    表示将所有依赖的外部库源码下载到这个目录,且编译中生成的中间文件,缓存文件,静态库以及二进制文件均存放此目录。此操

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值