来自C ++的自动生成的python模块的Tensorflow源

时间:2018-03-30 21:17:26

标签: python c++ tensorflow bazel

我经常想检查一些tensorflow模块的源代码。通常,API的很大一部分是用本机python编写的,相关文件很容易在github上找到。但是,我用C ++编写了一些重要的部分,我找不到它们的源代码。例如,根据官方TensorFlow文档,大多数数学运算在tensorflow/python/ops/gen_math_ops.py中定义。但是,GitHub上没有这样的文件。我本地安装的TF有这个文件,但检查GitHub上的源代码要容易得多。我还想了解我应该在哪里搜索指定如何生成python文件的规则。如果这是一个愚蠢的问题,我很抱歉,但我对bazel并不熟悉。

1 个答案:

答案 0 :(得分:2)

  

我还想了解我应该在哪里搜索指定如何生成python文件的规则。

使用bazel query

如果您想知道哪个规则生成文件(例如$PROJECT/some/dir/file.py),请从项目根目录运行此命令:

bazel query --output=build some/dir/file.py

例如,如果我想知道哪个规则生成特定的jar文件,bazel query会打印出来:

$ bazel query --output=build examples/java-native/src/test/java/com/example/myproject/hello.jar
# /Users/foo/bazel/examples/java-native/src/test/java/com/example/myproject/BUILD:1:1
java_test(
  name = "hello",
  deps = ["//examples/java-native/src/main/java/com/example/myproject:hello-lib", "//third_party:junit4"],
  srcs = ["//examples/java-native/src/test/java/com/example/myproject:TestHello.java"],
  test_class = "com.example.myproject.TestHello",
)

查看Query how-to documentation page了解更多bazel query提示。