编译过程有点坑,而且耗时,如果不是必须要编译的话,可以去 https://github.com/fo40225/tensorflow-windows-wheel 下载,有现成的轮子。测试代码可以参考 https://github.com/ksachdeva/tensorflow-cc-examples 和 https://github.com/aljabr0/from-keras-to-c (对开源的作者表示感谢)。
这里我使用的cmake来编译的tensorflow。版本是tensorflow 1.8.0 x64 CPU版本的(tensorflow不支持32位系统,在stackoverflow上看的要支持32位系统需要更改一些源码),本来想编译1.14.0,但是编译过程始终报错,遂降低了版本。tensorFlow 1.11开始,仅支持bazel编译。
工具名 | 版本 | 必要 | 描述 |
操作系统 | Win10 64位 | 是 | 无 |
CMake | 3.16.3 | 是 | https://cmake.org/download/ |
Swigwin | 4.0.1 | 是 | http://www.swig.org/download.html |
Anaconda或者Python3.6 | Anaconda3-2019.07-Windows-x86_64.exe | 是 | https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ |
tensorflow源码 | 1.8.0 | 是 | https://github.com/tensorflow/tensorflow |
Git | 2.23.0 | 是 | https://git-scm.com/downloads |
Visual Studio | 2017或者2015 | 是 | 我这里使用的是VS2017专业版本 |
CUDA和cuDNN | 显卡决定,注意配套 | 否 | 无 |
FQ工具 | N/A | 否 | 最好能FQ,编译过程中会到墙外下载一些包 |
1. 打开cmake-gui,进行如下图配置,选择VS版本,点击Generate
,生成相关配置。
2. 配置参数,如图所示,由于我编译的是CPU版本,所以没有勾选tensorflow_ENABLE_GPU
,点击Generate
。
1. 打开tensorflow.sln,如图所示。然后修改配置属性,改为x64下的Release。
2. 之后需要修改前面5个以下划线命名的项目的配置属性。在 配置属性 > 链接器 > 输入 > 附加依赖项 添加$(SolutionDir)$(Configuration)\pywrap_tensorflow_internal.lib
。
3. 配置好后修改源代码中文件tensorflow\contrib\boosted_trees\lib\utils\sparse_column_iterable.cc,将第99~101行注释掉,改为:
bool operator<( const IndicesRowIterator& other ) const {
QCHECK_LT( iter_, other.iter_ );
return ( row_idx_ < other.row_idx_ );
}
4. 然后右击ALL_BUILD
项目,点击生成就会开始编译了(注意打开FQ软件,因为编译过程中会下载一些文件)。然后就是漫长的等待了。
5. 在所有项目都成功生成后就可以右击INSTALL
项目,直接生成,就会将编译好的tensorflow发布到最开始我们在2.1
节第2步配置的文件夹中。
这是比较容易遇到的问题,下载文件404。我在编译png项目过程中就遇到过下载文件404(下载链接失效了)。
一个解决办法是在如图所示的配置文件中将无效的下载链接更改为有效的。
另一个推荐的解决办法是直接下载对应的文件,然后放在如图所示的文件中。这样由于已经下载成功,那么编译过程中就不会再次下载,而是直接使用下载好的(会验证文件的hash值)。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删