无法使用用于CPU后端的tensorflow AOT编译创建最终二进制文件

时间:2017-10-04 03:29:02

标签: c++ tensorflow bazel tensorflow-xla

我按照教程:TensorFlow AOT compilation

根据步骤1和2,我编译了子图并生成了头文件(test_graph_tfmatmul.h)和对象(test_graph_tfmatmul.o)文件;

根据步骤3,我使用示例代码(名为my_code.cc)来调用子图;

根据步骤4,我将代码段cc_binary添加到现有的BUILD文件(//tensorflow/compiler/aot/tests/BUILD),并尝试使用以下命令创建最终二进制文件:

bazel build //tensorflow/compiler/aot/tests:my_binary

但我收到以下错误:

undeclared inclusion(s) in rule '//tensorflow/compiler/aot/tests:my_binary':
this rule is missing dependency declarations for the following files included by 'tensorflow/compiler/aot/tests/tfcompile_test.cc':
'/home/tensorFlow_src/tensorflow/tensorflow/compiler/aot/tests/test_graph_tfmatmul.h'

欢迎任何建议。感谢。

2 个答案:

答案 0 :(得分:1)

最后通过使用tf_library在步骤2中构建cc_library来解决此问题,而不是直接使用tfcompile。即,tf_library将运行tfcompile以生成标头和目标文件。

有关详细信息,请参阅https://github.com/tensorflow/tensorflow/issues/13482

答案 1 :(得分:0)

Bazel抱怨tfcompile_test.cc#include "tensorflow/compiler/aot/tests/test_graph_tfmatmul.h",但没有依赖提供在BUILD文件中声明的标头。您是否已将":test_graph_tfmatmul"添加到my_binary的代码中?