我想知道是否有使用cmake为应用程序构建张量流和张量的明确方法。我按照https://github.com/cjweeks/tensorflow-cmake的说明没有太大成功,最终需要手工构建Eigen和Protobuf,然后将相关的头文件复制到由Tensorflow的Bazel构建的头文件树中。
答案 0 :(得分:0)
我刚刚使用CMake,VS2017和CUDA 9.2构建了TF,但必须进行两项手动更改:
在Eigen中修补 Half.h
在主CMakeLists.txt中将CUDA版本从“ 9.0”更改为“ 9.2”。
构建必须是单线程的,否则VS会用完堆(在我的16GB笔记本电脑上)。它花了一段时间,一个项目失败了,但是建立了足够的库来运行我想要的所有示例。
与Bazel相比,CMake构建的另一个问题是,即使没有任何变化,前者也会重建一堆项目(涉及protobuf生成的文件)。 Bazel更聪明,只编译更改的代码,然后将所有目标文件静态链接到单个可执行文件中,这仍然比CMake构建更快。