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

Cannot create the final binary using tensorflow AOT compilation for CPU backend

我按照这里的教程进行操作:TensorFlow AOT compilation

根据步骤1和步骤2,我编译了子图,生成了header(test_graph_tfmatmul.h)和object(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'

欢迎任何建议。谢谢。

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

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

更多详细信息请参考https://github.com/tensorflow/tensorflow/issues/13482