window10+msys2+bazel + vs2015 编译 tensorflow 1.12.0 cpu 版本 生成lib和dll

  • Post author:
  • Post category:其他


准备工作:

ps:本人电脑为64位操作系统

安装 vs2015 64bit 去i tell you 可以下载

下载msys2

http://www.msys2.org/

安装后在系统环境变量的path中添加路径D:\msys64和D:\msys64\usr\bin,本人装在D盘,操作如下图所示:

打开mingw64.exe 输入:

pacman -Syuu

可能会出现如下错误:

无法从repo.msys2.org:Operation too slow.Less than 1 bytes/sec transferred the last 10 seconds

解决方法:将清华镜像的路径 加入到  D:\msys64\ect\pacman.d\ 目录下的文件里

/etc/pacman.d/mirrorlist.mingw32
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686
/etc/pacman.d/mirrorlist.mingw64
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64
/etc/pacman.d/mirrorlist.msys
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch

以上清华镜像路径写在其他镜像路径的上方。

接着在mingw64.exe中输入:

pacman -S patch, unzip, grep

下载安装bazel,现在版本为:bazel-0.22.0-window-x86_64.exe,网址

https://github.com/bazelbuild/bazel/releases

,可能国内下载速度很慢,推荐使用

https://www.newbe.pro/Mirrors/Mirrors-Bazel/

下载完成后,将bazel-0.22.0-window-x86_64.exe 改为bazel.exe, 然后放在D:msys64目录下

接着配置环境变量,新建环境变量BAZEL_SH, BAZEL_VC, BAZEL_VS,按下图所示:


注意:有的人的环境是C:\Program Files(x86) Microsoft Visual Studio 14.0\VC 和 C:\Program Files(x86) Microsoft Visual Studio 12.0 请按照自己的路径添加

下载 tensorflow 1.12.0 :

https://pypi.org/project/tensorflow/1.12.0/

安装 python 3.6.5



编译:



打开Windows PowerShell进入tensorflow1.12.0包的文件夹运行:

python configure.py

可能会报不能读取 .rc的文件这时候只要降低bazel的版本就可以了, 我改成了0.15.0的版本,运行结果如下图所示:

下一步运行:

bazel build --config=opt //tensorflow/tools/lib_package:libtensorflow

就可以在D:\tensorflow-1.12.0\bazel-out\x64_windows-opt\bin\tensorflow\tools\lib_package\中找到libtensorflow.tar.gz,解压后得到include和tensorflow.dll、tensorflow.lib。目录结构如图所示:

在运行上述的命令可能会出现下图所示丢失包的错误:

这个原因是运行时一些依赖包没有下载下来,如果你有个速度很快的VPN是不会出现这种问题的。

********************************************************************************************

这里时我编译好的include和tensorflow.dll、tensorflow.lib

下载链接:

https://download.csdn.net/download/goodman_lqifei/12305014

********************************************************************************************


现在进行示例展示:

好多网上的实列依然采用的是没有编译的tensorflow来写的,我认为是不合理的。下面给出参考示例:

首先配置环境,在vs2015中创建空项目

将include的添加到包含目录中:

将lib添加到库目录和链接器的输入中的附加依赖项中:

最后将dll文件放在D:\project\Project3\x64\Release\目录下:


PS:这里使用的pb文件是在keras框架模型转成的。

代码:

这里是测试一个样本的示例,最终的运行结果如下图所示,其中代码还有些瑕疵,以后慢慢打磨。

如果有什么错误,请在评论区留言哦,如代码有不清楚的地方,也请在评论区留言,一起讨论!



版权声明:本文为goodman_lqifei原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。