win7源码编译TensorFlow1.8.0

配置:win7SP1 + VS2015 + cuda 9.2.88 + cudnn-9.2-windows7-x64-v7.1

过程:

一、生成 vs2015 可用的解决方案,方法如下:

(一)

https://blog.csdn.net/jiugeshao/article/details/79144438

(二)自己的实践

设置工作环境为64位:
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\vcvars64.bat"

CMake存入环境变量,我的电脑这句没啥用:
set PATH="%PATH%;D:\tool\tensorflow-build\cmake-3.11.1-win64-x64\bin\"

转到建立文件夹(注意路径中不要有空格)
cd /d \tensorflow\contrib\cmake\build

D:\tool\tensorflow-build\cmake-3.11.1-win64-x64\bin\cmake .. -A x64 -DCMAKE_BUILD_TYPE=Release ^
-DSWIG_EXECUTABLE=D:\tool\tensorflow-build\swigwin-3.0.12\swig.exe ^
-DPYTHON_EXECUTABLE=C:/Users/%USERNAME%/AppData/Local/Programs\Python\Python36\python.exe ^
-DPYTHON_LIBRARIES=C:/Users/%USERNAME%/AppData/Local/Programs\Python\Python36\libs/python36.lib ^
-Dtensorflow_ENABLE_GPU=ON ^
-DCUDNN_HOME="C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2" ^

本机不支持下面这句(我的电脑CPU不支持AVX):
-Dtensorflow_WIN_CPU_SIMD_OPTIONS=/arch:AVX

为了使支持cuda9.2, 再增加 :
-Dtensorflow_CUDA_VERSION=9.2 ^

该选项涉及很多需要下载的东西,非常麻烦,建议关闭,貌似是分布式使用的
-Dtensorflow_ENABLE_GRPC_SUPPORT=OFF ^

生成动态链接库:
-Dtensorflow_BUILD_SHARED_LIB=ON

注:只能生成release和RelWithDebInfo版本,因为debug版本需要python的debug动态库

如果需要生成python的安装包,则仍需要重新编译tf_python_build_pip_package.vcxproj,方便起见,使用VS2015开发人员命令提示

转到建立文件夹
cd /d \tensorflow\contrib\cmake\build

输入如下命令:

MSBuild /p:Configuration=Release tf_python_build_pip_package.vcxproj

等待运行结束,如果没有错误就代表编译成功。在tf_python文件下生成tensorflow文件夹,表示安装成功。

 

二、其他问题

(一)由于国内谷歌无法访问,可能产生boringssl无法下载编译的问题。

解决如下:

在..\tensorflow\contrib\cmake\external\boringssl.cmake中有一行如下:

set(boringssl_URL https://boringssl.googlesource.com/boringssl)

估计是给出了boringssl 的下载地址,我们可以更改为:

set(boringssl_URL https://github.com/google/boringssl)

因为虽然谷歌无法访问,但是github却是没有问题的,

改完后重新生成一遍TensorFlow的解决方案。

之后,仍有七十多个文件生成失败,只好挨个生成了。

(二)找不到snappy.h文件

问题描述:

Snappy 是一个 C++ 的用来压缩和解压缩的开发包。其目标不是最大限度压缩或者兼容其他压缩格式,而是旨在提供高速压缩速度和合理的压缩率。能够在github中找到源代码。

该问题在编译tf_core_lib过程中出现的,虽然该工程下的头文件中包含了snappy.h文件,但是并不是snappy工程的原版文件而是为了移除Snappy而进行的一个更改。但是不知道为什么,在该工程的源文件snapfn.cc中,仍然使用了Snappy。由于该文件无法找到Snappy的定义所以会报错。

解决如下:应该是网络问题,多试几次就好了,自己解决了。

 

(三)FileNotFoundError: [WinError 2] 系统找不到指定的文件。

问题描述:编译tf_core_framework时出现的问题,不知道原因,也不知道在找什么文件。该项目处理各种***.proto文件,产生与该文件相关的头文件和源文件,例如:device_attributes.pb_text.h等。

解决方法:通过查看错误发现gen_git_source.py第165行有问题,怀疑与git无法执行有关。发现 git软件的目录不在环境变量中,添加即可。

(四)如图:

原因:建立路径中有空格,所以NVCC生成时会出问题…… 相应**.cmake文件中 --input-path 选项加双引号就可以解决,找不到如何自动解决。

解决方法: 路径加双引号就可以解决,但是需要加的文件太多,只好重新生成了。

 

 (五)360安全卫士报木马

描述:生成tf_cc_ops项目时,360会报告某个产生木马程序,导致项目生成失败;

原因不详;

解决方法:关闭360。

 

(六)ModuleNotFoundError: No module named 'google','absl'

描述:生成tf_python_api时,出现的问题。

原因:应该是生成tf_python_api时,缺乏protobuf与 absl模块

解决方法:pip install protobuf,至于absl 不能直接安装,需要现在https://pypi.org/project/absl-py/0.1.9/#files中下载然后运行:pip install absl-py-0.1.9.tar.gz 即可。

 

(七)最新的tensorflow源码contrib文件夹已经不提供某些C语言代码了,需要从之前的版本中下载。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值