很多时候我想检查一些tensorflow模块的源代码。通常,很大一部分API是用原生python编写的,相关文件在github上很容易找到。但是,有一些重要的部分是我用 C++ 编写的,我找不到它们的源代码。例如,根据 TensorFlow 官方文档,大部分数学运算都在 tensorflow/python/ops/gen_math_ops.py
中定义。但是,GitHub 上没有这样的文件。我的 TF 本地安装有这个文件,但在 GitHub 上查看源代码要容易得多。我还想了解我应该在哪里搜索指定如何生成 python 文件的规则。如果这是一个愚蠢的问题,我很抱歉,但我不熟悉 bazel。
最佳答案
I also want to understand where should I search for the rules which specify how a python file is generated.
为此使用bazel 查询
。
如果您想知道生成文件的规则(例如 $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 查询
技巧。
关于python - 从 C++ 自动生成 python 模块的 Tensorflow 源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49581557/