本人主要对TensorFlow源码进行编译,并解决编译中出现的各种问题。
TensorFlow源码编译
所需软件
1.VS2015;
下载安装,使用的版本为:
2.Anaconda3;
前面已下载安装,使用的版本为:
3.swigwin;
下载安装,使用的版本为:
需要将其设置到环境变量内,如下:
4.Git;
下载安装,使用的版本为:
5.CMake;
下载安装,使用的版本为:
6.Notepad++;(文本编辑器,推荐安装)
下载安装,使用的版本为:
7.Everything;(速度最快的文件搜索软件,推荐安装)
下载安装,使用的版本为:
下载源码
进入https://github.com/tensorflow/tensorflow
点击“Clone or download”—“Download ZIP”下载源码,如图:
在tensorflow源码路径下,新建build文件夹,用于存放生成的文件,如下:
使用CMake编译
1. 打开Cmake软件;
2. 点击右侧“Browse Source”按钮,弹出对话框,选择TensorFlow源码路径(tensorflow/contrib/cmake);
3. 再点击右侧“Browse Build”按钮,弹出对话框,选择TensorFlow编译后的存放路径(tensorflow/contrib/cmake/build);
4. 点击“Configure”,弹出对话框,选择VS2015,如下:
注:将Grouped、Advanced勾选,方便后续修改设置;
5. 点击Finish,必须确保Configure过程不能出现红字,显示“Configuring done”即成功;
6. 修改属性,主要是X86修改为X64;MD修改为MT,具体参数值如下(请对照如下表进行修改);
7. 再次点击“Configure”按钮,显示“Configuring done”即成功:
8. 点击“Generate”按钮,显示“Generating done”即成功:
工程配置x64编译器
1. CMake编译后,会在Build路径下生成所有工程:
2. 打开tensorflow.sln工程:
3. 在下拉列表内,选择Release:
4. 在配置管理器下拉列表内,选择“Configuration Manager”:
5. 弹出对话框,在平台下拉列表内,选择“New”:
6. 弹出对话框,在新平台下拉列表内选择x64,点击OK:
7. 则所有工程都修改为x64的,点击Close关闭当前对话框:
8. 可以看到工程的编译环境修改为Release、X64的:
9. 关闭VS工程,弹出如下对话框,选择Yes;
10. 注意:如果没关闭tensorflow.sln工程,则后面修改完工程属性后再次打开工程,会弹出如下对话框(共247个呢,麻烦着呢);
修改.vcxproj文件
1. 在Build文件下,使用Nodepad++软件,打开任意一个.vcxproj文件;
2. 输入Ctrl+ F快捷键,出现文件查找对话框:
注:此过程主要是将文件内OutDir Condition、InDir Condition的Win32修改为x64;
查找目标:
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
替换为:
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
查找目标:
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
替换为:
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
具体过程如下:
- 点击“文件查找”;
- 输入查找目标(参照上面语句);
- 输入替换目标(参照上面语句);
- 设置文件类型为:*.vcxproj;
- 设置目录为:工程的build文件目录(tensorflow\contrib\cmake\build);
- 点击“在文件中替换”;
3. 出现如下提示框,选择“确定”:
4. 则开始在文件内进行替换,如下:
5. 注:需对OutDir Condition、InDirCondition都做一样的替换处理。
TensorFlow源码编译
注:由于编译的时候会不断从Git上下载各种压缩包,比较耗时占CPU,故在编译前,最好将不用的软件都关闭,只使用VS;
再次打开tensorflow.sln工程,在“ALL BUILD”上点击右键——选择“Build”,等着吧,估计得3个小时左右完成编译: